[Swfdec] 77 commits - libswfdec/Makefile.am libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_strings.c libswfdec/swfdec_edittext.c libswfdec/swfdec_edittext.h libswfdec/swfdec_edittext_movie.c libswfdec/swfdec_edittext_movie.h libswfdec/swfdec_graphic_movie.c libswfdec/swfdec_html_parser.c libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h libswfdec/swfdec_player_internal.h libswfdec/swfdec_tag.c libswfdec/swfdec_text_field.c libswfdec/swfdec_text_field.h libswfdec/swfdec_text_field_movie_as.c libswfdec/swfdec_text_field_movie.c libswfdec/swfdec_text_field_movie.h libswfdec/swfdec_text_format.c libswfdec/swfdec_text_format.h libswfdec/swfdec_text.h libswfdec/swfdec_xml.c libswfdec/swfdec_xml.h test/dump.c test/trace
Pekka Lampila
medar at kemper.freedesktop.org
Sat Oct 13 02:29:23 PDT 2007
libswfdec/Makefile.am | 9
libswfdec/swfdec_as_interpret.c | 7
libswfdec/swfdec_as_strings.c | 10
libswfdec/swfdec_edittext.c | 178 ------
libswfdec/swfdec_edittext.h | 97 ---
libswfdec/swfdec_edittext_movie.c | 164 -----
libswfdec/swfdec_edittext_movie.h | 56 --
libswfdec/swfdec_graphic_movie.c | 4
libswfdec/swfdec_html_parser.c | 670 ++++++++++++------------
libswfdec/swfdec_initialize.as | 7
libswfdec/swfdec_initialize.h | 347 ++++++------
libswfdec/swfdec_player_internal.h | 1
libswfdec/swfdec_tag.c | 2
libswfdec/swfdec_text.h | 1
libswfdec/swfdec_text_field.c | 397 ++++++++++++++
libswfdec/swfdec_text_field.h | 138 ++++
libswfdec/swfdec_text_field_movie.c | 716 +++++++++++++++++++++++++
libswfdec/swfdec_text_field_movie.h | 112 ++++
libswfdec/swfdec_text_field_movie_as.c | 810 +++++++++++++++++++++++++++++
libswfdec/swfdec_text_format.c | 913 +++++++++++++++++++++------------
libswfdec/swfdec_text_format.h | 63 +-
libswfdec/swfdec_xml.c | 24
libswfdec/swfdec_xml.h | 2
test/dump.c | 10
test/trace/textformat-5.swf |binary
test/trace/textformat-5.swf.trace | 76 ++
test/trace/textformat-6.swf |binary
test/trace/textformat-6.swf.trace | 76 ++
test/trace/textformat-7.swf |binary
test/trace/textformat-7.swf.trace | 76 ++
test/trace/textformat-8.swf |binary
test/trace/textformat-8.swf.trace | 76 ++
test/trace/textformat.as | 6
33 files changed, 3677 insertions(+), 1371 deletions(-)
New commits:
diff-tree 203f8cf3a29b5fd407abf1c93ac139d38a142d1a (from df08f79f1a4f119c646922cecac83fbed966ade1)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Sat Oct 13 12:20:20 2007 +0300
Fix earlier merge error causing createEmptyMovieClip to be added twice
diff --git a/libswfdec/swfdec_initialize.as b/libswfdec/swfdec_initialize.as
index de5f48f..3b9ad10 100644
--- a/libswfdec/swfdec_initialize.as
+++ b/libswfdec/swfdec_initialize.as
@@ -274,9 +274,8 @@ MovieClip.prototype["duplicateMovieClip"
MovieClip.prototype["removeMovieClip"] = ASnative (900, 19);
MovieClip.prototype.startDrag = ASnative (900, 20);
MovieClip.prototype.stopDrag = ASnative (900, 21);
-MovieClip.prototype.createEmptyMovieClip = ASnative (901, 0);
MovieClip.prototype.createTextField = ASnative (104, 200);
-ASSetPropFlags (MovieClip.prototype, "getDepth,createEmptyMovieClip", 128);
+ASSetPropFlags (MovieClip.prototype, "getDepth", 128);
ASSetNative (MovieClip.prototype, 901, "6createEmptyMovieClip,6beginFill,6beginGradientFill,6moveTo,6lineTo,6curveTo,6lineStyle,6endFill,6clear");
ASSetPropFlags (MovieClip.prototype, null, 3);
diff --git a/libswfdec/swfdec_initialize.h b/libswfdec/swfdec_initialize.h
index 0921de8..889393b 100644
--- a/libswfdec/swfdec_initialize.h
+++ b/libswfdec/swfdec_initialize.h
@@ -2,7 +2,7 @@
/* compiled from swfdec_initialize.as */
const unsigned char swfdec_initialize[] = {
- 0x88, 0x76, 0x07, 0xB8, 0x00, 0x41, 0x53, 0x53, 0x65, 0x74, 0x4E, 0x61, 0x74, 0x69, 0x76, 0x65,
+ 0x88, 0x43, 0x07, 0xB6, 0x00, 0x41, 0x53, 0x53, 0x65, 0x74, 0x4E, 0x61, 0x74, 0x69, 0x76, 0x65,
0x00, 0x41, 0x53, 0x6E, 0x61, 0x74, 0x69, 0x76, 0x65, 0x00, 0x41, 0x53, 0x53, 0x65, 0x74, 0x4E,
0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6F, 0x72, 0x00, 0x4F, 0x62,
0x6A, 0x65, 0x63, 0x74, 0x00, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6C, 0x61,
@@ -75,472 +75,466 @@ const unsigned char swfdec_initialize[]
0x4D, 0x6F, 0x76, 0x69, 0x65, 0x43, 0x6C, 0x69, 0x70, 0x00, 0x72, 0x65, 0x6D, 0x6F, 0x76, 0x65,
0x4D, 0x6F, 0x76, 0x69, 0x65, 0x43, 0x6C, 0x69, 0x70, 0x00, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44,
0x72, 0x61, 0x67, 0x00, 0x73, 0x74, 0x6F, 0x70, 0x44, 0x72, 0x61, 0x67, 0x00, 0x63, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x45, 0x6D, 0x70, 0x74, 0x79, 0x4D, 0x6F, 0x76, 0x69, 0x65, 0x43, 0x6C, 0x69,
- 0x70, 0x00, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6C,
- 0x64, 0x00, 0x67, 0x65, 0x74, 0x44, 0x65, 0x70, 0x74, 0x68, 0x2C, 0x63, 0x72, 0x65, 0x61, 0x74,
- 0x65, 0x45, 0x6D, 0x70, 0x74, 0x79, 0x4D, 0x6F, 0x76, 0x69, 0x65, 0x43, 0x6C, 0x69, 0x70, 0x00,
- 0x36, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6D, 0x70, 0x74, 0x79, 0x4D, 0x6F, 0x76, 0x69,
- 0x65, 0x43, 0x6C, 0x69, 0x70, 0x2C, 0x36, 0x62, 0x65, 0x67, 0x69, 0x6E, 0x46, 0x69, 0x6C, 0x6C,
- 0x2C, 0x36, 0x62, 0x65, 0x67, 0x69, 0x6E, 0x47, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6E, 0x74, 0x46,
- 0x69, 0x6C, 0x6C, 0x2C, 0x36, 0x6D, 0x6F, 0x76, 0x65, 0x54, 0x6F, 0x2C, 0x36, 0x6C, 0x69, 0x6E,
- 0x65, 0x54, 0x6F, 0x2C, 0x36, 0x63, 0x75, 0x72, 0x76, 0x65, 0x54, 0x6F, 0x2C, 0x36, 0x6C, 0x69,
- 0x6E, 0x65, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x2C, 0x36, 0x65, 0x6E, 0x64, 0x46, 0x69, 0x6C, 0x6C,
- 0x2C, 0x36, 0x63, 0x6C, 0x65, 0x61, 0x72, 0x00, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6C,
- 0x64, 0x00, 0x73, 0x65, 0x74, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00,
- 0x67, 0x65, 0x74, 0x4E, 0x65, 0x77, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74,
- 0x00, 0x73, 0x65, 0x74, 0x4E, 0x65, 0x77, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6F, 0x72, 0x6D, 0x61,
- 0x74, 0x00, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x53, 0x74, 0x79,
- 0x6C, 0x65, 0x53, 0x68, 0x65, 0x65, 0x74, 0x00, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x00, 0x6F, 0x62,
- 0x6A, 0x65, 0x63, 0x74, 0x00, 0x6F, 0x5F, 0x6E, 0x65, 0x77, 0x00, 0x70, 0x72, 0x6F, 0x70, 0x00,
- 0x63, 0x6C, 0x65, 0x61, 0x72, 0x00, 0x5F, 0x63, 0x73, 0x73, 0x00, 0x5F, 0x73, 0x74, 0x79, 0x6C,
- 0x65, 0x73, 0x00, 0x67, 0x65, 0x74, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x6E, 0x61, 0x6D, 0x65,
- 0x00, 0x73, 0x65, 0x74, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x00,
- 0x64, 0x6F, 0x54, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x00, 0x67, 0x65, 0x74, 0x53,
- 0x74, 0x79, 0x6C, 0x65, 0x4E, 0x61, 0x6D, 0x65, 0x73, 0x00, 0x74, 0x6D, 0x70, 0x00, 0x6E, 0x61,
- 0x6D, 0x65, 0x73, 0x00, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x00, 0x66, 0x6F,
- 0x72, 0x6D, 0x61, 0x74, 0x00, 0x74, 0x65, 0x78, 0x74, 0x41, 0x6C, 0x69, 0x67, 0x6E, 0x00, 0x61,
- 0x6C, 0x69, 0x67, 0x6E, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x00,
- 0x62, 0x6F, 0x6C, 0x64, 0x00, 0x6E, 0x6F, 0x72, 0x6D, 0x61, 0x6C, 0x00, 0x63, 0x6F, 0x6C, 0x6F,
- 0x72, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x00, 0x64, 0x69, 0x73,
- 0x70, 0x6C, 0x61, 0x79, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x46, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x00,
- 0x66, 0x6F, 0x6E, 0x74, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x53, 0x53, 0x46, 0x6F, 0x6E,
- 0x74, 0x46, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x00, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6E, 0x64, 0x65,
- 0x6E, 0x74, 0x00, 0x69, 0x6E, 0x64, 0x65, 0x6E, 0x74, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49,
- 0x6E, 0x74, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x69, 0x74, 0x61,
- 0x6C, 0x69, 0x63, 0x00, 0x6B, 0x65, 0x72, 0x6E, 0x69, 0x6E, 0x67, 0x00, 0x74, 0x72, 0x75, 0x65,
- 0x00, 0x66, 0x61, 0x6C, 0x73, 0x65, 0x00, 0x6C, 0x65, 0x61, 0x64, 0x69, 0x6E, 0x67, 0x00, 0x6D,
- 0x61, 0x72, 0x67, 0x69, 0x6E, 0x4C, 0x65, 0x66, 0x74, 0x00, 0x6C, 0x65, 0x66, 0x74, 0x4D, 0x61,
- 0x72, 0x67, 0x69, 0x6E, 0x00, 0x6C, 0x65, 0x74, 0x74, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x69,
- 0x6E, 0x67, 0x00, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x52, 0x69, 0x67, 0x68, 0x74, 0x00, 0x72,
- 0x69, 0x67, 0x68, 0x74, 0x4D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x53,
- 0x69, 0x7A, 0x65, 0x00, 0x73, 0x69, 0x7A, 0x65, 0x00, 0x74, 0x65, 0x78, 0x74, 0x44, 0x65, 0x63,
- 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x75, 0x6E, 0x64, 0x65, 0x72, 0x6C, 0x69, 0x6E,
- 0x65, 0x00, 0x6E, 0x6F, 0x6E, 0x65, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x53, 0x53, 0x00,
- 0x63, 0x73, 0x73, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x53, 0x53, 0x49, 0x6E, 0x74, 0x65,
- 0x72, 0x6E, 0x61, 0x6C, 0x00, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x00, 0x6E, 0x75, 0x6C, 0x6C,
- 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x00, 0x73, 0x65, 0x74, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x76,
- 0x61, 0x6C, 0x00, 0x63, 0x6C, 0x65, 0x61, 0x72, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6C,
- 0x00, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x00, 0x63, 0x6C, 0x65, 0x61,
- 0x72, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x00, 0x9B, 0x12, 0x00, 0x41, 0x73, 0x42, 0x72,
- 0x6F, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0x0D,
- 0x00, 0x4C, 0x6F, 0x61, 0x64, 0x56, 0x61, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x13,
- 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00,
- 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x02, 0x07, 0x01, 0x00, 0x00, 0x00,
- 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x02,
- 0x00, 0x08, 0x03, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x04, 0x07, 0x08, 0x00, 0x00, 0x00, 0x07, 0x65,
- 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x08, 0x00, 0x07,
- 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x03, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00,
- 0x08, 0x05, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x07, 0x07,
- 0x0C, 0x00, 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01,
- 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x9B, 0x07, 0x00,
- 0x00, 0x01, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x07, 0x00,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x52, 0x17, 0x96,
- 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x52, 0x17, 0x96, 0x02, 0x00,
- 0x05, 0x01, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x9B,
- 0x07, 0x00, 0x00, 0x01, 0x00, 0x78, 0x00, 0x8F, 0x00, 0x96, 0x04, 0x00, 0x08, 0x0E, 0x08, 0x09,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x41, 0x96, 0x07,
- 0x00, 0x08, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x99, 0x02, 0x00, 0x09, 0x00, 0x96, 0x02,
- 0x00, 0x08, 0x0F, 0x4C, 0x1C, 0x50, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x0E, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x10, 0x4E, 0x48, 0x12, 0x9D, 0x02, 0x00, 0x42, 0x00,
- 0x96, 0x02, 0x00, 0x08, 0x0E, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x4E, 0x96, 0x02, 0x00,
- 0x08, 0x0A, 0x1C, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x23, 0x00, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
- 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0E, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x99, 0x02, 0x00,
- 0x9C, 0xFF, 0x96, 0x02, 0x00, 0x05, 0x00, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x12, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x6F, 0x00, 0x73, 0x00, 0x96, 0x02,
- 0x00, 0x08, 0x13, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x07, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x65,
+ 0x61, 0x74, 0x65, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6C, 0x64, 0x00, 0x36, 0x63, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x45, 0x6D, 0x70, 0x74, 0x79, 0x4D, 0x6F, 0x76, 0x69, 0x65, 0x43, 0x6C,
+ 0x69, 0x70, 0x2C, 0x36, 0x62, 0x65, 0x67, 0x69, 0x6E, 0x46, 0x69, 0x6C, 0x6C, 0x2C, 0x36, 0x62,
+ 0x65, 0x67, 0x69, 0x6E, 0x47, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6E, 0x74, 0x46, 0x69, 0x6C, 0x6C,
+ 0x2C, 0x36, 0x6D, 0x6F, 0x76, 0x65, 0x54, 0x6F, 0x2C, 0x36, 0x6C, 0x69, 0x6E, 0x65, 0x54, 0x6F,
+ 0x2C, 0x36, 0x63, 0x75, 0x72, 0x76, 0x65, 0x54, 0x6F, 0x2C, 0x36, 0x6C, 0x69, 0x6E, 0x65, 0x53,
+ 0x74, 0x79, 0x6C, 0x65, 0x2C, 0x36, 0x65, 0x6E, 0x64, 0x46, 0x69, 0x6C, 0x6C, 0x2C, 0x36, 0x63,
+ 0x6C, 0x65, 0x61, 0x72, 0x00, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6C, 0x64, 0x00, 0x73,
+ 0x65, 0x74, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x67, 0x65, 0x74,
+ 0x4E, 0x65, 0x77, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x73, 0x65,
+ 0x74, 0x4E, 0x65, 0x77, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x54,
+ 0x65, 0x78, 0x74, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x53,
+ 0x68, 0x65, 0x65, 0x74, 0x00, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x00, 0x6F, 0x62, 0x6A, 0x65, 0x63,
+ 0x74, 0x00, 0x6F, 0x5F, 0x6E, 0x65, 0x77, 0x00, 0x70, 0x72, 0x6F, 0x70, 0x00, 0x63, 0x6C, 0x65,
+ 0x61, 0x72, 0x00, 0x5F, 0x63, 0x73, 0x73, 0x00, 0x5F, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x00,
+ 0x67, 0x65, 0x74, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x00, 0x73, 0x65,
+ 0x74, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x64, 0x6F, 0x54,
+ 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x00, 0x67, 0x65, 0x74, 0x53, 0x74, 0x79, 0x6C,
+ 0x65, 0x4E, 0x61, 0x6D, 0x65, 0x73, 0x00, 0x74, 0x6D, 0x70, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x73,
+ 0x00, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x00, 0x66, 0x6F, 0x72, 0x6D, 0x61,
+ 0x74, 0x00, 0x74, 0x65, 0x78, 0x74, 0x41, 0x6C, 0x69, 0x67, 0x6E, 0x00, 0x61, 0x6C, 0x69, 0x67,
+ 0x6E, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x00, 0x62, 0x6F, 0x6C,
+ 0x64, 0x00, 0x6E, 0x6F, 0x72, 0x6D, 0x61, 0x6C, 0x00, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x00, 0x70,
+ 0x61, 0x72, 0x73, 0x65, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x00, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61,
+ 0x79, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x46, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x00, 0x66, 0x6F, 0x6E,
+ 0x74, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x53, 0x53, 0x46, 0x6F, 0x6E, 0x74, 0x46, 0x61,
+ 0x6D, 0x69, 0x6C, 0x79, 0x00, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6E, 0x64, 0x65, 0x6E, 0x74, 0x00,
+ 0x69, 0x6E, 0x64, 0x65, 0x6E, 0x74, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, 0x6E, 0x74, 0x00,
+ 0x66, 0x6F, 0x6E, 0x74, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x69, 0x74, 0x61, 0x6C, 0x69, 0x63,
+ 0x00, 0x6B, 0x65, 0x72, 0x6E, 0x69, 0x6E, 0x67, 0x00, 0x74, 0x72, 0x75, 0x65, 0x00, 0x66, 0x61,
+ 0x6C, 0x73, 0x65, 0x00, 0x6C, 0x65, 0x61, 0x64, 0x69, 0x6E, 0x67, 0x00, 0x6D, 0x61, 0x72, 0x67,
+ 0x69, 0x6E, 0x4C, 0x65, 0x66, 0x74, 0x00, 0x6C, 0x65, 0x66, 0x74, 0x4D, 0x61, 0x72, 0x67, 0x69,
+ 0x6E, 0x00, 0x6C, 0x65, 0x74, 0x74, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x69, 0x6E, 0x67, 0x00,
+ 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x52, 0x69, 0x67, 0x68, 0x74, 0x00, 0x72, 0x69, 0x67, 0x68,
+ 0x74, 0x4D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65,
+ 0x00, 0x73, 0x69, 0x7A, 0x65, 0x00, 0x74, 0x65, 0x78, 0x74, 0x44, 0x65, 0x63, 0x6F, 0x72, 0x61,
+ 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x75, 0x6E, 0x64, 0x65, 0x72, 0x6C, 0x69, 0x6E, 0x65, 0x00, 0x6E,
+ 0x6F, 0x6E, 0x65, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x53, 0x53, 0x00, 0x63, 0x73, 0x73,
+ 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x53, 0x53, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x6E, 0x61,
+ 0x6C, 0x00, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x00, 0x6E, 0x75, 0x6C, 0x6C, 0x00, 0x70, 0x61,
+ 0x72, 0x73, 0x65, 0x00, 0x73, 0x65, 0x74, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6C, 0x00,
+ 0x63, 0x6C, 0x65, 0x61, 0x72, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6C, 0x00, 0x73, 0x65,
+ 0x74, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x00, 0x63, 0x6C, 0x65, 0x61, 0x72, 0x54, 0x69,
+ 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x00, 0x9B, 0x12, 0x00, 0x41, 0x73, 0x42, 0x72, 0x6F, 0x61, 0x64,
+ 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0x0D, 0x00, 0x4C, 0x6F,
+ 0x61, 0x64, 0x56, 0x61, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x13, 0x00, 0x08, 0x00,
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
+ 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x02, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00,
+ 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x03,
+ 0x1C, 0x96, 0x13, 0x00, 0x08, 0x04, 0x07, 0x08, 0x00, 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, 0x00,
+ 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00,
+ 0x00, 0x02, 0x08, 0x03, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D,
+ 0x17, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x07, 0x07, 0x0C, 0x00, 0x00,
+ 0x00, 0x07, 0x65, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96,
+ 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00,
+ 0x78, 0x00, 0x3C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
+ 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08,
+ 0x0A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x0C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x52, 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x9B, 0x07, 0x00, 0x00,
+ 0x01, 0x00, 0x78, 0x00, 0x8F, 0x00, 0x96, 0x04, 0x00, 0x08, 0x0E, 0x08, 0x09, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x0C, 0x4E, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x41, 0x96, 0x07, 0x00, 0x08, 0x0F,
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x99, 0x02, 0x00, 0x09, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0F,
+ 0x4C, 0x1C, 0x50, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x10, 0x4E, 0x48, 0x12, 0x9D, 0x02, 0x00, 0x42, 0x00, 0x96, 0x02, 0x00,
+ 0x08, 0x0E, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C,
+ 0x49, 0x12, 0x9D, 0x02, 0x00, 0x23, 0x00, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08,
+ 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0E, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x99, 0x02, 0x00, 0x9C, 0xFF, 0x96,
+ 0x02, 0x00, 0x05, 0x00, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x12, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x6F, 0x00, 0x73, 0x00, 0x96, 0x02, 0x00, 0x08, 0x13,
+ 0x1C, 0x96, 0x13, 0x00, 0x08, 0x07, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, 0x00,
+ 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96,
+ 0x04, 0x00, 0x08, 0x08, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x4E, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x13, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x0B, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x0B, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x0C, 0x07, 0x00,
+ 0x00, 0x00, 0x00, 0x42, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x08, 0x14, 0x08,
+ 0x13, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x4F, 0x96,
+ 0x08, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x02, 0x08, 0x06, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x8C, 0x00, 0x08, 0x15, 0x08, 0x16, 0x07, 0x12,
+ 0x00, 0x00, 0x00, 0x08, 0x17, 0x07, 0x08, 0x00, 0x00, 0x00, 0x08, 0x18, 0x07, 0x14, 0x00, 0x00,
+ 0x00, 0x08, 0x19, 0x07, 0x11, 0x00, 0x00, 0x00, 0x08, 0x1A, 0x07, 0x2E, 0x00, 0x00, 0x00, 0x08,
+ 0x1B, 0x07, 0x28, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x07, 0x23, 0x00, 0x00, 0x00, 0x08, 0x1D, 0x07,
+ 0x0D, 0x00, 0x00, 0x00, 0x08, 0x1E, 0x07, 0x1B, 0x00, 0x00, 0x00, 0x08, 0x1F, 0x07, 0x24, 0x00,
+ 0x00, 0x00, 0x08, 0x20, 0x07, 0x2D, 0x00, 0x00, 0x00, 0x08, 0x21, 0x07, 0x25, 0x00, 0x00, 0x00,
+ 0x08, 0x22, 0x07, 0x22, 0x00, 0x00, 0x00, 0x08, 0x23, 0x07, 0x21, 0x00, 0x00, 0x00, 0x08, 0x24,
+ 0x07, 0x27, 0x00, 0x00, 0x00, 0x08, 0x25, 0x07, 0x10, 0x00, 0x00, 0x00, 0x08, 0x26, 0x07, 0x20,
+ 0x00, 0x00, 0x00, 0x08, 0x27, 0x07, 0x09, 0x00, 0x00, 0x00, 0x08, 0x28, 0x07, 0x26, 0x00, 0x00,
+ 0x00, 0x07, 0x13, 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x29, 0x07, 0x20, 0x03,
+ 0x00, 0x00, 0x08, 0x15, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D,
+ 0x17, 0x96, 0x02, 0x00, 0x08, 0x15, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08,
+ 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12, 0x52, 0x17, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00,
+ 0x00, 0x02, 0x08, 0x15, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D,
+ 0x17, 0x96, 0x07, 0x00, 0x08, 0x2A, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x02, 0x00,
+ 0x08, 0x2A, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x2B, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00,
+ 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2A,
+ 0x1C, 0x96, 0x13, 0x00, 0x08, 0x2C, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00, 0x00, 0x00,
+ 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2A, 0x1C, 0x96,
+ 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12, 0x52,
+ 0x17, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x2A, 0x1C, 0x96, 0x07, 0x00,
+ 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x07, 0x00, 0x08, 0x2D, 0x07, 0x00,
+ 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01,
+ 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12, 0x52, 0x17, 0x96, 0x0E, 0x00,
+ 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x2E, 0x07, 0x9A, 0x02, 0x00, 0x00, 0x08, 0x2D, 0x1C, 0x96,
+ 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x02, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x2F,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x31, 0x08, 0x32, 0x4F, 0x96,
+ 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x33,
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
+ 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
+ 0x13, 0x00, 0x08, 0x34, 0x07, 0x03, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02,
+ 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x35, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00,
+ 0x08, 0x36, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00, 0x73, 0x72, 0x63, 0x00, 0x64, 0x00, 0x96, 0x02,
+ 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x38, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x19, 0x00, 0x96, 0x09, 0x00,
+ 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x52,
+ 0x17, 0x99, 0x02, 0x00, 0x2C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96, 0x07, 0x00, 0x07,
+ 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x34, 0x52, 0x17, 0x96, 0x09,
+ 0x00, 0x05, 0x01, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35,
+ 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
+ 0x02, 0x00, 0x08, 0x39, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x96, 0x03, 0x00, 0x08,
+ 0x3A, 0x02, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x46, 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00,
+ 0x02, 0x49, 0x9D, 0x02, 0x00, 0x91, 0x00, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x04, 0x00, 0x3C, 0x96,
+ 0x02, 0x00, 0x08, 0x3A, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x41, 0x00, 0x96,
+ 0x02, 0x00, 0x08, 0x3A, 0x4C, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x3D, 0x08, 0x0A, 0x1C, 0x96, 0x07,
+ 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x96, 0x02, 0x00, 0x08, 0x3C, 0x47,
+ 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x4E, 0x96, 0x07, 0x00,
+ 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x47, 0x1D, 0x99, 0x02, 0x00, 0x33, 0x00,
+ 0x96, 0x04, 0x00, 0x08, 0x3A, 0x08, 0x0A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
+ 0x08, 0x3B, 0x3D, 0x96, 0x02, 0x00, 0x08, 0x3C, 0x47, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B,
+ 0x3D, 0x47, 0x1D, 0x99, 0x02, 0x00, 0x61, 0xFF, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x1C, 0x3E, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x3E, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x3F, 0x4E, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x40, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00,
+ 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x41, 0x4E, 0x3E, 0x4F, 0x96, 0x08,
+ 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x02, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
+ 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08,
+ 0x42, 0x07, 0x10, 0x00, 0x00, 0x00, 0x07, 0xF4, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
+ 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x0E, 0x00, 0x07, 0x06, 0x00, 0x00, 0x00, 0x08, 0x44, 0x07, 0xF4,
+ 0x01, 0x00, 0x00, 0x08, 0x42, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07,
+ 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x45, 0x07, 0x00, 0x00,
+ 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D,
+ 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
+ 0x46, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
+ 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
+ 0x96, 0x13, 0x00, 0x08, 0x47, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07,
+ 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x48, 0x07, 0x03, 0x00, 0x00, 0x00, 0x07, 0xFD,
0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x13, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x4E,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x0B, 0x08, 0x06, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x07, 0x00, 0x08,
- 0x0C, 0x07, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00,
- 0x08, 0x14, 0x08, 0x13, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D,
- 0x17, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x02, 0x08, 0x06, 0x1C, 0x96, 0x07,
- 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x8C, 0x00, 0x08, 0x15, 0x08,
- 0x16, 0x07, 0x12, 0x00, 0x00, 0x00, 0x08, 0x17, 0x07, 0x08, 0x00, 0x00, 0x00, 0x08, 0x18, 0x07,
- 0x14, 0x00, 0x00, 0x00, 0x08, 0x19, 0x07, 0x11, 0x00, 0x00, 0x00, 0x08, 0x1A, 0x07, 0x2E, 0x00,
- 0x00, 0x00, 0x08, 0x1B, 0x07, 0x28, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x07, 0x23, 0x00, 0x00, 0x00,
- 0x08, 0x1D, 0x07, 0x0D, 0x00, 0x00, 0x00, 0x08, 0x1E, 0x07, 0x1B, 0x00, 0x00, 0x00, 0x08, 0x1F,
- 0x07, 0x24, 0x00, 0x00, 0x00, 0x08, 0x20, 0x07, 0x2D, 0x00, 0x00, 0x00, 0x08, 0x21, 0x07, 0x25,
- 0x00, 0x00, 0x00, 0x08, 0x22, 0x07, 0x22, 0x00, 0x00, 0x00, 0x08, 0x23, 0x07, 0x21, 0x00, 0x00,
- 0x00, 0x08, 0x24, 0x07, 0x27, 0x00, 0x00, 0x00, 0x08, 0x25, 0x07, 0x10, 0x00, 0x00, 0x00, 0x08,
- 0x26, 0x07, 0x20, 0x00, 0x00, 0x00, 0x08, 0x27, 0x07, 0x09, 0x00, 0x00, 0x00, 0x08, 0x28, 0x07,
- 0x26, 0x00, 0x00, 0x00, 0x07, 0x13, 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x29,
- 0x07, 0x20, 0x03, 0x00, 0x00, 0x08, 0x15, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00,
- 0x08, 0x00, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x15, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
- 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12, 0x52, 0x17, 0x96, 0x08, 0x00, 0x07,
- 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x15, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00,
- 0x08, 0x05, 0x3D, 0x17, 0x96, 0x07, 0x00, 0x08, 0x2A, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x1D,
- 0x96, 0x02, 0x00, 0x08, 0x2A, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x2B, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x2A, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x2C, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x05,
+ 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x49, 0x07, 0x04, 0x00,
+ 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
+ 0x4A, 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
+ 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
+ 0x96, 0x13, 0x00, 0x08, 0x39, 0x07, 0x06, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07,
+ 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x4B, 0x07, 0x07, 0x00, 0x00, 0x00, 0x07, 0xFD,
0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x2A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x12, 0x52, 0x17, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x2A, 0x1C,
- 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x07, 0x00, 0x08,
- 0x2D, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x1C, 0x96, 0x07,
- 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12, 0x52, 0x17,
- 0x96, 0x0E, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x2E, 0x07, 0x9A, 0x02, 0x00, 0x00, 0x08,
- 0x2D, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x02, 0x3D, 0x17, 0x96, 0x02,
- 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x31, 0x08,
- 0x32, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13,
- 0x00, 0x08, 0x33, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00,
- 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x34, 0x07, 0x03, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00,
- 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x35, 0x9B, 0x05, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
- 0x96, 0x02, 0x00, 0x08, 0x36, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00, 0x73, 0x72, 0x63, 0x00, 0x64,
- 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x05, 0x01, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x19, 0x00,
- 0x96, 0x09, 0x00, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x35, 0x52, 0x17, 0x99, 0x02, 0x00, 0x2C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96,
- 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x34, 0x52,
+ 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x4C, 0x07, 0x08, 0x00,
+ 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
+ 0x96, 0x13, 0x00, 0x08, 0x4D, 0x07, 0x09, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07,
+ 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x10,
+ 0x00, 0x08, 0x30, 0x08, 0x4E, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
+ 0x45, 0x40, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x30, 0x08, 0x4D, 0x1C,
+ 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08,
+ 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x33, 0x07, 0x00, 0x00,
+ 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
+ 0x4F, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
+ 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
+ 0x96, 0x13, 0x00, 0x08, 0x50, 0x07, 0x0B, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07,
+ 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x51, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0xFD,
+ 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x35, 0x9B, 0x05, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x36, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00, 0x73, 0x72, 0x63,
+ 0x00, 0x72, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x9D,
+ 0x02, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x05,
+ 0x00, 0x4F, 0x96, 0x09, 0x00, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x35, 0x52, 0x17, 0x99, 0x02, 0x00, 0x3A, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09,
+ 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96,
+ 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x51, 0x52,
0x17, 0x96, 0x09, 0x00, 0x05, 0x01, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x35, 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x39, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x96,
- 0x03, 0x00, 0x08, 0x3A, 0x02, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x46, 0x87, 0x01, 0x00, 0x00,
- 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x91, 0x00, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x04,
- 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00,
- 0x41, 0x00, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x4C, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x3D, 0x08, 0x0A,
- 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x96, 0x02, 0x00,
- 0x08, 0x3C, 0x47, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x4E,
- 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x47, 0x1D, 0x99, 0x02,
- 0x00, 0x33, 0x00, 0x96, 0x04, 0x00, 0x08, 0x3A, 0x08, 0x0A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01,
- 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x96, 0x02, 0x00, 0x08, 0x3C, 0x47, 0x96, 0x02, 0x00, 0x08,
- 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00,
- 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x1D, 0x99, 0x02, 0x00, 0x61, 0xFF, 0x96, 0x02, 0x00, 0x08, 0x3A,
- 0x1C, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
- 0x02, 0x00, 0x08, 0x3E, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x96, 0x02, 0x00, 0x08,
- 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3F, 0x4E, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x40, 0x9B, 0x05, 0x00, 0x00, 0x00,
- 0x00, 0x0D, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x41, 0x4E, 0x3E,
- 0x4F, 0x96, 0x08, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x02, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96,
- 0x13, 0x00, 0x08, 0x42, 0x07, 0x10, 0x00, 0x00, 0x00, 0x07, 0xF4, 0x01, 0x00, 0x00, 0x07, 0x02,
- 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x0E, 0x00, 0x07, 0x06, 0x00, 0x00, 0x00, 0x08,
- 0x44, 0x07, 0xF4, 0x01, 0x00, 0x00, 0x08, 0x42, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
- 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x45,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
- 0x43, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
- 0x13, 0x00, 0x08, 0x46, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02,
- 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x47, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00,
- 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x48, 0x07, 0x03, 0x00, 0x00,
- 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x49,
- 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
- 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
- 0x13, 0x00, 0x08, 0x4A, 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02,
- 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x39, 0x07, 0x06, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00,
- 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x4B, 0x07, 0x07, 0x00, 0x00,
- 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x4C,
- 0x07, 0x08, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
- 0x01, 0x3D, 0x4F, 0x96, 0x13, 0x00, 0x08, 0x4D, 0x07, 0x09, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00,
- 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x4D,
- 0x1C, 0x96, 0x10, 0x00, 0x08, 0x30, 0x08, 0x4E, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00,
- 0x00, 0x00, 0x08, 0x45, 0x40, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x30,
- 0x08, 0x4D, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96,
- 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x33,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
- 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
- 0x13, 0x00, 0x08, 0x4F, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02,
- 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x50, 0x07, 0x0B, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00,
- 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x51, 0x07, 0x0C, 0x00, 0x00,
- 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x35,
- 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x36, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00,
- 0x73, 0x72, 0x63, 0x00, 0x72, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96, 0x01, 0x00, 0x02,
- 0x49, 0x12, 0x9D, 0x02, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04, 0x00,
- 0x08, 0x37, 0x05, 0x00, 0x4F, 0x96, 0x09, 0x00, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08,
- 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x52, 0x17, 0x99, 0x02, 0x00, 0x3A, 0x00, 0x96, 0x02,
- 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x38, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x51, 0x52, 0x17, 0x96, 0x09, 0x00, 0x05, 0x01, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x3E, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00,
- 0x0D, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3F, 0x4E, 0x3E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x40, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x41, 0x4E, 0x3E, 0x4F, 0x96, 0x07, 0x00, 0x08, 0x52, 0x07, 0x00, 0x00, 0x00,
- 0x00, 0x43, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x52, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x53, 0x07, 0x00,
- 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x52, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x53,
- 0x4E, 0x96, 0x13, 0x00, 0x08, 0x54, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0B, 0x00, 0x00, 0x00,
- 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00,
- 0x00, 0x08, 0x52, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x53, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x54, 0x52,
- 0x17, 0x96, 0x02, 0x00, 0x08, 0x52, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x53, 0x4E, 0x96, 0x02, 0x00,
- 0x08, 0x54, 0x3A, 0x17, 0x96, 0x02, 0x00, 0x08, 0x55, 0x9B, 0x0C, 0x00, 0x00, 0x01, 0x00, 0x74,
- 0x61, 0x72, 0x67, 0x65, 0x74, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04,
- 0x00, 0x08, 0x56, 0x08, 0x56, 0x1C, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02,
- 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x1D,
- 0x96, 0x09, 0x00, 0x08, 0x57, 0x07, 0xBC, 0x02, 0x00, 0x00, 0x08, 0x55, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96,
- 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x55, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30,
- 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x02, 0x00,
- 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x59, 0x9B, 0x0C,
- 0x00, 0x00, 0x01, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x5B, 0x00, 0x96, 0x09, 0x00,
- 0x08, 0x5C, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x5A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x5B, 0x52,
- 0x3C, 0x96, 0x02, 0x00, 0x08, 0x5C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x5D, 0x49, 0x9D, 0x02, 0x00,
- 0x2D, 0x00, 0x96, 0x02, 0x00, 0x08, 0x5C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x5E, 0x49, 0x9D, 0x02,
- 0x00, 0x0E, 0x00, 0x96, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x99, 0x02, 0x00, 0x09,
- 0x00, 0x96, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x3E, 0x99, 0x02, 0x00, 0x09, 0x00, 0x96,
- 0x05, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x5F, 0x9B, 0x17, 0x00, 0x00, 0x03, 0x00,
- 0x75, 0x72, 0x6C, 0x00, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F,
- 0x64, 0x00, 0x97, 0x00, 0x96, 0x02, 0x00, 0x08, 0x56, 0x1C, 0x44, 0x96, 0x02, 0x00, 0x08, 0x60,
- 0x49, 0x12, 0x9D, 0x02, 0x00, 0x08, 0x00, 0x96, 0x04, 0x00, 0x08, 0x56, 0x08, 0x4E, 0x1D, 0x96,
- 0x04, 0x00, 0x08, 0x61, 0x08, 0x5A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08,
- 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x59, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96,
- 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00, 0x3E, 0x00, 0x96, 0x02, 0x00,
- 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00, 0x15,
- 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x56, 0x1C, 0x9A, 0x01, 0x00,
- 0x02, 0x99, 0x02, 0x00, 0x10, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x56, 0x1C, 0x9A, 0x01, 0x00, 0x01, 0x99, 0x02, 0x00, 0x10, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x56, 0x1C, 0x9A, 0x01, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x63, 0x9B, 0x10, 0x00,
- 0x00, 0x02, 0x00, 0x75, 0x72, 0x6C, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x99, 0x00,
- 0x96, 0x04, 0x00, 0x08, 0x61, 0x08, 0x5A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
- 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x59, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C,
- 0x20, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x49,
- 0x9D, 0x02, 0x00, 0x4A, 0x00, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x01,
- 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0xC2, 0x99,
- 0x02, 0x00, 0x16, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0xC1, 0x99, 0x02, 0x00, 0x16, 0x00, 0x96,
+ 0x00, 0x08, 0x35, 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x3E, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x96,
+ 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3F, 0x4E, 0x3E, 0x4F, 0x96, 0x02, 0x00,
+ 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x40, 0x9B, 0x05,
+ 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x41, 0x4E, 0x3E, 0x4F, 0x96, 0x07, 0x00, 0x08, 0x52, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x1D,
+ 0x96, 0x02, 0x00, 0x08, 0x52, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x53, 0x07, 0x00, 0x00, 0x00, 0x00,
+ 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x52, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x53, 0x4E, 0x96, 0x13,
+ 0x00, 0x08, 0x54, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0B, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00,
+ 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x52,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x53, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x54, 0x52, 0x17, 0x96, 0x02,
+ 0x00, 0x08, 0x52, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x53, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x54, 0x3A,
+ 0x17, 0x96, 0x02, 0x00, 0x08, 0x55, 0x9B, 0x0C, 0x00, 0x00, 0x01, 0x00, 0x74, 0x61, 0x72, 0x67,
+ 0x65, 0x74, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x56,
+ 0x08, 0x56, 0x1C, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x09, 0x1C,
+ 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x1D, 0x96, 0x09, 0x00,
+ 0x08, 0x57, 0x07, 0xBC, 0x02, 0x00, 0x00, 0x08, 0x55, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
+ 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07,
+ 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x55, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07,
+ 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x59, 0x9B, 0x0C, 0x00, 0x00, 0x01,
+ 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x5B, 0x00, 0x96, 0x09, 0x00, 0x08, 0x5C, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0x5A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x5B, 0x52, 0x3C, 0x96, 0x02,
+ 0x00, 0x08, 0x5C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x5D, 0x49, 0x9D, 0x02, 0x00, 0x2D, 0x00, 0x96,
+ 0x02, 0x00, 0x08, 0x5C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x5E, 0x49, 0x9D, 0x02, 0x00, 0x0E, 0x00,
+ 0x96, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x99, 0x02, 0x00, 0x09, 0x00, 0x96, 0x05,
+ 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x3E, 0x99, 0x02, 0x00, 0x09, 0x00, 0x96, 0x05, 0x00, 0x07,
+ 0x02, 0x00, 0x00, 0x00, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x5F, 0x9B, 0x17, 0x00, 0x00, 0x03, 0x00, 0x75, 0x72, 0x6C,
+ 0x00, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x97,
+ 0x00, 0x96, 0x02, 0x00, 0x08, 0x56, 0x1C, 0x44, 0x96, 0x02, 0x00, 0x08, 0x60, 0x49, 0x12, 0x9D,
+ 0x02, 0x00, 0x08, 0x00, 0x96, 0x04, 0x00, 0x08, 0x56, 0x08, 0x4E, 0x1D, 0x96, 0x04, 0x00, 0x08,
+ 0x61, 0x08, 0x5A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x59, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00, 0x3E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C,
+ 0x96, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00, 0x15, 0x00, 0x96, 0x02,
+ 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x56, 0x1C, 0x9A, 0x01, 0x00, 0x02, 0x99, 0x02,
+ 0x00, 0x10, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x56, 0x1C, 0x9A,
+ 0x01, 0x00, 0x01, 0x99, 0x02, 0x00, 0x10, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x56, 0x1C, 0x9A, 0x01, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x63, 0x9B, 0x10, 0x00, 0x00, 0x02, 0x00,
+ 0x75, 0x72, 0x6C, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x99, 0x00, 0x96, 0x04, 0x00,
+ 0x08, 0x61, 0x08, 0x5A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x59, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x20, 0x96, 0x02,
+ 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00,
+ 0x4A, 0x00, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
+ 0x49, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0xC2, 0x99, 0x02, 0x00, 0x16,
+ 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0xC1, 0x99, 0x02, 0x00, 0x16, 0x00, 0x96, 0x02, 0x00, 0x08,
+ 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01,
+ 0x00, 0xC0, 0x8B, 0x01, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x65, 0x9B, 0x10, 0x00, 0x00, 0x02, 0x00, 0x75, 0x72,
+ 0x6C, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x99, 0x00, 0x96, 0x04, 0x00, 0x08, 0x61,
+ 0x08, 0x5A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x59, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x20, 0x96, 0x02, 0x00, 0x08,
+ 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00, 0x4A, 0x00,
+ 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x49, 0x9D,
+ 0x02, 0x00, 0x1B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0x42, 0x99, 0x02, 0x00, 0x16, 0x00, 0x96,
0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64,
- 0x4E, 0x9A, 0x01, 0x00, 0xC0, 0x8B, 0x01, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x65, 0x9B, 0x10, 0x00, 0x00, 0x02,
- 0x00, 0x75, 0x72, 0x6C, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x99, 0x00, 0x96, 0x04,
- 0x00, 0x08, 0x61, 0x08, 0x5A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x59, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x20, 0x96,
- 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02,
- 0x00, 0x4A, 0x00, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00,
- 0x00, 0x49, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0x42, 0x99, 0x02, 0x00,
- 0x16, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0x41, 0x99, 0x02, 0x00, 0x16, 0x00, 0x96, 0x02, 0x00,
- 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A,
- 0x01, 0x00, 0x40, 0x8B, 0x01, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x66, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x84,
- 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x67, 0x07, 0x01, 0x00,
- 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
- 0x68, 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
- 0x96, 0x13, 0x00, 0x08, 0x69, 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07,
- 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x40, 0x07, 0x06, 0x00, 0x00, 0x00, 0x07, 0x84,
- 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x3E, 0x07, 0x07, 0x00,
- 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
- 0x6A, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
- 0x96, 0x13, 0x00, 0x08, 0x6B, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07,
- 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6C, 0x07, 0x0D, 0x00, 0x00, 0x00, 0x07, 0x84,
- 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6D, 0x07, 0x0E, 0x00,
- 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
- 0x6E, 0x07, 0x0F, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
- 0x96, 0x13, 0x00, 0x08, 0x6F, 0x07, 0x10, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07,
- 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x70, 0x07, 0x11, 0x00, 0x00, 0x00, 0x07, 0x84,
- 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x71, 0x07, 0x12, 0x00,
- 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
- 0x72, 0x07, 0x13, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
- 0x96, 0x13, 0x00, 0x08, 0x73, 0x07, 0x14, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07,
- 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x74, 0x07, 0x15, 0x00, 0x00, 0x00, 0x07, 0x84,
- 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x75, 0x07, 0x00, 0x00,
- 0x00, 0x00, 0x07, 0x85, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
- 0x76, 0x07, 0xC8, 0x00, 0x00, 0x00, 0x07, 0x68, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x08, 0x77, 0x08, 0x58,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08,
- 0x05, 0x3D, 0x17, 0x96, 0x09, 0x00, 0x08, 0x78, 0x07, 0x85, 0x03, 0x00, 0x00, 0x08, 0x58, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00,
- 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x58, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17,
- 0x96, 0x13, 0x00, 0x08, 0x79, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x68, 0x00, 0x00, 0x00, 0x07,
- 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x7A, 0x07, 0x66, 0x00, 0x00, 0x00, 0x07, 0x68,
- 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x7B, 0x07, 0x68, 0x00,
- 0x00, 0x00, 0x07, 0x68, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
- 0x7C, 0x07, 0x69, 0x00, 0x00, 0x00, 0x07, 0x68, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x13, 0x00, 0x08, 0x7D, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x6E,
- 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08,
- 0x79, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x7E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x71, 0x00, 0x00,
- 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x7F, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x6F, 0x00, 0x67, 0x00, 0x96, 0x02, 0x00, 0x08, 0x13,
- 0x1C, 0x44, 0x96, 0x02, 0x00, 0x08, 0x80, 0x49, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x05, 0x00, 0x96,
- 0x01, 0x00, 0x02, 0x3E, 0x96, 0x07, 0x00, 0x08, 0x81, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x3C,
- 0x96, 0x02, 0x00, 0x08, 0x13, 0x46, 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D,
- 0x02, 0x00, 0x27, 0x00, 0x96, 0x04, 0x00, 0x08, 0x82, 0x04, 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08,
- 0x81, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x82, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x82, 0x1C, 0x4E, 0x4F, 0x99, 0x02, 0x00, 0xCB, 0xFF, 0x96, 0x02, 0x00, 0x08, 0x81,
- 0x1C, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96,
- 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x83, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00,
- 0x24, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x84, 0x07, 0x00, 0x00,
- 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x85, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x86, 0x9B, 0x0A,
- 0x00, 0x00, 0x01, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x00, 0x25, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x84, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x4E, 0x96, 0x07,
- 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7F, 0x52, 0x3E,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00,
- 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x88, 0x9B, 0x10, 0x00, 0x00, 0x02, 0x00, 0x6E, 0x61,
- 0x6D, 0x65, 0x00, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x67, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x84, 0x4E, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x12, 0x00, 0x96, 0x02,
- 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x84, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x84, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
- 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7F, 0x52, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C,
- 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8A,
- 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96,
- 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x8B, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00,
- 0x5B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x8C, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x84, 0x4E,
- 0x3C, 0x96, 0x07, 0x00, 0x08, 0x8D, 0x07, 0x00, 0x00, 0x00, 0x00, 0x42, 0x3C, 0x96, 0x02, 0x00,
- 0x08, 0x8C, 0x46, 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x25,
- 0x00, 0x96, 0x04, 0x00, 0x08, 0x82, 0x04, 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x82, 0x1C, 0x96,
- 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x52,
- 0x17, 0x99, 0x02, 0x00, 0xCD, 0xFF, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x3E, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
- 0x96, 0x02, 0x00, 0x08, 0x8A, 0x9B, 0x0A, 0x00, 0x00, 0x01, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x00,
- 0x5C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x85, 0x4E, 0x12, 0x12,
- 0x9D, 0x02, 0x00, 0x12, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x85,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x85, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x84, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07,
- 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8E, 0x52, 0x4F, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30,
- 0x4E, 0x96, 0x02, 0x00, 0x08, 0x8E, 0x9B, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x73, 0x74, 0x79, 0x6C,
- 0x65, 0x00, 0x9D, 0x03, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12,
- 0x9D, 0x02, 0x00, 0x05, 0x00, 0x96, 0x01, 0x00, 0x02, 0x3E, 0x96, 0x09, 0x00, 0x08, 0x8F, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x08, 0x7D, 0x40, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x90, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x15, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C,
- 0x96, 0x04, 0x00, 0x08, 0x91, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x90, 0x4E, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x92, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x93,
- 0x49, 0x9D, 0x02, 0x00, 0x2B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x92, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x94, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02,
- 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x93, 0x05, 0x00, 0x4F, 0x99, 0x02, 0x00, 0x0E,
- 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x93, 0x05, 0x01, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x95, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x41,
- 0x00, 0x96, 0x04, 0x00, 0x08, 0x8C, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x95, 0x4E, 0x96,
- 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x96, 0x52,
- 0x3C, 0x96, 0x02, 0x00, 0x08, 0x8C, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x12, 0x9D, 0x02,
- 0x00, 0x0F, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x95, 0x08, 0x8C,
- 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x97, 0x08, 0x89, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x97, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x98, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x26, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96,
- 0x04, 0x00, 0x08, 0x99, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x98, 0x4E, 0x96, 0x07, 0x00,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9A, 0x52, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9B, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20,
- 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9C, 0x08, 0x89, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x9B, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9E, 0x4E, 0x96, 0x02, 0x00,
- 0x08, 0x9F, 0x49, 0x9D, 0x02, 0x00, 0x2B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x9E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x94, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x0E, 0x00,
- 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9F, 0x05, 0x00, 0x4F, 0x99, 0x02,
- 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9F, 0x05, 0x01,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA0, 0x4E, 0x96, 0x02, 0x00,
- 0x08, 0xA1, 0x49, 0x9D, 0x02, 0x00, 0x4F, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0xA0, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xA2, 0x49, 0x9D, 0x02, 0x00, 0x25, 0x00, 0x96,
- 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA0, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0xA0, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D, 0x4F, 0x99,
- 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA0, 0x05,
- 0x00, 0x4F, 0x99, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00,
- 0x08, 0xA0, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA3,
- 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00,
- 0x08, 0xA3, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA3, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01,
- 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0xA4, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96,
- 0x04, 0x00, 0x08, 0xA5, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA4, 0x4E, 0x96, 0x07, 0x00,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0xA6, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F,
- 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA6, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA6, 0x4E, 0x96,
- 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA7, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00,
- 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA8, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA7,
- 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA9, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x3B, 0x00, 0x96,
- 0x04, 0x00, 0x08, 0x8C, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA9, 0x4E, 0x96, 0x07, 0x00,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D, 0x3C, 0x96, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00,
- 0x00, 0x08, 0x8C, 0x1C, 0x48, 0x12, 0x9D, 0x02, 0x00, 0x0F, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F,
- 0x1C, 0x96, 0x04, 0x00, 0x08, 0xAA, 0x08, 0x8C, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0xAB, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xAC, 0x49, 0x9D, 0x02, 0x00, 0x2B,
- 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xAB, 0x4E, 0x96, 0x02, 0x00,
- 0x08, 0xAD, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96,
- 0x04, 0x00, 0x08, 0xAC, 0x05, 0x00, 0x4F, 0x99, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08,
- 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xAC, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C,
- 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xAE, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00, 0x63,
- 0x73, 0x73, 0x00, 0xC8, 0x00, 0x96, 0x04, 0x00, 0x08, 0xB1, 0x08, 0xAF, 0x1C, 0x96, 0x07, 0x00,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xB0, 0x52, 0x3C, 0x96,
- 0x02, 0x00, 0x08, 0xB1, 0x1C, 0x44, 0x96, 0x02, 0x00, 0x08, 0xB2, 0x49, 0x12, 0x9D, 0x02, 0x00,
- 0x06, 0x00, 0x96, 0x02, 0x00, 0x05, 0x00, 0x3E, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x84, 0x4E, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x12, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09,
- 0x1C, 0x96, 0x07, 0x00, 0x08, 0x84, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0xB1, 0x46, 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x56,
- 0x00, 0x96, 0x04, 0x00, 0x08, 0x82, 0x04, 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x84, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x82, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xB1,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x82, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
- 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7F, 0x52, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x82, 0x1C,
- 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8A,
- 0x52, 0x17, 0x99, 0x02, 0x00, 0x9C, 0xFF, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
- 0x96, 0x04, 0x00, 0x08, 0xB3, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xAE, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00,
- 0x08, 0x33, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00,
- 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E,
- 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x35, 0x9B, 0x05, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E,
- 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x36, 0x9B, 0x09, 0x00, 0x00,
- 0x01, 0x00, 0x73, 0x72, 0x63, 0x00, 0x6B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96, 0x01,
- 0x00, 0x02, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x19, 0x00, 0x96, 0x09, 0x00, 0x05, 0x00, 0x07, 0x01,
- 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x52, 0x17, 0x99, 0x02, 0x00,
- 0x41, 0x00, 0x96, 0x04, 0x00, 0x08, 0xB1, 0x08, 0x38, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
- 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xB3, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08,
- 0x09, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x08, 0xB1, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0xB1,
+ 0x4E, 0x9A, 0x01, 0x00, 0x41, 0x99, 0x02, 0x00, 0x16, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0x40,
+ 0x8B, 0x01, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30,
+ 0x4E, 0x96, 0x13, 0x00, 0x08, 0x66, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00,
+ 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x67, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07,
+ 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00,
+ 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x68, 0x07, 0x04,
+ 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00,
+ 0x08, 0x69, 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00,
+ 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30,
+ 0x4E, 0x96, 0x13, 0x00, 0x08, 0x40, 0x07, 0x06, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00,
+ 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x3E, 0x07, 0x07, 0x00, 0x00, 0x00, 0x07,
+ 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00,
+ 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6A, 0x07, 0x0A,
+ 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00,
+ 0x08, 0x6B, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00,
+ 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30,
+ 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6C, 0x07, 0x0D, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00,
+ 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6D, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x07,
+ 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00,
+ 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6E, 0x07, 0x0F,
+ 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00,
+ 0x08, 0x6F, 0x07, 0x10, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00,
+ 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30,
+ 0x4E, 0x96, 0x13, 0x00, 0x08, 0x70, 0x07, 0x11, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00,
+ 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x71, 0x07, 0x12, 0x00, 0x00, 0x00, 0x07,
+ 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00,
+ 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x72, 0x07, 0x13,
+ 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00,
+ 0x08, 0x73, 0x07, 0x14, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00,
+ 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30,
+ 0x4E, 0x96, 0x13, 0x00, 0x08, 0x74, 0x07, 0x15, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00,
+ 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x75, 0x07, 0xC8, 0x00, 0x00, 0x00, 0x07,
+ 0x68, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x09, 0x00,
+ 0x07, 0x80, 0x00, 0x00, 0x00, 0x08, 0x6A, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
+ 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x09, 0x00, 0x08,
+ 0x76, 0x07, 0x85, 0x03, 0x00, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
+ 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x02, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00,
+ 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x77, 0x07, 0x00,
+ 0x00, 0x00, 0x00, 0x07, 0x68, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D,
+ 0x1D, 0x96, 0x02, 0x00, 0x08, 0x77, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00,
+ 0x08, 0x78, 0x07, 0x66, 0x00, 0x00, 0x00, 0x07, 0x68, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00,
+ 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x77, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30,
+ 0x4E, 0x96, 0x13, 0x00, 0x08, 0x79, 0x07, 0x68, 0x00, 0x00, 0x00, 0x07, 0x68, 0x00, 0x00, 0x00,
+ 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x77, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x7A, 0x07, 0x69, 0x00, 0x00, 0x00, 0x07,
+ 0x68, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x13, 0x00,
+ 0x08, 0x7B, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x6E, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00,
+ 0x00, 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x77, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x7C,
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x71, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
+ 0x43, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x77, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x4E, 0x96,
+ 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x7D, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00,
+ 0x6F, 0x00, 0x67, 0x00, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x44, 0x96, 0x02, 0x00, 0x08, 0x7E,
+ 0x49, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x05, 0x00, 0x96, 0x01, 0x00, 0x02, 0x3E, 0x96, 0x07, 0x00,
+ 0x08, 0x7F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x13, 0x46, 0x87,
+ 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x27, 0x00, 0x96, 0x04, 0x00,
+ 0x08, 0x80, 0x04, 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x7F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x80,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x80, 0x1C, 0x4E, 0x4F, 0x99,
+ 0x02, 0x00, 0xCB, 0xFF, 0x96, 0x02, 0x00, 0x08, 0x7F, 0x1C, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x77, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02,
+ 0x00, 0x08, 0x81, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09,
+ 0x1C, 0x96, 0x07, 0x00, 0x08, 0x82, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00,
+ 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x83, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x77, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x84, 0x9B, 0x0A, 0x00, 0x00, 0x01, 0x00, 0x6E, 0x61, 0x6D,
+ 0x65, 0x00, 0x25, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x82, 0x4E,
+ 0x96, 0x02, 0x00, 0x08, 0x85, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08,
+ 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7D, 0x52, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x77, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x86, 0x9B, 0x10, 0x00, 0x00, 0x02, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x00, 0x73, 0x74, 0x79, 0x6C,
+ 0x65, 0x00, 0x67, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x82, 0x4E,
+ 0x12, 0x12, 0x9D, 0x02, 0x00, 0x12, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00,
+ 0x08, 0x82, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x82, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x85, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x87,
0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x35, 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0xB0, 0x07, 0x65, 0x00, 0x00, 0x00,
- 0x07, 0x71, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
- 0x96, 0x13, 0x00, 0x08, 0x9A, 0x07, 0x66, 0x00, 0x00, 0x00, 0x07, 0x71, 0x00, 0x00, 0x00, 0x07,
- 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x96, 0x07,
- 0x67, 0x00, 0x00, 0x00, 0x07, 0x71, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01,
- 0x3D, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x03, 0x04, 0x00, 0x00, 0x02, 0x08, 0x79, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00,
- 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x09, 0x00, 0x07, 0x03, 0x04, 0x00, 0x00, 0x08, 0x7E,
- 0x08, 0x79, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96,
- 0x13, 0x00, 0x08, 0xB4, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFA, 0x00, 0x00, 0x00, 0x07, 0x02,
- 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0xB5, 0x07, 0x01, 0x00, 0x00,
- 0x00, 0x07, 0xFA, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96,
- 0x13, 0x00, 0x08, 0xB6, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, 0xFA, 0x00, 0x00, 0x00, 0x07, 0x02,
- 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x04, 0x00, 0x08, 0xB7, 0x08, 0xB5, 0x1C, 0x1D,
- 0x96, 0x03, 0x00, 0x08, 0x13, 0x02, 0x1D, 0x96, 0x0D, 0x00, 0x07, 0x06, 0x00, 0x00, 0x00, 0x07,
- 0x01, 0x00, 0x00, 0x00, 0x02, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00,
- 0x08, 0x05, 0x3D, 0x17, 0x00
+ 0x7D, 0x52, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x85, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00,
+ 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x88, 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x77, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02,
+ 0x00, 0x08, 0x89, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x8A,
+ 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x82, 0x4E, 0x3C, 0x96, 0x07, 0x00, 0x08, 0x8B, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x42, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x8A, 0x46, 0x87, 0x01, 0x00, 0x00,
+ 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x25, 0x00, 0x96, 0x04, 0x00, 0x08, 0x80, 0x04,
+ 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x80, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
+ 0x08, 0x8B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x52, 0x17, 0x99, 0x02, 0x00, 0xCD, 0xFF, 0x96,
+ 0x02, 0x00, 0x08, 0x8B, 0x1C, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x77, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x88, 0x9B, 0x0A,
+ 0x00, 0x00, 0x01, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x00, 0x5C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x83, 0x4E, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x12, 0x00, 0x96, 0x02,
+ 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x83, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x83, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x85, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x82, 0x4E, 0x96, 0x02,
+ 0x00, 0x08, 0x85, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x8C, 0x52, 0x4F, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x77, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x8C, 0x9B,
+ 0x0B, 0x00, 0x00, 0x01, 0x00, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x9D, 0x03, 0x96, 0x02, 0x00,
+ 0x08, 0x87, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x05, 0x00, 0x96, 0x01,
+ 0x00, 0x02, 0x3E, 0x96, 0x09, 0x00, 0x08, 0x8D, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7B, 0x40,
+ 0x3C, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8E, 0x4E, 0x12, 0x9D, 0x02,
+ 0x00, 0x15, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x8F, 0x08, 0x87,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8E, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x90, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x91, 0x49, 0x9D, 0x02, 0x00, 0x2B, 0x00, 0x96,
+ 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x90, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x92,
+ 0x49, 0x12, 0x9D, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x04, 0x00,
+ 0x08, 0x91, 0x05, 0x00, 0x4F, 0x99, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C,
+ 0x96, 0x04, 0x00, 0x08, 0x91, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x93, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x41, 0x00, 0x96, 0x04, 0x00, 0x08, 0x8A, 0x08,
+ 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x93, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
+ 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x94, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x8A, 0x1C,
+ 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x0F, 0x00, 0x96, 0x02, 0x00, 0x08,
+ 0x8D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x93, 0x08, 0x8A, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x8D,
+ 0x1C, 0x96, 0x04, 0x00, 0x08, 0x95, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x95, 0x4E, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x96, 0x4E, 0x12, 0x9D, 0x02, 0x00,
+ 0x26, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x97, 0x08, 0x87, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x96, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x98, 0x52, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x99, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C,
+ 0x96, 0x04, 0x00, 0x08, 0x9A, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x99, 0x4E, 0x96, 0x07,
+ 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9B, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x9C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x9D, 0x49, 0x9D, 0x02, 0x00, 0x2B,
+ 0x00, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9C, 0x4E, 0x96, 0x02, 0x00,
+ 0x08, 0x92, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x96,
+ 0x04, 0x00, 0x08, 0x9D, 0x05, 0x00, 0x4F, 0x99, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08,
+ 0x8D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9D, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x9E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x9F, 0x49, 0x9D, 0x02, 0x00, 0x4F,
+ 0x00, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9E, 0x4E, 0x96, 0x02, 0x00,
+ 0x08, 0xA0, 0x49, 0x9D, 0x02, 0x00, 0x25, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x04,
+ 0x00, 0x08, 0x9E, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9E, 0x4E, 0x96, 0x07, 0x00, 0x07,
+ 0x01, 0x00, 0x00, 0x00, 0x08, 0x9B, 0x3D, 0x4F, 0x99, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00,
+ 0x08, 0x8D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9E, 0x05, 0x00, 0x4F, 0x99, 0x02, 0x00, 0x0E, 0x00,
+ 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9E, 0x05, 0x01, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA1, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00,
+ 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA1, 0x08, 0x87, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0xA1, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9B, 0x3D, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA2, 0x4E, 0x12, 0x9D, 0x02, 0x00,
+ 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA3, 0x08, 0x87, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0xA2, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9B,
+ 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA4, 0x4E, 0x12, 0x9D,
+ 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA4, 0x08,
+ 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA4, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
+ 0x08, 0x9B, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA5, 0x4E,
+ 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x04, 0x00, 0x08,
+ 0xA6, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA5, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
+ 0x00, 0x00, 0x08, 0x9B, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0xA7, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x3B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x8A, 0x08, 0x87, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0xA7, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9B,
+ 0x3D, 0x3C, 0x96, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x8A, 0x1C, 0x48, 0x12, 0x9D,
+ 0x02, 0x00, 0x0F, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA8, 0x08,
+ 0x8A, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA9, 0x4E, 0x96,
+ 0x02, 0x00, 0x08, 0xAA, 0x49, 0x9D, 0x02, 0x00, 0x2B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0xA9, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xAB, 0x49, 0x12, 0x9D, 0x02, 0x00,
+ 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xAA, 0x05, 0x00, 0x4F,
+ 0x99, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xAA,
+ 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x77,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00,
+ 0x08, 0xAC, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00, 0x63, 0x73, 0x73, 0x00, 0xC8, 0x00, 0x96, 0x04,
+ 0x00, 0x08, 0xAF, 0x08, 0xAD, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0xAE, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0xAF, 0x1C, 0x44, 0x96,
+ 0x02, 0x00, 0x08, 0xB0, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x06, 0x00, 0x96, 0x02, 0x00, 0x05, 0x00,
+ 0x3E, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x82, 0x4E, 0x12, 0x12, 0x9D,
+ 0x02, 0x00, 0x12, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x82, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0xAF, 0x46, 0x87, 0x01, 0x00, 0x00,
+ 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x56, 0x00, 0x96, 0x04, 0x00, 0x08, 0x80, 0x04,
+ 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x82, 0x4E, 0x96, 0x02,
+ 0x00, 0x08, 0x80, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xAF, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x80, 0x1C,
+ 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x7D, 0x52, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x80, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00,
+ 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x88, 0x52, 0x17, 0x99, 0x02, 0x00, 0x9C, 0xFF,
+ 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x77, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x04, 0x00, 0x08, 0xB1, 0x08, 0x77,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00,
+ 0x08, 0xAC, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x77, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x4E,
+ 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x33, 0x07, 0x00, 0x00, 0x00, 0x00,
+ 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x77, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
+ 0x96, 0x02, 0x00, 0x08, 0x35, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x77, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
+ 0x96, 0x02, 0x00, 0x08, 0x36, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00, 0x73, 0x72, 0x63, 0x00, 0x6B,
+ 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x9D, 0x02, 0x00,
+ 0x19, 0x00, 0x96, 0x09, 0x00, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x35, 0x52, 0x17, 0x99, 0x02, 0x00, 0x41, 0x00, 0x96, 0x04, 0x00, 0x08, 0xAF,
+ 0x08, 0x38, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0xB1, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37,
+ 0x08, 0xAF, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0xAF, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
+ 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00,
+ 0x08, 0x77, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
+ 0x13, 0x00, 0x08, 0xAE, 0x07, 0x65, 0x00, 0x00, 0x00, 0x07, 0x71, 0x00, 0x00, 0x00, 0x07, 0x02,
+ 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x77, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x98, 0x07, 0x66,
+ 0x00, 0x00, 0x00, 0x07, 0x71, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x77, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00,
+ 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x94, 0x07, 0x67, 0x00, 0x00, 0x00, 0x07, 0x71, 0x00,
+ 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x03,
+ 0x04, 0x00, 0x00, 0x02, 0x08, 0x77, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x4E, 0x96, 0x02, 0x00,
+ 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96,
+ 0x09, 0x00, 0x07, 0x03, 0x04, 0x00, 0x00, 0x08, 0x7C, 0x08, 0x77, 0x1C, 0x96, 0x07, 0x00, 0x07,
+ 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0xB2, 0x07, 0x00, 0x00,
+ 0x00, 0x00, 0x07, 0xFA, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D,
+ 0x96, 0x13, 0x00, 0x08, 0xB3, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0xFA, 0x00, 0x00, 0x00, 0x07,
+ 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0xB4, 0x07, 0x02, 0x00,
+ 0x00, 0x00, 0x07, 0xFA, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D,
+ 0x96, 0x04, 0x00, 0x08, 0xB5, 0x08, 0xB3, 0x1C, 0x1D, 0x96, 0x03, 0x00, 0x08, 0x13, 0x02, 0x1D,
+ 0x96, 0x0D, 0x00, 0x07, 0x06, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x02, 0x08, 0x09,
+ 0x1C, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x00
};
diff-tree df08f79f1a4f119c646922cecac83fbed966ade1 (from f85b0945dfa9e438af6dae91c91ed65d73340986)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Sat Oct 13 12:10:12 2007 +0300
Format the typeof exception for TextField little better
diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c
index 6af0db9..59b6052 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -2104,10 +2104,12 @@ swfdec_action_type_of (SwfdecAsContext *
case SWFDEC_AS_TYPE_OBJECT:
{
SwfdecAsObject *obj = SWFDEC_AS_VALUE_GET_OBJECT (val);
- if (SWFDEC_IS_TEXT_FIELD_MOVIE (obj)) {
- type = SWFDEC_AS_STR_object;
- } else if (SWFDEC_IS_MOVIE (obj)) {
- type = SWFDEC_AS_STR_movieclip;
+ if (SWFDEC_IS_MOVIE (obj)) {
+ if (SWFDEC_IS_TEXT_FIELD_MOVIE (obj)) {
+ type = SWFDEC_AS_STR_object;
+ } else {
+ type = SWFDEC_AS_STR_movieclip;
+ }
} else if (SWFDEC_IS_AS_FUNCTION (obj)) {
type = SWFDEC_AS_STR_function;
} else {
diff-tree f85b0945dfa9e438af6dae91c91ed65d73340986 (from 1c59d3490ad6a002dcfebdc67fbcb6b6d20f9744)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Sat Oct 13 12:04:49 2007 +0300
Fix typo: Was setting TextField's native properties to TextFormat by accident
diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index 8e67933..a4ecd5c 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -749,7 +749,7 @@ swfdec_text_field_movie_init_properties
g_return_if_fail (SWFDEC_IS_AS_CONTEXT (cx));
- swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextFormat, &val);
+ swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextField, &val);
if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
return;
object = SWFDEC_AS_VALUE_GET_OBJECT (&val);
diff-tree 1c59d3490ad6a002dcfebdc67fbcb6b6d20f9744 (from f8657b2bf57918cb493944e14e6cbc660c989c6c)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Sat Oct 13 12:02:03 2007 +0300
Fix an assert when TextField has no text
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 3df04b0..2827961 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -297,7 +297,7 @@ swfdec_text_field_movie_generate_paragra
num = 0;
p = text->text_display;
- while (p != NULL) {
+ while (p != NULL && *p != '\0') {
num++;
p = strchr (p, '\r');
if (p != NULL) p++;
diff-tree f8657b2bf57918cb493944e14e6cbc660c989c6c (from 7feb2c4407bf21cf65dbc6c2dd77997636e9cda3)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Sat Oct 13 11:28:19 2007 +0300
Fix reading of some integers values in TextFormat at version 8
diff --git a/libswfdec/swfdec_text_format.c b/libswfdec/swfdec_text_format.c
index 569dfd9..f507b86 100644
--- a/libswfdec/swfdec_text_format.c
+++ b/libswfdec/swfdec_text_format.c
@@ -258,16 +258,25 @@ swfdec_text_format_value_to_integer (Swf
swfdec_as_value_to_string (cx, val);
if (cx->version >= 8) {
- if (!isnan (d) && ((!isfinite (d) && d > 0) || (isfinite (d) && d > (int)G_MAXINT32))) {
- // don't check allow_negative here
- return -2147483648;
- } else {
- if (!allow_negative && (int)d < 0) {
- return 0;
+ if (isnan (d))
+ return (allow_negative ? G_MININT32 : 0);
+
+ if (!isfinite (d)) {
+ if (d > 0) {
+ return G_MININT32;
} else {
- return (int)d;
+ return (allow_negative ? G_MININT32 : 0);
}
}
+ if (d > (double)G_MAXINT32)
+ return G_MININT32;
+
+ n = (int)d;
+ if (!allow_negative && n < 0) {
+ return 0;
+ } else {
+ return n;
+ }
} else {
if (!allow_negative && n < 0) {
return 0;
diff-tree 7feb2c4407bf21cf65dbc6c2dd77997636e9cda3 (from parents)
Merge: 2f16ab4da1787dc8e33ac0688197651d362a5dfc 0cf1868898db2da4a74e46c5fe7d3a68d35cf8e7
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Sat Oct 13 10:54:02 2007 +0300
Merge branch 'master' into textfield
diff-tree 2f16ab4da1787dc8e33ac0688197651d362a5dfc (from e1711c4cde0487d8d5995727cda1a007274cb953)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Sat Oct 13 10:24:00 2007 +0300
Create TextField's native properties even when TextField is created from a tag
Also changed the property initialization to use _global.TextField.prototype and
not object.__proto__. Plus don't initialize them only once, but every time a
TextField is created
diff --git a/libswfdec/swfdec_player_internal.h b/libswfdec/swfdec_player_internal.h
index 7dc105c..182acd0 100644
--- a/libswfdec/swfdec_player_internal.h
+++ b/libswfdec/swfdec_player_internal.h
@@ -74,7 +74,6 @@ struct _SwfdecPlayer
double scale_y; /* cached y scale value */
int offset_x; /* x offset from top left edge after scaling */
int offset_y; /* y offset from top left edge after scaling */
- gboolean edittext_movie_properties_initialized; /* whether TextField object's native properties have been initialized */
gboolean xml_properties_initialized; /* whether XML object's native properties have been initialized */
gboolean xml_node_properties_initialized; /* same for XMLNode */
diff --git a/libswfdec/swfdec_text_field_movie.h b/libswfdec/swfdec_text_field_movie.h
index 40ed0a2..2ade6e2 100644
--- a/libswfdec/swfdec_text_field_movie.h
+++ b/libswfdec/swfdec_text_field_movie.h
@@ -101,6 +101,9 @@ void swfdec_text_field_movie_set_text_f
guint start_index,
guint end_index);
+/* implemented in swfdec_text_field_movie_as.c */
+void swfdec_text_field_movie_init_properties (SwfdecAsContext * cx);
+
/* implemented in swfdec_html_parser.c */
void swfdec_text_field_movie_html_parse (SwfdecTextFieldMovie * text,
const char * str);
diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index a050545..8e67933 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -741,6 +741,47 @@ swfdec_text_field_movie_add_variable (Sw
swfdec_as_object_add_variable (object, variable, get_func, set_func, 0);
}
+void
+swfdec_text_field_movie_init_properties (SwfdecAsContext *cx)
+{
+ SwfdecAsValue val;
+ SwfdecAsObject *object, *proto;
+
+ g_return_if_fail (SWFDEC_IS_AS_CONTEXT (cx));
+
+ swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextFormat, &val);
+ if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
+ return;
+ object = SWFDEC_AS_VALUE_GET_OBJECT (&val);
+ swfdec_as_object_get_variable (object, SWFDEC_AS_STR_prototype, &val);
+ if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
+ return;
+ proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
+
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_text,
+ swfdec_text_field_movie_get_text, swfdec_text_field_movie_do_set_text);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_htmlText,
+ swfdec_text_field_movie_get_htmlText,
+ swfdec_text_field_movie_set_htmlText);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_html,
+ swfdec_text_field_movie_get_html, swfdec_text_field_movie_set_html);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_condenseWhite,
+ swfdec_text_field_movie_get_condenseWhite,
+ swfdec_text_field_movie_set_condenseWhite);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_embedFonts,
+ swfdec_text_field_movie_get_embedFonts,
+ swfdec_text_field_movie_set_embedFonts);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_length,
+ swfdec_text_field_movie_get_length,
+ swfdec_text_field_movie_set_length);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
+ swfdec_text_field_movie_get_textColor,
+ swfdec_text_field_movie_set_textColor);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_autoSize,
+ swfdec_text_field_movie_get_autoSize,
+ swfdec_text_field_movie_set_autoSize);
+}
+
SWFDEC_AS_CONSTRUCTOR (104, 0, swfdec_text_field_movie_construct, swfdec_text_field_movie_get_type)
void
swfdec_text_field_movie_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
@@ -763,39 +804,7 @@ swfdec_text_field_movie_construct (Swfde
g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (object));
- if (!SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized) {
- SwfdecAsValue val;
- SwfdecAsObject *proto;
-
- swfdec_as_object_get_variable (object, SWFDEC_AS_STR___proto__, &val);
- g_return_if_fail (SWFDEC_AS_VALUE_IS_OBJECT (&val));
- proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
-
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_text,
- swfdec_text_field_movie_get_text, swfdec_text_field_movie_do_set_text);
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_htmlText,
- swfdec_text_field_movie_get_htmlText,
- swfdec_text_field_movie_set_htmlText);
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_html,
- swfdec_text_field_movie_get_html, swfdec_text_field_movie_set_html);
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_condenseWhite,
- swfdec_text_field_movie_get_condenseWhite,
- swfdec_text_field_movie_set_condenseWhite);
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_embedFonts,
- swfdec_text_field_movie_get_embedFonts,
- swfdec_text_field_movie_set_embedFonts);
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_length,
- swfdec_text_field_movie_get_length,
- swfdec_text_field_movie_set_length);
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
- swfdec_text_field_movie_get_textColor,
- swfdec_text_field_movie_set_textColor);
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_autoSize,
- swfdec_text_field_movie_get_autoSize,
- swfdec_text_field_movie_set_autoSize);
-
- SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized = TRUE;
- }
+ swfdec_text_field_movie_init_properties (cx);
SWFDEC_AS_VALUE_SET_OBJECT (ret, object);
}
diff-tree e1711c4cde0487d8d5995727cda1a007274cb953 (from dfdcd5343d04f91b23aa6b31df09bcb50179243a)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Oct 12 22:21:24 2007 +0300
Set constructor correctly when creating TextField from a tag
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index ba4d5f3..3df04b0 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -525,11 +525,17 @@ swfdec_text_field_movie_init_movie (Swfd
SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
SwfdecAsContext *cx;
SwfdecAsObject *parent;
- SwfdecAsValue val = { 0, };
+ SwfdecAsValue val;
const char *s;
cx = SWFDEC_AS_OBJECT (movie)->context;
+ swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextField, &val);
+ if (SWFDEC_AS_VALUE_IS_OBJECT (&val)) {
+ swfdec_as_object_set_constructor (SWFDEC_AS_OBJECT (movie),
+ SWFDEC_AS_VALUE_GET_OBJECT (&val));
+ }
+
// format
text->format_new =
SWFDEC_TEXT_FORMAT (swfdec_text_format_new_no_properties (cx));
diff-tree dfdcd5343d04f91b23aa6b31df09bcb50179243a (from parents)
Merge: 7b361b808b23724fcc70481894757083a1ea81d2 7a7aaf0a197ede39fc90d975139558da438665f4
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Oct 12 14:09:21 2007 +0300
Merge branch 'master' into textfield
Conflicts:
libswfdec/swfdec_text_format.c
diff --cc libswfdec/swfdec_text_format.c
index ea5f280,273e611..569dfd9
@@@ -435,33 -381,11 +435,38 @@@
}
static void
-swfdec_text_format_set_color (SwfdecAsContext *cx, SwfdecAsObject *object,
+swfdec_text_format_do_set_color (SwfdecAsContext *cx, SwfdecAsObject *object,
guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
{
- swfdec_text_format_set_int (object,
- G_STRUCT_OFFSET (SwfdecTextFormat, color), argc, argv, FALSE, TRUE);
+ SwfdecTextFormat *format;
+
+ if (!SWFDEC_IS_TEXT_FORMAT (object))
+ return;
+ format = SWFDEC_TEXT_FORMAT (object);
+
+ if (argc < 1)
+ return;
+
+
+ if (SWFDEC_AS_VALUE_IS_UNDEFINED (&argv[0]) ||
+ SWFDEC_AS_VALUE_IS_NULL (&argv[0])) {
+ swfdec_text_format_mark_unset (format, PROP_COLOR);
+ } else {
+ if (cx->version >= 8) {
- format->color = (unsigned)swfdec_as_value_to_number (cx, &argv[0]);
++ double d = swfdec_as_value_to_number (cx, &argv[0]);
++ if (!isfinite (d)) {
++ format->color = 0;
++ } else {
++ format->color = (unsigned)d;
++ }
+ } else {
+ format->color = (unsigned)swfdec_as_value_to_integer (cx, &argv[0]);
+ }
+ swfdec_as_value_to_integer (cx, &argv[0]);
+ swfdec_as_value_to_string (cx, &argv[0]);
+
+ swfdec_text_format_mark_set (format, PROP_COLOR);
+ }
}
static void
diff-tree 7b361b808b23724fcc70481894757083a1ea81d2 (from f52b751d4dd6680a103a67c714c47b817f361be3)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Oct 12 13:27:54 2007 +0300
Create TextFormat's native properties at correct times (hopefully)
diff --git a/libswfdec/swfdec_player_internal.h b/libswfdec/swfdec_player_internal.h
index 01a34d3..7dc105c 100644
--- a/libswfdec/swfdec_player_internal.h
+++ b/libswfdec/swfdec_player_internal.h
@@ -74,7 +74,6 @@ struct _SwfdecPlayer
double scale_y; /* cached y scale value */
int offset_x; /* x offset from top left edge after scaling */
int offset_y; /* y offset from top left edge after scaling */
- gboolean text_format_properties_initialized; /* whether TextFormat object's native properties have been initialized */
gboolean edittext_movie_properties_initialized; /* whether TextField object's native properties have been initialized */
gboolean xml_properties_initialized; /* whether XML object's native properties have been initialized */
gboolean xml_node_properties_initialized; /* same for XMLNode */
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 0f17e86..ba4d5f3 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -531,7 +531,8 @@ swfdec_text_field_movie_init_movie (Swfd
cx = SWFDEC_AS_OBJECT (movie)->context;
// format
- text->format_new = SWFDEC_TEXT_FORMAT (swfdec_text_format_new (cx));
+ text->format_new =
+ SWFDEC_TEXT_FORMAT (swfdec_text_format_new_no_properties (cx));
swfdec_text_format_set_defaults (text->format_new);
text->format_new->color = text->text->color;
text->format_new->align = text->text->align;
diff --git a/libswfdec/swfdec_text_format.c b/libswfdec/swfdec_text_format.c
index 55e767f..ea5f280 100644
--- a/libswfdec/swfdec_text_format.c
+++ b/libswfdec/swfdec_text_format.c
@@ -978,6 +978,71 @@ swfdec_text_format_clear (SwfdecTextForm
swfdec_text_format_mark_set (format, PROP_DISPLAY);
}
+static void
+swfdec_text_format_init_properties (SwfdecAsContext *cx)
+{
+ SwfdecAsValue val;
+ SwfdecAsObject *proto;
+
+ g_return_if_fail (SWFDEC_IS_AS_CONTEXT (cx));
+
+ swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextFormat, &val);
+ if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
+ return;
+ proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
+ swfdec_as_object_get_variable (proto, SWFDEC_AS_STR_prototype, &val);
+ if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
+ return;
+ proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
+
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_align,
+ swfdec_text_format_do_get_align, swfdec_text_format_do_set_align);
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_blockIndent,
+ swfdec_text_format_do_get_block_indent,
+ swfdec_text_format_do_set_block_indent);
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_bold,
+ swfdec_text_format_do_get_bold, swfdec_text_format_do_set_bold);
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_bullet,
+ swfdec_text_format_do_get_bullet, swfdec_text_format_do_set_bullet);
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_color,
+ swfdec_text_format_do_get_color, swfdec_text_format_do_set_color);
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_display,
+ swfdec_text_format_do_get_display, swfdec_text_format_do_set_display);
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_font,
+ swfdec_text_format_do_get_font, swfdec_text_format_do_set_font);
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_indent,
+ swfdec_text_format_do_get_indent, swfdec_text_format_do_set_indent);
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_italic,
+ swfdec_text_format_do_get_italic, swfdec_text_format_do_set_italic);
+ if (cx->version >= 8) {
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_kerning,
+ swfdec_text_format_do_get_kerning, swfdec_text_format_do_set_kerning);
+ }
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_leading,
+ swfdec_text_format_do_get_leading, swfdec_text_format_do_set_leading);
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_leftMargin,
+ swfdec_text_format_do_get_left_margin,
+ swfdec_text_format_do_set_left_margin);
+ if (cx->version >= 8) {
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_letterSpacing,
+ swfdec_text_format_do_get_letter_spacing,
+ swfdec_text_format_do_set_letter_spacing);
+ }
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_rightMargin,
+ swfdec_text_format_do_get_right_margin,
+ swfdec_text_format_do_set_right_margin);
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_size,
+ swfdec_text_format_do_get_size, swfdec_text_format_do_set_size);
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_tabStops,
+ swfdec_text_format_do_get_tab_stops, swfdec_text_format_do_set_tab_stops);
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_target,
+ swfdec_text_format_do_get_target, swfdec_text_format_do_set_target);
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_underline,
+ swfdec_text_format_do_get_underline, swfdec_text_format_do_set_underline);
+ swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_url,
+ swfdec_text_format_do_get_url, swfdec_text_format_do_set_url);
+}
+
SWFDEC_AS_CONSTRUCTOR (110, 0, swfdec_text_format_construct, swfdec_text_format_get_type)
void
swfdec_text_format_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
@@ -992,63 +1057,7 @@ swfdec_text_format_construct (SwfdecAsCo
g_assert (SWFDEC_IS_TEXT_FORMAT (object));
- if (!SWFDEC_PLAYER (cx)->text_format_properties_initialized) {
- SwfdecAsValue val;
- SwfdecAsObject *proto;
-
- swfdec_as_object_get_variable (object, SWFDEC_AS_STR___proto__, &val);
- g_return_if_fail (SWFDEC_AS_VALUE_IS_OBJECT (&val));
- proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
-
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_align,
- swfdec_text_format_do_get_align, swfdec_text_format_do_set_align);
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_blockIndent,
- swfdec_text_format_do_get_block_indent,
- swfdec_text_format_do_set_block_indent);
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_bold,
- swfdec_text_format_do_get_bold, swfdec_text_format_do_set_bold);
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_bullet,
- swfdec_text_format_do_get_bullet, swfdec_text_format_do_set_bullet);
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_color,
- swfdec_text_format_do_get_color, swfdec_text_format_do_set_color);
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_display,
- swfdec_text_format_do_get_display, swfdec_text_format_do_set_display);
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_font,
- swfdec_text_format_do_get_font, swfdec_text_format_do_set_font);
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_indent,
- swfdec_text_format_do_get_indent, swfdec_text_format_do_set_indent);
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_italic,
- swfdec_text_format_do_get_italic, swfdec_text_format_do_set_italic);
- if (cx->version >= 8) {
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_kerning,
- swfdec_text_format_do_get_kerning, swfdec_text_format_do_set_kerning);
- }
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_leading,
- swfdec_text_format_do_get_leading, swfdec_text_format_do_set_leading);
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_leftMargin,
- swfdec_text_format_do_get_left_margin,
- swfdec_text_format_do_set_left_margin);
- if (cx->version >= 8) {
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_letterSpacing,
- swfdec_text_format_do_get_letter_spacing,
- swfdec_text_format_do_set_letter_spacing);
- }
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_rightMargin,
- swfdec_text_format_do_get_right_margin,
- swfdec_text_format_do_set_right_margin);
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_size,
- swfdec_text_format_do_get_size, swfdec_text_format_do_set_size);
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_tabStops,
- swfdec_text_format_do_get_tab_stops, swfdec_text_format_do_set_tab_stops);
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_target,
- swfdec_text_format_do_get_target, swfdec_text_format_do_set_target);
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_underline,
- swfdec_text_format_do_get_underline, swfdec_text_format_do_set_underline);
- swfdec_text_format_add_variable (proto, SWFDEC_AS_STR_url,
- swfdec_text_format_do_get_url, swfdec_text_format_do_set_url);
-
- SWFDEC_PLAYER (cx)->text_format_properties_initialized = TRUE;
- }
+ swfdec_text_format_init_properties (cx);
swfdec_text_format_clear (SWFDEC_TEXT_FORMAT (object));
@@ -1119,7 +1128,7 @@ swfdec_text_format_copy (const SwfdecTex
}
SwfdecAsObject *
-swfdec_text_format_new (SwfdecAsContext *context)
+swfdec_text_format_new_no_properties (SwfdecAsContext *context)
{
SwfdecAsObject *ret;
SwfdecAsValue val;
@@ -1141,3 +1150,13 @@ swfdec_text_format_new (SwfdecAsContext
return ret;
}
+
+SwfdecAsObject *
+swfdec_text_format_new (SwfdecAsContext *context)
+{
+ g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), NULL);
+
+ swfdec_text_format_init_properties (context);
+
+ return swfdec_text_format_new_no_properties (context);
+}
diff --git a/libswfdec/swfdec_text_format.h b/libswfdec/swfdec_text_format.h
index 91d242f..9fc7cee 100644
--- a/libswfdec/swfdec_text_format.h
+++ b/libswfdec/swfdec_text_format.h
@@ -84,6 +84,7 @@ struct _SwfdecTextFormatClass {
GType swfdec_text_format_get_type (void);
SwfdecAsObject * swfdec_text_format_new (SwfdecAsContext * context);
+SwfdecAsObject * swfdec_text_format_new_no_properties (SwfdecAsContext * context);
void swfdec_text_format_set_defaults (SwfdecTextFormat * format);
SwfdecTextFormat * swfdec_text_format_copy (const SwfdecTextFormat *copy_from);
void swfdec_text_format_add (SwfdecTextFormat * format,
diff-tree f52b751d4dd6680a103a67c714c47b817f361be3 (from 89f229892ce0825a28476872261545f7d37c76dc)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Oct 12 11:35:10 2007 +0300
Add one more valueOf call. Fix TextField's textColor property setting
diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index 3dba443..a050545 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -434,6 +434,8 @@ swfdec_text_field_movie_set_embedFonts (
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
+ swfdec_as_value_to_number (cx, &argv[0]);
+
text->text->embed_fonts = value;
}
@@ -473,20 +475,26 @@ swfdec_text_field_movie_get_textColor (S
SWFDEC_AS_STR_color, ret);
}
+// This doesn't work the same way as TextFormat's color setting
static void
swfdec_text_field_movie_set_textColor (SwfdecAsContext *cx,
SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *ret)
{
SwfdecTextFieldMovie *text;
+ int value;
+ SwfdecAsValue val;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "i", &value);
- if (argc < 1)
- return;
+ if (value < 0) {
+ SWFDEC_AS_VALUE_SET_NUMBER (&val, 16777216 + value % 16777216);
+ } else {
+ SWFDEC_AS_VALUE_SET_NUMBER (&val, value);
+ }
swfdec_as_object_set_variable (SWFDEC_AS_OBJECT (text->format_new),
- SWFDEC_AS_STR_color, &argv[0]);
+ SWFDEC_AS_STR_color, &val);
}
static void
diff-tree 89f229892ce0825a28476872261545f7d37c76dc (from 534d6408cb0d7cf303d549bca5783fd4067a8120)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Oct 12 11:15:03 2007 +0300
Add extra calls to valueOf from TextField properties
diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index 33690f0..3dba443 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -380,6 +380,8 @@ swfdec_text_field_movie_set_html (Swfdec
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
+ swfdec_as_value_to_number (cx, &argv[0]);
+
text->text->html = value;
}
@@ -405,6 +407,8 @@ swfdec_text_field_movie_set_condenseWhit
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
+ swfdec_as_value_to_number (cx, &argv[0]);
+
text->condense_white = value;
}
@@ -433,6 +437,18 @@ swfdec_text_field_movie_set_embedFonts (
text->text->embed_fonts = value;
}
+// does nothing but calls valueOf
+static void
+swfdec_text_field_movie_set_length (SwfdecAsContext *cx, SwfdecAsObject *object,
+ guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+
+ swfdec_as_value_to_number (cx, &argv[0]);
+}
+
static void
swfdec_text_field_movie_get_length (SwfdecAsContext *cx, SwfdecAsObject *object,
guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
@@ -761,7 +777,8 @@ swfdec_text_field_movie_construct (Swfde
swfdec_text_field_movie_get_embedFonts,
swfdec_text_field_movie_set_embedFonts);
swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_length,
- swfdec_text_field_movie_get_length, NULL);
+ swfdec_text_field_movie_get_length,
+ swfdec_text_field_movie_set_length);
swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
swfdec_text_field_movie_get_textColor,
swfdec_text_field_movie_set_textColor);
diff-tree 534d6408cb0d7cf303d549bca5783fd4067a8120 (from dcf8696e4950586cb6ec78835898b0618e722972)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Oct 12 11:14:15 2007 +0300
Fix TextField trying to mark some strings even if they were NULL
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 00cd627..0f17e86 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -478,9 +478,11 @@ swfdec_text_field_movie_mark (SwfdecAsOb
text = SWFDEC_TEXT_FIELD_MOVIE (object);
- swfdec_as_string_mark (text->text_input);
+ if (text->text_input != NULL)
+ swfdec_as_string_mark (text->text_input);
swfdec_as_string_mark (text->text_display);
- swfdec_as_string_mark (text->variable);
+ if (text->variable != NULL)
+ swfdec_as_string_mark (text->variable);
swfdec_as_object_mark (SWFDEC_AS_OBJECT (text->format_new));
for (iter = text->formats; iter != NULL; iter = iter->next) {
swfdec_as_object_mark (
diff-tree dcf8696e4950586cb6ec78835898b0618e722972 (from b0528b30dcae570de489ccbfa7260b346d3570c6)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Oct 12 11:02:07 2007 +0300
Drop unneeded gpointer casts from SWFDEC_AS_CHECK calls in TextField
diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index 1b2afb5..33690f0 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -42,7 +42,7 @@ swfdec_text_field_movie_get_text (Swfdec
{
SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
SWFDEC_AS_VALUE_SET_STRING (ret, (text->text_display != NULL ?
swfdec_as_context_get_string (cx, text->text_display) :
@@ -57,7 +57,7 @@ swfdec_text_field_movie_do_set_text (Swf
SwfdecTextFieldMovie *text;
const char *value;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "s", &value);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "s", &value);
swfdec_text_field_movie_set_text (text, value, FALSE);
}
@@ -313,7 +313,7 @@ swfdec_text_field_movie_get_htmlText (Sw
const char *p, *end;
GString *string;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
if (text->text->html == FALSE) {
swfdec_text_field_movie_get_text (cx, object, argc, argv, ret);
@@ -355,7 +355,7 @@ swfdec_text_field_movie_set_htmlText (Sw
SwfdecTextFieldMovie *text;
const char *value;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "s", &value);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "s", &value);
swfdec_text_field_movie_set_text (text, value, text->text->html);
}
@@ -366,7 +366,7 @@ swfdec_text_field_movie_get_html (Swfdec
{
SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->html);
}
@@ -378,7 +378,7 @@ swfdec_text_field_movie_set_html (Swfdec
SwfdecTextFieldMovie *text;
gboolean value;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
text->text->html = value;
}
@@ -390,7 +390,7 @@ swfdec_text_field_movie_get_condenseWhit
{
SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->condense_white);
}
@@ -403,7 +403,7 @@ swfdec_text_field_movie_set_condenseWhit
SwfdecTextFieldMovie *text;
gboolean value;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
text->condense_white = value;
}
@@ -415,7 +415,7 @@ swfdec_text_field_movie_get_embedFonts (
{
SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->embed_fonts);
}
@@ -428,7 +428,7 @@ swfdec_text_field_movie_set_embedFonts (
SwfdecTextFieldMovie *text;
gboolean value;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "b", &value);
text->text->embed_fonts = value;
}
@@ -439,7 +439,7 @@ swfdec_text_field_movie_get_length (Swfd
{
SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
SWFDEC_AS_VALUE_SET_INT (ret, strlen (text->text_display));
}
@@ -451,7 +451,7 @@ swfdec_text_field_movie_get_textColor (S
{
SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (text->format_new),
SWFDEC_AS_STR_color, ret);
@@ -464,7 +464,7 @@ swfdec_text_field_movie_set_textColor (S
{
SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
if (argc < 1)
return;
@@ -549,7 +549,7 @@ swfdec_text_field_movie_getNewTextFormat
{
SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
SWFDEC_AS_VALUE_SET_OBJECT (ret,
SWFDEC_AS_OBJECT (swfdec_text_format_copy (text->format_new)));
@@ -564,7 +564,7 @@ swfdec_text_field_movie_setNewTextFormat
SwfdecTextFieldMovie *text;
SwfdecAsObject *obj;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "o", &obj);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "o", &obj);
if (!SWFDEC_IS_TEXT_FORMAT (obj))
return;
@@ -583,7 +583,7 @@ swfdec_text_field_movie_setTextFormat (S
guint start_index, end_index;
int i;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
if (argc < 1)
return;
@@ -627,7 +627,7 @@ swfdec_text_field_movie_createTextField
SwfdecAsFunction *fun;
SwfdecAsValue val;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_MOVIE, (gpointer)&parent, "siiiii", &name, &depth, &x, &y, &width, &height);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_MOVIE, &parent, "siiiii", &name, &depth, &x, &y, &width, &height);
edittext = g_object_new (SWFDEC_TYPE_TEXT_FIELD, NULL);
edittext->html = FALSE;
diff-tree b0528b30dcae570de489ccbfa7260b346d3570c6 (from 2366848fdba2db7695044b6ca6409eaf973a3059)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Oct 12 10:59:46 2007 +0300
Add autoSize property for TextField
diff --git a/libswfdec/swfdec_as_strings.c b/libswfdec/swfdec_as_strings.c
index 97b438c..0ff4d4c 100644
--- a/libswfdec/swfdec_as_strings.c
+++ b/libswfdec/swfdec_as_strings.c
@@ -393,6 +393,7 @@ const char swfdec_as_strings[] =
SWFDEC_AS_CONSTANT_STRING ("condenseWhite")
SWFDEC_AS_CONSTANT_STRING ("textColor")
SWFDEC_AS_CONSTANT_STRING ("embedFonts")
+ SWFDEC_AS_CONSTANT_STRING ("autoSize")
/* add more here */
;
diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index 534c4e1..1b2afb5 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -473,6 +473,74 @@ swfdec_text_field_movie_set_textColor (S
SWFDEC_AS_STR_color, &argv[0]);
}
+static void
+swfdec_text_field_movie_get_autoSize (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+
+ switch (text->text->auto_size) {
+ case SWFDEC_AUTO_SIZE_NONE:
+ SWFDEC_AS_VALUE_SET_STRING (ret, SWFDEC_AS_STR_none);
+ break;
+ case SWFDEC_AUTO_SIZE_LEFT:
+ SWFDEC_AS_VALUE_SET_STRING (ret, SWFDEC_AS_STR_left);
+ break;
+ case SWFDEC_AUTO_SIZE_RIGHT:
+ SWFDEC_AS_VALUE_SET_STRING (ret, SWFDEC_AS_STR_right);
+ break;
+ case SWFDEC_AUTO_SIZE_CENTER:
+ SWFDEC_AS_VALUE_SET_STRING (ret, SWFDEC_AS_STR_center);
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+}
+
+static void
+swfdec_text_field_movie_set_autoSize (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+ SwfdecAutoSize old;
+ const char *s;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, &text, "");
+
+ if (argc < 1)
+ return;
+
+ if (SWFDEC_AS_VALUE_IS_BOOLEAN (&argv[0])) {
+ if (SWFDEC_AS_VALUE_GET_BOOLEAN (&argv[0])) {
+ text->text->auto_size = SWFDEC_AUTO_SIZE_LEFT;
+ } else {
+ text->text->auto_size = SWFDEC_AUTO_SIZE_NONE;
+ }
+ return;
+ }
+
+ swfdec_as_value_to_number (cx, &argv[0]);
+ s = swfdec_as_value_to_string (cx, &argv[0]);
+
+ old = text->text->auto_size;
+ if (!g_ascii_strcasecmp (s, "none")) {
+ text->text->auto_size = SWFDEC_AUTO_SIZE_NONE;
+ } else if (!g_ascii_strcasecmp (s, "left")) {
+ text->text->auto_size = SWFDEC_AUTO_SIZE_LEFT;
+ } else if (!g_ascii_strcasecmp (s, "right")) {
+ text->text->auto_size = SWFDEC_AUTO_SIZE_RIGHT;
+ } else if (!g_ascii_strcasecmp (s, "center")) {
+ text->text->auto_size = SWFDEC_AUTO_SIZE_CENTER;
+ }
+
+ if (text->text->auto_size != old)
+ swfdec_text_field_movie_format_changed (text);
+}
+
SWFDEC_AS_NATIVE (104, 104, swfdec_text_field_movie_getNewTextFormat)
void
swfdec_text_field_movie_getNewTextFormat (SwfdecAsContext *cx,
@@ -697,6 +765,9 @@ swfdec_text_field_movie_construct (Swfde
swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
swfdec_text_field_movie_get_textColor,
swfdec_text_field_movie_set_textColor);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_autoSize,
+ swfdec_text_field_movie_get_autoSize,
+ swfdec_text_field_movie_set_autoSize);
SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized = TRUE;
}
diff-tree 2366848fdba2db7695044b6ca6409eaf973a3059 (from 439b1535e25771b0f068f7b48e540cba5841c599)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Oct 12 10:43:12 2007 +0300
Fix crash in TextField when there is no font or no text
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index ed617c1..00cd627 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -533,7 +533,8 @@ swfdec_text_field_movie_init_movie (Swfd
swfdec_text_format_set_defaults (text->format_new);
text->format_new->color = text->text->color;
text->format_new->align = text->text->align;
- text->format_new->font = text->text->font->name;
+ if (text->text->font != NULL && text->text->font->name != NULL)
+ text->format_new->font = text->text->font->name;
text->format_new->size = text->text->size / 20;
text->format_new->left_margin = text->text->left_margin / 20;
text->format_new->right_margin = text->text->right_margin / 20;
@@ -548,6 +549,9 @@ swfdec_text_field_movie_init_movie (Swfd
swfdec_text_field_movie_set_text (text,
swfdec_as_context_get_string (cx, text->text->text_input),
text->text->html);
+ } else {
+ swfdec_text_field_movie_set_text (text, SWFDEC_AS_STR_EMPTY,
+ text->text->html);
}
// variable
diff-tree 439b1535e25771b0f068f7b48e540cba5841c599 (from 06c4fb7786fc743b578c49dcb7c87e2b30fa9730)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 17:07:20 2007 +0300
Add one pixel top margin and two pixel bottom margin (latter only if autosize)
diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index d8e8837..2788cfc 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -278,7 +278,7 @@ swfdec_text_field_render (SwfdecTextFiel
inval);
cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
- SWFDEC_GRAPHIC (text)->extents.y0);
+ SWFDEC_GRAPHIC (text)->extents.y0 + 1);
for (iter = layouts; iter != NULL; iter = iter->next) {
SwfdecLayout *layout = (SwfdecLayout *)iter->data;
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index d7093fc..ed617c1 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -382,6 +382,8 @@ swfdec_text_field_movie_auto_size (Swfde
if (text->paragraphs == NULL)
swfdec_text_field_movie_generate_paragraphs (text);
+ // FIXME: Temporary using image surface, until there is a way to get cairo_t
+ // outside the rendering functions
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 1, 1);
cr = cairo_create (surface);
@@ -389,7 +391,7 @@ swfdec_text_field_movie_auto_size (Swfde
text->paragraphs, NULL, NULL);
width = 0;
- height = 0;
+ height = 3;
for (iter = layouts; iter != NULL; iter = iter->next) {
SwfdecLayout *layout = (SwfdecLayout *)iter->data;
diff-tree 06c4fb7786fc743b578c49dcb7c87e2b30fa9730 (from e3ebf0e278ed215549d55b0af7eb1154a7238d08)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 16:40:37 2007 +0300
TextField: Take right margin into account when calculating layout's size
diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index be892af..d8e8837 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -229,7 +229,7 @@ swfdec_text_field_generate_layouts (Swfd
}
pango_layout_get_pixel_size (playout, &layout->width, &layout->height);
- layout->width += layout->render_offset_x;
+ layout->width += layout->render_offset_x + block->right_margin;
layout->height += block->leading / PANGO_SCALE;
if (!text->word_wrap)
diff-tree e3ebf0e278ed215549d55b0af7eb1154a7238d08 (from e98477a12a6f883f0ad4f0ac1e006bdd9a3aa208)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 16:30:08 2007 +0300
Fix moving to the wrong direction after rendering a pango layout
diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index 4df7d1f..be892af 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -289,7 +289,7 @@ swfdec_text_field_render (SwfdecTextFiel
pango_cairo_show_layout (cr, layout->layout);
- cairo_rel_move_to (cr, layout->render_offset_x, layout->height);
+ cairo_rel_move_to (cr, -layout->render_offset_x, layout->height);
g_object_unref (layout->layout);
g_free (layout);
diff-tree e98477a12a6f883f0ad4f0ac1e006bdd9a3aa208 (from a4422e2a8bf31b28136d2b6cf1c92e31bf1a9e98)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 16:25:06 2007 +0300
Support TextField's auto sizing
diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index 1d57cc7..4df7d1f 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -82,49 +82,22 @@ swfdec_text_field_init (SwfdecTextField
text->max_length = G_MAXUINT;
}
-void
-swfdec_text_field_render (SwfdecTextField *text, cairo_t *cr,
- const SwfdecParagraph *paragraphs, SwfdecColor border_color,
- SwfdecColor background_color, const SwfdecColorTransform *trans,
+GList *
+swfdec_text_field_generate_layouts (SwfdecTextField *text, cairo_t *cr,
+ const SwfdecParagraph *paragraphs, const SwfdecColorTransform *trans,
const SwfdecRect *inval)
{
- PangoLayout *layout;
- SwfdecColor color;
+ GList *layouts;
guint i;
- g_return_if_fail (SWFDEC_IS_TEXT_FIELD (text));
- g_return_if_fail (cr != NULL);
- g_return_if_fail (paragraphs != NULL);
- g_return_if_fail (trans != NULL);
- g_return_if_fail (inval != NULL);
-
- if (text->background) {
- cairo_rectangle (cr, SWFDEC_GRAPHIC (text)->extents.x0,
- SWFDEC_GRAPHIC (text)->extents.y0, SWFDEC_GRAPHIC (text)->extents.x1,
- SWFDEC_GRAPHIC (text)->extents.y1);
- color = swfdec_color_apply_transform (background_color, trans);
- swfdec_color_set_source (cr, color);
- cairo_fill (cr);
- }
-
- if (text->border) {
- cairo_rectangle (cr, SWFDEC_GRAPHIC (text)->extents.x0,
- SWFDEC_GRAPHIC (text)->extents.y0, SWFDEC_GRAPHIC (text)->extents.x1,
- SWFDEC_GRAPHIC (text)->extents.y1);
- color = swfdec_color_apply_transform (border_color, trans);
- swfdec_color_set_source (cr, color);
- cairo_set_line_width (cr, 20.0); // FIXME: Is this correct?
- cairo_stroke (cr);
- }
+ g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD (text), NULL);
+ g_return_val_if_fail (cr != NULL, NULL);
+ g_return_val_if_fail (paragraphs != NULL, NULL);
if (paragraphs[0].text == NULL)
- return;
-
- cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
- SWFDEC_GRAPHIC (text)->extents.y0);
-
- layout = pango_cairo_create_layout (cr);
+ return NULL;
+ layouts = NULL;
for (i = 0; paragraphs[i].text != NULL; i++)
{
GList *iter;
@@ -133,10 +106,11 @@ swfdec_text_field_render (SwfdecTextFiel
skip = 0;
for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
{
- int height, width;
+ SwfdecLayout *layout;
+ PangoLayout *playout;
+ int width;
guint length;
SwfdecBlock *block;
- PangoAttrList *attr_list;
block = (SwfdecBlock *)iter->data;
if (iter->next != NULL) {
@@ -151,39 +125,44 @@ swfdec_text_field_render (SwfdecTextFiel
continue;
}
- // update position
- cairo_rel_move_to (cr, block->left_margin + block->block_indent, 0);
+ // create layout
+ layout = g_new0 (SwfdecLayout, 1);
+ playout = layout->layout = pango_cairo_create_layout (cr);
+ layouts = g_list_append (layouts, layout);
+
+ // set rendering position
+ layout->render_offset_x = block->left_margin + block->block_indent;
width = SWFDEC_GRAPHIC (text)->extents.x1 -
SWFDEC_GRAPHIC (text)->extents.x0 - block->left_margin -
block->right_margin - block->block_indent;
if (block->index_ == 0 && paragraphs[i].indent < 0) {
- cairo_rel_move_to (cr, paragraphs[i].indent / PANGO_SCALE, 0);
+ layout->render_offset_x += paragraphs[i].indent / PANGO_SCALE;
width += -paragraphs[i].indent / PANGO_SCALE;
}
- pango_cairo_update_layout (cr, layout);
- pango_layout_context_changed (layout);
- pango_layout_set_width (layout,
+ pango_layout_set_width (playout,
(text->word_wrap ? width * PANGO_SCALE : -1));
// set paragraph styles
if (block->index_ == 0) {
- pango_layout_set_indent (layout, paragraphs[i].indent);
+ pango_layout_set_indent (playout, paragraphs[i].indent);
// TODO: bullet
} else {
- pango_layout_set_indent (layout, 0);
+ pango_layout_set_indent (playout, 0);
}
// set block styles
- pango_layout_set_alignment (layout, block->align);
- pango_layout_set_justify (layout, block->justify);
- pango_layout_set_spacing (layout, block->leading);
- pango_layout_set_tabs (layout, block->tab_stops);
+ pango_layout_set_alignment (playout, block->align);
+ pango_layout_set_justify (playout, block->justify);
+ pango_layout_set_spacing (playout, block->leading);
+ pango_layout_set_tabs (playout, block->tab_stops);
// set text attributes
- if (block->index_ > 0 || !swfdec_color_transform_is_identity (trans))
+ if (block->index_ > 0 ||
+ (trans != NULL && !swfdec_color_transform_is_identity (trans)))
{
+ PangoAttrList *attr_list;
GList *iter_attrs;
attr_list = pango_attr_list_new ();
@@ -199,9 +178,10 @@ swfdec_text_field_render (SwfdecTextFiel
continue;
attr = pango_attribute_copy (attr);
- if (attr->klass->type == PANGO_ATTR_FOREGROUND &&
+ if (attr->klass->type == PANGO_ATTR_FOREGROUND && trans != NULL &&
!swfdec_color_transform_is_identity (trans))
{
+ SwfdecColor color;
PangoColor pcolor;
pcolor = ((PangoAttrColor *)attr)->color;
@@ -218,14 +198,14 @@ swfdec_text_field_render (SwfdecTextFiel
attr->end_index = attr->end_index - (block->index_ + skip);
pango_attr_list_insert (attr_list, attr);
}
+ pango_layout_set_attributes (playout, attr_list);
+ pango_attr_list_unref (attr_list);
} else {
- attr_list = pango_attr_list_copy (paragraphs[i].attrs_list);
+ pango_layout_set_attributes (playout, paragraphs[i].attrs_list);
}
- pango_layout_set_attributes (layout, attr_list);
- pango_attr_list_unref (attr_list);
- attr_list = NULL;
- pango_layout_set_text (layout, paragraphs[i].text + block->index_ + skip,
+ pango_layout_set_text (playout,
+ paragraphs[i].text + block->index_ + skip,
paragraphs[i].text_length - block->index_ - skip);
if (iter->next != NULL && text->word_wrap)
@@ -234,11 +214,11 @@ swfdec_text_field_render (SwfdecTextFiel
int line_num;
guint skip_new;
- pango_layout_index_to_line_x (layout, length - skip, FALSE, &line_num,
+ pango_layout_index_to_line_x (playout, length - skip, FALSE, &line_num,
NULL);
- line = pango_layout_get_line_readonly (layout, line_num);
+ line = pango_layout_get_line_readonly (playout, line_num);
skip_new = line->start_index + line->length - (length - skip);
- pango_layout_set_text (layout,
+ pango_layout_set_text (playout,
paragraphs[i].text + block->index_ + skip,
length - skip + skip_new);
skip = skip_new;
@@ -248,22 +228,78 @@ swfdec_text_field_render (SwfdecTextFiel
skip = 0;
}
- pango_cairo_show_layout (cr, layout);
-
- pango_layout_get_pixel_size (layout, NULL, &height);
- cairo_rel_move_to (cr, -(block->left_margin + block->block_indent),
- height + block->leading / PANGO_SCALE);
- if (block->index_ == 0 && paragraphs[i].indent < 0)
- cairo_rel_move_to (cr, -paragraphs[i].indent / PANGO_SCALE, 0);
+ pango_layout_get_pixel_size (playout, &layout->width, &layout->height);
+ layout->width += layout->render_offset_x;
+ layout->height += block->leading / PANGO_SCALE;
if (!text->word_wrap)
break;
}
}
- g_object_unref (layout);
+ return layouts;
+}
+
+void
+swfdec_text_field_render (SwfdecTextField *text, cairo_t *cr,
+ const SwfdecParagraph *paragraphs, SwfdecColor border_color,
+ SwfdecColor background_color, const SwfdecColorTransform *trans,
+ const SwfdecRect *inval)
+{
+ GList *layouts, *iter;
+ SwfdecColor color;
+
+ g_return_if_fail (SWFDEC_IS_TEXT_FIELD (text));
+ g_return_if_fail (cr != NULL);
+ g_return_if_fail (paragraphs != NULL);
+ g_return_if_fail (trans != NULL);
+ g_return_if_fail (inval != NULL);
+
+ if (text->background) {
+ cairo_rectangle (cr, SWFDEC_GRAPHIC (text)->extents.x0,
+ SWFDEC_GRAPHIC (text)->extents.y0, SWFDEC_GRAPHIC (text)->extents.x1,
+ SWFDEC_GRAPHIC (text)->extents.y1);
+ color = swfdec_color_apply_transform (background_color, trans);
+ swfdec_color_set_source (cr, color);
+ cairo_fill (cr);
+ }
+
+ if (text->border) {
+ cairo_rectangle (cr, SWFDEC_GRAPHIC (text)->extents.x0,
+ SWFDEC_GRAPHIC (text)->extents.y0, SWFDEC_GRAPHIC (text)->extents.x1,
+ SWFDEC_GRAPHIC (text)->extents.y1);
+ color = swfdec_color_apply_transform (border_color, trans);
+ swfdec_color_set_source (cr, color);
+ cairo_set_line_width (cr, 20.0); // FIXME: Is this correct?
+ cairo_stroke (cr);
+ }
+
+ layouts = swfdec_text_field_generate_layouts (text, cr, paragraphs, trans,
+ inval);
+
+ cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
+ SWFDEC_GRAPHIC (text)->extents.y0);
+
+ for (iter = layouts; iter != NULL; iter = iter->next) {
+ SwfdecLayout *layout = (SwfdecLayout *)iter->data;
+
+ cairo_rel_move_to (cr, layout->render_offset_x, 0);
+
+ pango_layout_context_changed (layout->layout);
+
+ pango_cairo_show_layout (cr, layout->layout);
+
+ cairo_rel_move_to (cr, layout->render_offset_x, layout->height);
+
+ g_object_unref (layout->layout);
+ g_free (layout);
+ iter->data = NULL;
+ }
+
+ g_list_free (layouts);
}
+
int
tag_func_define_edit_text (SwfdecSwfDecoder * s, guint tag)
{
diff --git a/libswfdec/swfdec_text_field.h b/libswfdec/swfdec_text_field.h
index 4998cfa..dda2787 100644
--- a/libswfdec/swfdec_text_field.h
+++ b/libswfdec/swfdec_text_field.h
@@ -40,6 +40,13 @@ typedef struct _SwfdecTextFieldClass Swf
#define SWFDEC_TEXT_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEXT_FIELD, SwfdecTextFieldClass))
typedef struct {
+ PangoLayout * layout;
+ int render_offset_x;
+ int height;
+ int width;
+} SwfdecLayout;
+
+typedef struct {
guint index_;
PangoAlignment align;
@@ -67,8 +74,8 @@ typedef struct {
typedef enum {
SWFDEC_AUTO_SIZE_NONE,
SWFDEC_AUTO_SIZE_LEFT,
- SWFDEC_AUTO_SIZE_CENTER,
- SWFDEC_AUTO_SIZE_RIGHT
+ SWFDEC_AUTO_SIZE_RIGHT,
+ SWFDEC_AUTO_SIZE_CENTER
} SwfdecAutoSize;
struct _SwfdecTextField
@@ -114,6 +121,11 @@ GType swfdec_text_field_get_type (void
int tag_func_define_edit_text (SwfdecSwfDecoder * s,
guint tag);
+GList * swfdec_text_field_generate_layouts (SwfdecTextField * text,
+ cairo_t * cr,
+ const SwfdecParagraph * paragraphs,
+ const SwfdecColorTransform * trans,
+ const SwfdecRect * inval);
void swfdec_text_field_render (SwfdecTextField * text,
cairo_t * cr,
const SwfdecParagraph * paragraphs,
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index e76aad6..d7093fc 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -23,6 +23,7 @@
#endif
#include <string.h>
+#include <math.h>
#include "swfdec_text_field_movie.h"
#include "swfdec_as_context.h"
@@ -363,10 +364,89 @@ swfdec_text_field_movie_free_paragraphs
}
}
+static gboolean
+swfdec_text_field_movie_auto_size (SwfdecTextFieldMovie *text)
+{
+ cairo_surface_t *surface;
+ cairo_t *cr;
+ GList *layouts, *iter;
+ guint height;
+ int width, diff;
+ gboolean changed;
+
+ g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text), FALSE);
+
+ if (text->text->auto_size == SWFDEC_AUTO_SIZE_NONE)
+ return FALSE;
+
+ if (text->paragraphs == NULL)
+ swfdec_text_field_movie_generate_paragraphs (text);
+
+ surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 1, 1);
+ cr = cairo_create (surface);
+
+ layouts = swfdec_text_field_generate_layouts (text->text, cr,
+ text->paragraphs, NULL, NULL);
+
+ width = 0;
+ height = 0;
+ for (iter = layouts; iter != NULL; iter = iter->next) {
+ SwfdecLayout *layout = (SwfdecLayout *)iter->data;
+
+ if (!text->text->word_wrap) {
+ if (layout->width > width)
+ width = layout->width;
+ }
+
+ height += layout->height;
+ }
+
+ if (!text->text->word_wrap && SWFDEC_GRAPHIC (text->text)->extents.x1 -
+ SWFDEC_GRAPHIC (text->text)->extents.x0 != width)
+ {
+ switch (text->text->auto_size) {
+ case SWFDEC_AUTO_SIZE_LEFT:
+ SWFDEC_GRAPHIC (text->text)->extents.x1 =
+ SWFDEC_GRAPHIC (text->text)->extents.x0 + width;
+ break;
+ case SWFDEC_AUTO_SIZE_RIGHT:
+ SWFDEC_GRAPHIC (text->text)->extents.x0 =
+ SWFDEC_GRAPHIC (text->text)->extents.x1 - width;
+ break;
+ case SWFDEC_AUTO_SIZE_CENTER:
+ diff = width - (SWFDEC_GRAPHIC (text->text)->extents.x1 -
+ SWFDEC_GRAPHIC (text->text)->extents.x0);
+ SWFDEC_GRAPHIC (text->text)->extents.x0 += floor (width / 2.0);
+ SWFDEC_GRAPHIC (text->text)->extents.x1 += ceil (width / 2.0);
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+ changed = TRUE;
+ }
+
+ if (SWFDEC_GRAPHIC (text->text)->extents.y1 -
+ SWFDEC_GRAPHIC (text->text)->extents.y0 != height)
+ {
+ SWFDEC_GRAPHIC (text->text)->extents.y1 =
+ SWFDEC_GRAPHIC (text->text)->extents.y0 + height;
+ changed = TRUE;
+ }
+
+ return changed;
+}
+
void
swfdec_text_field_movie_format_changed (SwfdecTextFieldMovie *text)
{
swfdec_text_field_movie_free_paragraphs (text);
+
+ swfdec_movie_invalidate (SWFDEC_MOVIE (text));
+
+ if (swfdec_text_field_movie_auto_size (text)) {
+ swfdec_movie_queue_update (SWFDEC_MOVIE (text),
+ SWFDEC_MOVIE_INVALID_CONTENTS);
+ }
}
static void
diff-tree a4422e2a8bf31b28136d2b6cf1c92e31bf1a9e98 (from ab6126f4f4cbe7a2656612bd8dd986b7013b3379)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 14:16:32 2007 +0300
Add support for drawing TextField's border and background
diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index 302cd40..1d57cc7 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -84,10 +84,12 @@ swfdec_text_field_init (SwfdecTextField
void
swfdec_text_field_render (SwfdecTextField *text, cairo_t *cr,
- const SwfdecParagraph *paragraphs, const SwfdecColorTransform *trans,
+ const SwfdecParagraph *paragraphs, SwfdecColor border_color,
+ SwfdecColor background_color, const SwfdecColorTransform *trans,
const SwfdecRect *inval)
{
PangoLayout *layout;
+ SwfdecColor color;
guint i;
g_return_if_fail (SWFDEC_IS_TEXT_FIELD (text));
@@ -96,6 +98,28 @@ swfdec_text_field_render (SwfdecTextFiel
g_return_if_fail (trans != NULL);
g_return_if_fail (inval != NULL);
+ if (text->background) {
+ cairo_rectangle (cr, SWFDEC_GRAPHIC (text)->extents.x0,
+ SWFDEC_GRAPHIC (text)->extents.y0, SWFDEC_GRAPHIC (text)->extents.x1,
+ SWFDEC_GRAPHIC (text)->extents.y1);
+ color = swfdec_color_apply_transform (background_color, trans);
+ swfdec_color_set_source (cr, color);
+ cairo_fill (cr);
+ }
+
+ if (text->border) {
+ cairo_rectangle (cr, SWFDEC_GRAPHIC (text)->extents.x0,
+ SWFDEC_GRAPHIC (text)->extents.y0, SWFDEC_GRAPHIC (text)->extents.x1,
+ SWFDEC_GRAPHIC (text)->extents.y1);
+ color = swfdec_color_apply_transform (border_color, trans);
+ swfdec_color_set_source (cr, color);
+ cairo_set_line_width (cr, 20.0); // FIXME: Is this correct?
+ cairo_stroke (cr);
+ }
+
+ if (paragraphs[0].text == NULL)
+ return;
+
cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
SWFDEC_GRAPHIC (text)->extents.y0);
@@ -179,7 +203,6 @@ swfdec_text_field_render (SwfdecTextFiel
!swfdec_color_transform_is_identity (trans))
{
PangoColor pcolor;
- SwfdecColor color;
pcolor = ((PangoAttrColor *)attr)->color;
color = SWFDEC_COLOR_COMBINE (pcolor.red >> 8, pcolor.green >> 8,
@@ -274,7 +297,7 @@ tag_func_define_edit_text (SwfdecSwfDeco
(swfdec_bits_getbit (b) ? SWFDEC_AUTO_SIZE_LEFT : SWFDEC_AUTO_SIZE_NONE);
has_layout = swfdec_bits_getbit (b);
text->selectable = !swfdec_bits_getbit (b);
- text->border = swfdec_bits_getbit (b);
+ text->background = text->border = swfdec_bits_getbit (b);
reserved = swfdec_bits_getbit (b);
text->html = swfdec_bits_getbit (b);
text->embed_fonts = swfdec_bits_getbit (b);
diff --git a/libswfdec/swfdec_text_field.h b/libswfdec/swfdec_text_field.h
index b9a0851..4998cfa 100644
--- a/libswfdec/swfdec_text_field.h
+++ b/libswfdec/swfdec_text_field.h
@@ -89,6 +89,7 @@ struct _SwfdecTextField
SwfdecAutoSize auto_size;
gboolean border;
+ gboolean background;
/* only to be passed to the movie object */
SwfdecFont * font;
@@ -116,6 +117,8 @@ int tag_func_define_edit_text (SwfdecS
void swfdec_text_field_render (SwfdecTextField * text,
cairo_t * cr,
const SwfdecParagraph * paragraphs,
+ SwfdecColor border_color,
+ SwfdecColor background_color,
const SwfdecColorTransform * trans,
const SwfdecRect * rect);
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index 5e1b302..e76aad6 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -332,9 +332,8 @@ swfdec_text_field_movie_render (SwfdecMo
if (text->paragraphs == NULL)
swfdec_text_field_movie_generate_paragraphs (text);
- if (text->paragraphs[0].text == NULL)
- return;
- swfdec_text_field_render (text->text, cr, text->paragraphs, trans, inval);
+ swfdec_text_field_render (text->text, cr, text->paragraphs,
+ text->border_color, text->background_color, trans, inval);
}
static void
@@ -459,6 +458,9 @@ swfdec_text_field_movie_init_movie (Swfd
text->format_new->indent = text->text->indent / 20;
text->format_new->leading = text->text->leading / 20;
+ text->border_color = SWFDEC_COLOR_COMBINE (0, 0, 0, 255);
+ text->background_color = SWFDEC_COLOR_COMBINE (255, 255, 255, 255);
+
// text
if (text->text->text_input != NULL) {
swfdec_text_field_movie_set_text (text,
diff --git a/libswfdec/swfdec_text_field_movie.h b/libswfdec/swfdec_text_field_movie.h
index 4ba3be8..40ed0a2 100644
--- a/libswfdec/swfdec_text_field_movie.h
+++ b/libswfdec/swfdec_text_field_movie.h
@@ -68,8 +68,6 @@ struct _SwfdecTextFieldMovie {
GSList * formats;
SwfdecAntiAliasType anti_alias_type;
- gboolean background_fill;
- guint border_color;
gboolean condense_white;
gboolean embed_fonts;
SwfdecGridFitType grid_fit_type;
@@ -81,6 +79,9 @@ struct _SwfdecTextFieldMovie {
SwfdecStyleSheet * style_sheet;
int thickness;
+ SwfdecColor border_color;
+ SwfdecColor background_color;
+
/* for rendering */
SwfdecParagraph * paragraphs;
};
diff-tree ab6126f4f4cbe7a2656612bd8dd986b7013b3379 (from 04dad36967fe0786df6f6adc01211c44c63a4b92)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 12:22:49 2007 +0300
Remove an incorrect FIXME from TextField code
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index e02c873..5e1b302 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -156,7 +156,7 @@ swfdec_text_field_movie_generate_paragra
attr_italic->start_index = 0;
attr_letter_spacing = pango_attr_letter_spacing_new (
- format->letter_spacing * 20 * PANGO_SCALE); // FIXME: correct scaling?
+ format->letter_spacing * 20 * PANGO_SCALE);
attr_letter_spacing->start_index = 0;
attr_size =
diff-tree 04dad36967fe0786df6f6adc01211c44c63a4b92 (from 54eebc295f6f44db5c9dd76cc556396177e3f268)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 12:03:03 2007 +0300
Support rendering without wordWrap in TextField
diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index d27c3a1..302cd40 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -140,7 +140,8 @@ swfdec_text_field_render (SwfdecTextFiel
pango_cairo_update_layout (cr, layout);
pango_layout_context_changed (layout);
- pango_layout_set_width (layout, width * PANGO_SCALE);
+ pango_layout_set_width (layout,
+ (text->word_wrap ? width * PANGO_SCALE : -1));
// set paragraph styles
if (block->index_ == 0) {
@@ -204,7 +205,7 @@ swfdec_text_field_render (SwfdecTextFiel
pango_layout_set_text (layout, paragraphs[i].text + block->index_ + skip,
paragraphs[i].text_length - block->index_ - skip);
- if (iter->next != NULL)
+ if (iter->next != NULL && text->word_wrap)
{
PangoLayoutLine *line;
int line_num;
@@ -231,6 +232,9 @@ swfdec_text_field_render (SwfdecTextFiel
height + block->leading / PANGO_SCALE);
if (block->index_ == 0 && paragraphs[i].indent < 0)
cairo_rel_move_to (cr, -paragraphs[i].indent / PANGO_SCALE, 0);
+
+ if (!text->word_wrap)
+ break;
}
}
@@ -258,7 +262,7 @@ tag_func_define_edit_text (SwfdecSwfDeco
SWFDEC_GRAPHIC (text)->extents.x1, SWFDEC_GRAPHIC (text)->extents.y1);
swfdec_bits_syncbits (b);
has_text = swfdec_bits_getbit (b);
- text->wrap = swfdec_bits_getbit (b);
+ text->word_wrap = swfdec_bits_getbit (b);
text->multiline = swfdec_bits_getbit (b);
text->password = swfdec_bits_getbit (b);
text->input = !swfdec_bits_getbit (b);
diff --git a/libswfdec/swfdec_text_field.h b/libswfdec/swfdec_text_field.h
index aa84422..b9a0851 100644
--- a/libswfdec/swfdec_text_field.h
+++ b/libswfdec/swfdec_text_field.h
@@ -84,7 +84,7 @@ struct _SwfdecTextField
gboolean embed_fonts;
- gboolean wrap;
+ gboolean word_wrap;
gboolean multiline;
SwfdecAutoSize auto_size;
diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index 60d1a29..534c4e1 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -567,7 +567,7 @@ swfdec_text_field_movie_createTextField
edittext->password = FALSE;
edittext->selectable = TRUE;
edittext->font = NULL; // FIXME
- edittext->wrap = FALSE;
+ edittext->word_wrap = FALSE;
edittext->multiline = FALSE;
edittext->auto_size = SWFDEC_AUTO_SIZE_NONE;
edittext->border = FALSE;
diff-tree 54eebc295f6f44db5c9dd76cc556396177e3f268 (from 872e7d0b10de82a11107455ee1c01bb34949f6d1)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 11:57:24 2007 +0300
Update Makefile.am and include statements to use text_field not edittext
diff --git a/libswfdec/Makefile.am b/libswfdec/Makefile.am
index ee669bb..07ca529 100644
--- a/libswfdec/Makefile.am
+++ b/libswfdec/Makefile.am
@@ -62,9 +62,9 @@ libswfdec_ at SWFDEC_MAJORMINOR@_la_SOURCES
swfdec_debug.c \
swfdec_decoder.c \
swfdec_draw.c \
- swfdec_edittext.c \
- swfdec_edittext_movie.c \
- swfdec_edittext_movie_as.c \
+ swfdec_text_field.c \
+ swfdec_text_field_movie.c \
+ swfdec_text_field_movie_as.c \
swfdec_enums.c \
swfdec_event.c \
swfdec_file_loader.c \
@@ -194,8 +194,8 @@ noinst_HEADERS = \
swfdec_debug.h \
swfdec_decoder.h \
swfdec_draw.h \
- swfdec_edittext.h \
- swfdec_edittext_movie.h \
+ swfdec_text_field.h \
+ swfdec_text_field_movie.h \
swfdec_event.h \
swfdec_filter.h \
swfdec_flv_decoder.h \
diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c
index a8413b7..6af0db9 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -42,7 +42,7 @@
#include "swfdec_sprite.h"
#include "swfdec_sprite_movie.h"
#include "swfdec_swf_instance.h"
-#include "swfdec_edittext_movie.h" // for typeof
+#include "swfdec_text_field_movie.h" // for typeof
/* Define this to get SWFDEC_WARN'd about missing properties of objects.
* This can be useful to find out about unimplemented native properties,
diff --git a/libswfdec/swfdec_graphic_movie.c b/libswfdec/swfdec_graphic_movie.c
index a4a86fa..4ffd2ce 100644
--- a/libswfdec/swfdec_graphic_movie.c
+++ b/libswfdec/swfdec_graphic_movie.c
@@ -24,7 +24,7 @@
#include "swfdec_graphic_movie.h"
#include "swfdec_button.h"
#include "swfdec_debug.h"
-#include "swfdec_edittext.h"
+#include "swfdec_text_field.h"
#include "swfdec_movie.h"
#include "swfdec_shape.h"
#include "swfdec_sprite.h"
diff --git a/libswfdec/swfdec_html_parser.c b/libswfdec/swfdec_html_parser.c
index 430eec5..dcd7f1e 100644
--- a/libswfdec/swfdec_html_parser.c
+++ b/libswfdec/swfdec_html_parser.c
@@ -24,7 +24,7 @@
#include <stdlib.h>
#include <string.h>
-#include "swfdec_edittext_movie.h"
+#include "swfdec_text_field_movie.h"
#include "swfdec_as_strings.h"
#include "swfdec_debug.h"
diff --git a/libswfdec/swfdec_tag.c b/libswfdec/swfdec_tag.c
index 35c65cf..c7ef45f 100644
--- a/libswfdec/swfdec_tag.c
+++ b/libswfdec/swfdec_tag.c
@@ -32,7 +32,7 @@
#include "swfdec_bits.h"
#include "swfdec_button.h"
#include "swfdec_debug.h"
-#include "swfdec_edittext.h"
+#include "swfdec_text_field.h"
#include "swfdec_filter.h"
#include "swfdec_font.h"
#include "swfdec_image.h"
diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index 7905673..d27c3a1 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -24,9 +24,9 @@
#include <pango/pangocairo.h>
#include <string.h>
-#include "swfdec_edittext.h"
+#include "swfdec_text_field.h"
#include "swfdec_debug.h"
-#include "swfdec_edittext_movie.h"
+#include "swfdec_text_field_movie.h"
#include "swfdec_font.h"
#include "swfdec_player_internal.h"
#include "swfdec_swf_decoder.h"
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
index dd79e9a..e02c873 100644
--- a/libswfdec/swfdec_text_field_movie.c
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -24,7 +24,7 @@
#include <string.h>
-#include "swfdec_edittext_movie.h"
+#include "swfdec_text_field_movie.h"
#include "swfdec_as_context.h"
#include "swfdec_as_strings.h"
#include "swfdec_text_format.h"
diff --git a/libswfdec/swfdec_text_field_movie.h b/libswfdec/swfdec_text_field_movie.h
index 8b7999a..4ba3be8 100644
--- a/libswfdec/swfdec_text_field_movie.h
+++ b/libswfdec/swfdec_text_field_movie.h
@@ -22,7 +22,7 @@
#define _SWFDEC_TEXT_FIELD_MOVIE_H_
#include <libswfdec/swfdec_movie.h>
-#include <libswfdec/swfdec_edittext.h>
+#include <libswfdec/swfdec_text_field.h>
#include <libswfdec/swfdec_style_sheet.h>
#include <libswfdec/swfdec_text_format.h>
diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
index c9d4cd0..60d1a29 100644
--- a/libswfdec/swfdec_text_field_movie_as.c
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -24,8 +24,8 @@
#include <string.h>
-#include "swfdec_edittext.h"
-#include "swfdec_edittext_movie.h"
+#include "swfdec_text_field.h"
+#include "swfdec_text_field_movie.h"
#include "swfdec_as_strings.h"
#include "swfdec_debug.h"
#include "swfdec_as_native_function.h"
diff --git a/test/dump.c b/test/dump.c
index adf0cb1..5b8ecea 100644
--- a/test/dump.c
+++ b/test/dump.c
@@ -32,7 +32,7 @@
#include <glib-object.h>
#include <libswfdec/swfdec.h>
#include <libswfdec/swfdec_button.h>
-#include <libswfdec/swfdec_edittext.h>
+#include <libswfdec/swfdec_text_field.h>
#include <libswfdec/swfdec_font.h>
#include <libswfdec/swfdec_image.h>
#include <libswfdec/swfdec_movie.h>
diff-tree 872e7d0b10de82a11107455ee1c01bb34949f6d1 (from ba72dd43b20c244e1de4a2a5aea7438bdbcc318d)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 11:44:57 2007 +0300
Rename *edittext* files to *text_field*
diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
deleted file mode 100644
index 7905673..0000000
--- a/libswfdec/swfdec_edittext.c
+++ /dev/null
@@ -1,334 +0,0 @@
-/* Swfdec
- * Copyright (C) 2006-2007 Benjamin Otte <otte at gnome.org>
- * Pekka Lampila <pekka.lampila at iki.fi>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301 USA
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <pango/pangocairo.h>
-#include <string.h>
-#include "swfdec_edittext.h"
-#include "swfdec_debug.h"
-#include "swfdec_edittext_movie.h"
-#include "swfdec_font.h"
-#include "swfdec_player_internal.h"
-#include "swfdec_swf_decoder.h"
-
-G_DEFINE_TYPE (SwfdecTextField, swfdec_text_field, SWFDEC_TYPE_GRAPHIC)
-
-static gboolean
-swfdec_text_field_mouse_in (SwfdecGraphic *graphic, double x, double y)
-{
- return swfdec_rect_contains (&graphic->extents, x, y);
-}
-
-static SwfdecMovie *
-swfdec_text_field_create_movie (SwfdecGraphic *graphic, gsize *size)
-{
- SwfdecTextField *text = SWFDEC_TEXT_FIELD (graphic);
- SwfdecTextFieldMovie *ret = g_object_new (SWFDEC_TYPE_TEXT_FIELD_MOVIE, NULL);
-
- ret->text = text;
-
- *size = sizeof (SwfdecTextFieldMovie);
-
- return SWFDEC_MOVIE (ret);
-}
-
-static void
-swfdec_text_field_dispose (GObject *object)
-{
- SwfdecTextField *text = SWFDEC_TEXT_FIELD (object);
-
- g_free (text->text_input);
- text->text_input = NULL;
- g_free (text->variable);
- text->variable = NULL;
-
- G_OBJECT_CLASS (swfdec_text_field_parent_class)->dispose (object);
-}
-
-static void
-swfdec_text_field_class_init (SwfdecTextFieldClass * g_class)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (g_class);
- SwfdecGraphicClass *graphic_class = SWFDEC_GRAPHIC_CLASS (g_class);
-
- object_class->dispose = swfdec_text_field_dispose;
- graphic_class->create_movie = swfdec_text_field_create_movie;
- graphic_class->mouse_in = swfdec_text_field_mouse_in;
-}
-
-static void
-swfdec_text_field_init (SwfdecTextField * text)
-{
- text->max_length = G_MAXUINT;
-}
-
-void
-swfdec_text_field_render (SwfdecTextField *text, cairo_t *cr,
- const SwfdecParagraph *paragraphs, const SwfdecColorTransform *trans,
- const SwfdecRect *inval)
-{
- PangoLayout *layout;
- guint i;
-
- g_return_if_fail (SWFDEC_IS_TEXT_FIELD (text));
- g_return_if_fail (cr != NULL);
- g_return_if_fail (paragraphs != NULL);
- g_return_if_fail (trans != NULL);
- g_return_if_fail (inval != NULL);
-
- cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
- SWFDEC_GRAPHIC (text)->extents.y0);
-
- layout = pango_cairo_create_layout (cr);
-
- for (i = 0; paragraphs[i].text != NULL; i++)
- {
- GList *iter;
- guint skip;
-
- skip = 0;
- for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
- {
- int height, width;
- guint length;
- SwfdecBlock *block;
- PangoAttrList *attr_list;
-
- block = (SwfdecBlock *)iter->data;
- if (iter->next != NULL) {
- length =
- ((SwfdecBlock *)(iter->next->data))->index_ - block->index_;
- } else {
- length = paragraphs[i].text_length - block->index_;
- }
-
- if (skip > length) {
- skip -= length;
- continue;
- }
-
- // update position
- cairo_rel_move_to (cr, block->left_margin + block->block_indent, 0);
- width = SWFDEC_GRAPHIC (text)->extents.x1 -
- SWFDEC_GRAPHIC (text)->extents.x0 - block->left_margin -
- block->right_margin - block->block_indent;
-
- if (block->index_ == 0 && paragraphs[i].indent < 0) {
- cairo_rel_move_to (cr, paragraphs[i].indent / PANGO_SCALE, 0);
- width += -paragraphs[i].indent / PANGO_SCALE;
- }
-
- pango_cairo_update_layout (cr, layout);
- pango_layout_context_changed (layout);
- pango_layout_set_width (layout, width * PANGO_SCALE);
-
- // set paragraph styles
- if (block->index_ == 0) {
- pango_layout_set_indent (layout, paragraphs[i].indent);
- // TODO: bullet
- } else {
- pango_layout_set_indent (layout, 0);
- }
-
- // set block styles
- pango_layout_set_alignment (layout, block->align);
- pango_layout_set_justify (layout, block->justify);
- pango_layout_set_spacing (layout, block->leading);
- pango_layout_set_tabs (layout, block->tab_stops);
-
- // set text attributes
- if (block->index_ > 0 || !swfdec_color_transform_is_identity (trans))
- {
- GList *iter_attrs;
-
- attr_list = pango_attr_list_new ();
-
- for (iter_attrs = paragraphs[i].attrs; iter_attrs != NULL;
- iter_attrs = iter_attrs->next)
- {
- PangoAttribute *attr;
-
- attr = (PangoAttribute *)iter_attrs->data;
-
- if (attr->end_index <= block->index_ + skip)
- continue;
-
- attr = pango_attribute_copy (attr);
- if (attr->klass->type == PANGO_ATTR_FOREGROUND &&
- !swfdec_color_transform_is_identity (trans))
- {
- PangoColor pcolor;
- SwfdecColor color;
-
- pcolor = ((PangoAttrColor *)attr)->color;
- color = SWFDEC_COLOR_COMBINE (pcolor.red >> 8, pcolor.green >> 8,
- pcolor.blue >> 8, 255);
- color = swfdec_color_apply_transform (color, trans);
- pcolor.red = SWFDEC_COLOR_R (color) << 8;
- pcolor.green = SWFDEC_COLOR_G (color) << 8;
- pcolor.blue = SWFDEC_COLOR_B (color) << 8;
- ((PangoAttrColor *)attr)->color = pcolor;
- }
- attr->start_index = (attr->start_index > block->index_ + skip ?
- attr->start_index - (block->index_ + skip) : 0);
- attr->end_index = attr->end_index - (block->index_ + skip);
- pango_attr_list_insert (attr_list, attr);
- }
- } else {
- attr_list = pango_attr_list_copy (paragraphs[i].attrs_list);
- }
- pango_layout_set_attributes (layout, attr_list);
- pango_attr_list_unref (attr_list);
- attr_list = NULL;
-
- pango_layout_set_text (layout, paragraphs[i].text + block->index_ + skip,
- paragraphs[i].text_length - block->index_ - skip);
-
- if (iter->next != NULL)
- {
- PangoLayoutLine *line;
- int line_num;
- guint skip_new;
-
- pango_layout_index_to_line_x (layout, length - skip, FALSE, &line_num,
- NULL);
- line = pango_layout_get_line_readonly (layout, line_num);
- skip_new = line->start_index + line->length - (length - skip);
- pango_layout_set_text (layout,
- paragraphs[i].text + block->index_ + skip,
- length - skip + skip_new);
- skip = skip_new;
- }
- else
- {
- skip = 0;
- }
-
- pango_cairo_show_layout (cr, layout);
-
- pango_layout_get_pixel_size (layout, NULL, &height);
- cairo_rel_move_to (cr, -(block->left_margin + block->block_indent),
- height + block->leading / PANGO_SCALE);
- if (block->index_ == 0 && paragraphs[i].indent < 0)
- cairo_rel_move_to (cr, -paragraphs[i].indent / PANGO_SCALE, 0);
- }
- }
-
- g_object_unref (layout);
-}
-
-int
-tag_func_define_edit_text (SwfdecSwfDecoder * s, guint tag)
-{
- SwfdecTextField *text;
- guint id;
- int reserved;
- gboolean has_font, has_color, has_max_length, has_layout, has_text;
- SwfdecBits *b = &s->b;
-
- id = swfdec_bits_get_u16 (b);
- SWFDEC_LOG (" id = %u", id);
- text = swfdec_swf_decoder_create_character (s, id, SWFDEC_TYPE_TEXT_FIELD);
- if (text == NULL)
- return SWFDEC_STATUS_OK;
-
- swfdec_bits_get_rect (b, &SWFDEC_GRAPHIC (text)->extents);
- SWFDEC_LOG (" extents: %g %g %g %g",
- SWFDEC_GRAPHIC (text)->extents.x0, SWFDEC_GRAPHIC (text)->extents.y0,
- SWFDEC_GRAPHIC (text)->extents.x1, SWFDEC_GRAPHIC (text)->extents.y1);
- swfdec_bits_syncbits (b);
- has_text = swfdec_bits_getbit (b);
- text->wrap = swfdec_bits_getbit (b);
- text->multiline = swfdec_bits_getbit (b);
- text->password = swfdec_bits_getbit (b);
- text->input = !swfdec_bits_getbit (b);
- has_color = swfdec_bits_getbit (b);
- has_max_length = swfdec_bits_getbit (b);
- has_font = swfdec_bits_getbit (b);
- reserved = swfdec_bits_getbit (b);
- text->auto_size =
- (swfdec_bits_getbit (b) ? SWFDEC_AUTO_SIZE_LEFT : SWFDEC_AUTO_SIZE_NONE);
- has_layout = swfdec_bits_getbit (b);
- text->selectable = !swfdec_bits_getbit (b);
- text->border = swfdec_bits_getbit (b);
- reserved = swfdec_bits_getbit (b);
- text->html = swfdec_bits_getbit (b);
- text->embed_fonts = swfdec_bits_getbit (b);
- if (has_font) {
- SwfdecCharacter *font;
-
- id = swfdec_bits_get_u16 (b);
- font = swfdec_swf_decoder_get_character (s, id);
- if (SWFDEC_IS_FONT (font)) {
- SWFDEC_LOG (" font = %u", id);
- text->font = SWFDEC_FONT (font);
- } else {
- SWFDEC_ERROR ("id %u does not specify a font", id);
- }
- text->size = swfdec_bits_get_u16 (b);
- SWFDEC_LOG (" size = %u", text->size);
- }
- if (has_color) {
- text->color = swfdec_bits_get_rgba (b);
- SWFDEC_LOG (" color = %u", text->color);
- } else {
- SWFDEC_WARNING ("FIXME: figure out default color");
- text->color = SWFDEC_COLOR_COMBINE (255, 255, 255, 255);
- }
- if (has_max_length) {
- text->max_length = swfdec_bits_get_u16 (b);
- }
- if (has_layout) {
- guint align = swfdec_bits_get_u8 (b);
- switch (align) {
- case 0:
- text->align = SWFDEC_TEXT_ALIGN_LEFT;
- break;
- case 1:
- text->align = SWFDEC_TEXT_ALIGN_RIGHT;
- break;
- case 2:
- text->align = SWFDEC_TEXT_ALIGN_CENTER;
- break;
- case 3:
- text->align = SWFDEC_TEXT_ALIGN_JUSTIFY;
- break;
- default:
- SWFDEC_ERROR ("undefined align value %u", align);
- break;
- }
- text->left_margin = swfdec_bits_get_u16 (b);
- text->right_margin = swfdec_bits_get_u16 (b);
- text->indent = swfdec_bits_get_u16 (b);
- text->leading = swfdec_bits_get_s16 (b);
- }
- text->variable = swfdec_bits_get_string (b);
- if (text->variable && *text->variable == 0) {
- g_free (text->variable);
- text->variable = NULL;
- }
- if (has_text)
- text->text_input = swfdec_bits_get_string (b);
-
- return SWFDEC_STATUS_OK;
-}
diff --git a/libswfdec/swfdec_edittext.h b/libswfdec/swfdec_edittext.h
deleted file mode 100644
index aa84422..0000000
--- a/libswfdec/swfdec_edittext.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Swfdec
- * Copyright (C) 2006-2007 Benjamin Otte <otte at gnome.org>
- * Pekka Lampila <pekka.lampila at iki.fi>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301 USA
- */
-
-#ifndef _SWFDEC_TEXT_FIELD_H_
-#define _SWFDEC_TEXT_FIELD_H_
-
-#include <pango/pango.h>
-#include <libswfdec/swfdec_types.h>
-#include <libswfdec/swfdec_color.h>
-#include <libswfdec/swfdec_graphic.h>
-#include <libswfdec/swfdec_player.h>
-#include <libswfdec/swfdec_text_format.h>
-
-G_BEGIN_DECLS
-
-typedef struct _SwfdecTextField SwfdecTextField;
-typedef struct _SwfdecTextFieldClass SwfdecTextFieldClass;
-
-#define SWFDEC_TYPE_TEXT_FIELD (swfdec_text_field_get_type())
-#define SWFDEC_IS_TEXT_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_TEXT_FIELD))
-#define SWFDEC_IS_TEXT_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_TEXT_FIELD))
-#define SWFDEC_TEXT_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_TEXT_FIELD, SwfdecTextField))
-#define SWFDEC_TEXT_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEXT_FIELD, SwfdecTextFieldClass))
-
-typedef struct {
- guint index_;
-
- PangoAlignment align;
- gboolean justify;
- int leading;
- int block_indent;
- int left_margin;
- int right_margin;
- PangoTabArray * tab_stops;
-} SwfdecBlock;
-
-typedef struct {
- const char *text;
- guint text_length;
-
- gboolean bullet;
- int indent;
-
- GList * blocks; // SwfdecBlock
-
- GList * attrs; // PangoAttribute
- PangoAttrList * attrs_list;
-} SwfdecParagraph;
-
-typedef enum {
- SWFDEC_AUTO_SIZE_NONE,
- SWFDEC_AUTO_SIZE_LEFT,
- SWFDEC_AUTO_SIZE_CENTER,
- SWFDEC_AUTO_SIZE_RIGHT
-} SwfdecAutoSize;
-
-struct _SwfdecTextField
-{
- SwfdecGraphic graphic;
-
- gboolean html;
-
- gboolean input;
- gboolean password;
- guint max_length;
- gboolean selectable;
-
- gboolean embed_fonts;
-
- gboolean wrap;
- gboolean multiline;
- SwfdecAutoSize auto_size;
-
- gboolean border;
-
- /* only to be passed to the movie object */
- SwfdecFont * font;
- char * text_input;
- char * variable;
- guint size;
- SwfdecColor color;
- SwfdecTextAlign align;
- guint left_margin;
- guint right_margin;
- guint indent;
- int leading;
-};
-
-struct _SwfdecTextFieldClass
-{
- SwfdecGraphicClass graphic_class;
-};
-
-GType swfdec_text_field_get_type (void);
-
-int tag_func_define_edit_text (SwfdecSwfDecoder * s,
- guint tag);
-
-void swfdec_text_field_render (SwfdecTextField * text,
- cairo_t * cr,
- const SwfdecParagraph * paragraphs,
- const SwfdecColorTransform * trans,
- const SwfdecRect * rect);
-
-G_END_DECLS
-#endif
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
deleted file mode 100644
index dd79e9a..0000000
--- a/libswfdec/swfdec_edittext_movie.c
+++ /dev/null
@@ -1,619 +0,0 @@
-/* Swfdec
- * Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
- * Pekka Lampila <pekka.lampila at iki.fi>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301 USA
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <string.h>
-
-#include "swfdec_edittext_movie.h"
-#include "swfdec_as_context.h"
-#include "swfdec_as_strings.h"
-#include "swfdec_text_format.h"
-#include "swfdec_font.h"
-#include "swfdec_debug.h"
-#include "swfdec_player_internal.h"
-
-G_DEFINE_TYPE (SwfdecTextFieldMovie, swfdec_text_field_movie, SWFDEC_TYPE_MOVIE)
-
-static void
-swfdec_text_field_movie_update_extents (SwfdecMovie *movie,
- SwfdecRect *extents)
-{
- swfdec_rect_union (extents, extents,
- &SWFDEC_GRAPHIC (SWFDEC_TEXT_FIELD_MOVIE (movie)->text)->extents);
-}
-
-static void
-swfdec_text_paragraph_add_attribute (SwfdecParagraph *paragraph,
- PangoAttribute *attr)
-{
- paragraph->attrs = g_list_append (paragraph->attrs,
- pango_attribute_copy (attr));
- pango_attr_list_insert (paragraph->attrs_list, attr);
-}
-
-static void
-swfdec_text_paragraph_add_block_attributes (SwfdecParagraph *paragraph,
- int index_, SwfdecTextFormat *format)
-{
- gint32 length, i;
- SwfdecBlock *block;
- SwfdecAsValue val;
-
- block = g_new0 (SwfdecBlock, 1);
-
- block->index_ = index_;
-
- switch (format->align) {
- case SWFDEC_TEXT_ALIGN_LEFT:
- block->align = PANGO_ALIGN_LEFT;
- block->justify = FALSE;
- break;
- case SWFDEC_TEXT_ALIGN_RIGHT:
- block->align = PANGO_ALIGN_RIGHT;
- block->justify = FALSE;
- break;
- case SWFDEC_TEXT_ALIGN_CENTER:
- block->align = PANGO_ALIGN_CENTER;
- block->justify = FALSE;
- break;
- case SWFDEC_TEXT_ALIGN_JUSTIFY:
- block->align = PANGO_ALIGN_LEFT;
- block->justify = TRUE;
- break;
- }
- block->leading = format->leading * 20 * PANGO_SCALE;
- block->block_indent = format->block_indent * 20;
- block->left_margin = format->left_margin * 20;
- block->right_margin = format->right_margin * 20;
-
- length = swfdec_as_array_get_length (format->tab_stops);
- block->tab_stops = pango_tab_array_new (length, TRUE);
- for (i = 0; i < length; i++) {
- swfdec_as_array_get_value (format->tab_stops, i, &val);
- g_assert (SWFDEC_AS_VALUE_IS_NUMBER (&val));
- pango_tab_array_set_tab (block->tab_stops, i, PANGO_TAB_LEFT,
- SWFDEC_AS_VALUE_GET_NUMBER (&val) * 20);
- }
-
- paragraph->blocks = g_list_append (paragraph->blocks, block);
-}
-
-static void
-swfdec_text_field_movie_generate_paragraph (SwfdecTextFieldMovie *text,
- SwfdecParagraph *paragraph, guint start_index, guint end_index)
-{
- SwfdecTextFormat *format, *format_prev;
- guint index_;
- GSList *iter;
- PangoAttribute *attr_bold, *attr_color, *attr_font, *attr_italic,
- *attr_letter_spacing, *attr_size, *attr_underline;
- // TODO: kerning
-
- g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
- g_assert (paragraph != NULL);
- g_assert (start_index < end_index);
- g_assert (end_index <= strlen (text->text_display));
-
- paragraph->text = text->text_display + start_index;
- paragraph->text_length = end_index - start_index;
-
- paragraph->blocks = NULL;
- paragraph->attrs = NULL;
- paragraph->attrs_list = pango_attr_list_new ();
-
- g_assert (text->formats != NULL);
- for (iter = text->formats; iter->next != NULL &&
- ((SwfdecFormatIndex *)(iter->next->data))->index <= start_index;
- iter = iter->next);
-
- index_ = start_index;
- format = ((SwfdecFormatIndex *)(iter->data))->format;
-
- // Paragraph formats
- paragraph->bullet = format->bullet;
- paragraph->indent = format->indent * 20 * PANGO_SCALE;
-
- // Add new block
- swfdec_text_paragraph_add_block_attributes (paragraph, 0, format);
-
- // Open attributes
- attr_bold = pango_attr_weight_new (
- (format->bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL));
- attr_bold->start_index = 0;
-
- attr_color = pango_attr_foreground_new (SWFDEC_COLOR_R (format->color) * 255,
- SWFDEC_COLOR_G (format->color) * 255,
- SWFDEC_COLOR_B (format->color) * 255);
- attr_color->start_index = 0;
-
- if (text->text->embed_fonts)
- SWFDEC_FIXME ("Using embed fonts in TextField not supported");
- attr_font = pango_attr_family_new (format->font);
- attr_font->start_index = 0;
-
- attr_italic = pango_attr_style_new (
- (format->italic ? PANGO_STYLE_ITALIC : PANGO_STYLE_NORMAL));
- attr_italic->start_index = 0;
-
- attr_letter_spacing = pango_attr_letter_spacing_new (
- format->letter_spacing * 20 * PANGO_SCALE); // FIXME: correct scaling?
- attr_letter_spacing->start_index = 0;
-
- attr_size =
- pango_attr_size_new_absolute (MAX (format->size, 1) * 20 * PANGO_SCALE);
- attr_size->start_index = 0;
-
- attr_underline = pango_attr_underline_new (
- (format->underline ? PANGO_UNDERLINE_SINGLE : PANGO_UNDERLINE_NONE));
- attr_underline->start_index = 0;
-
- for (iter = iter->next;
- iter != NULL && ((SwfdecFormatIndex *)(iter->data))->index < end_index;
- iter = iter->next)
- {
- format_prev = format;
- index_ = ((SwfdecFormatIndex *)(iter->data))->index;
- format = ((SwfdecFormatIndex *)(iter->data))->format;
-
- // Add new block if necessary
- if (format_prev->align != format->align ||
- format_prev->bullet != format->bullet ||
- format_prev->indent != format->indent ||
- format_prev->leading != format->leading ||
- format_prev->block_indent != format->block_indent ||
- format_prev->left_margin != format->left_margin)
- {
- swfdec_text_paragraph_add_block_attributes (paragraph,
- index_ - start_index, format);
- }
-
- // Change attributes if necessary
- if (format_prev->bold != format->bold) {
- attr_bold->end_index = index_ - start_index;
- swfdec_text_paragraph_add_attribute (paragraph, attr_bold);
-
- attr_bold = pango_attr_weight_new (
- (format->bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL));
- attr_bold->start_index = index_ - start_index;
- }
-
- if (format_prev->color != format->color) {
- attr_color->end_index = index_ - start_index;
- swfdec_text_paragraph_add_attribute (paragraph, attr_color);
-
- attr_color = pango_attr_foreground_new (
- SWFDEC_COLOR_R (format->color) * 255,
- SWFDEC_COLOR_G (format->color) * 255,
- SWFDEC_COLOR_B (format->color) * 255);
- attr_color->start_index = index_ - start_index;
- }
-
- if (format_prev->font != format->font) {
- attr_font->end_index = index_ - start_index;
- swfdec_text_paragraph_add_attribute (paragraph, attr_font);
-
- if (text->text->embed_fonts)
- SWFDEC_FIXME ("Using embed fonts in TextField not supported");
- attr_font = pango_attr_family_new (format->font);
- attr_font->start_index = index_ - start_index;
- }
-
- if (format_prev->italic != format->italic) {
- attr_italic->end_index = index_ - start_index;
- swfdec_text_paragraph_add_attribute (paragraph, attr_italic);
-
- attr_italic = pango_attr_style_new (
- (format->italic ? PANGO_STYLE_ITALIC : PANGO_STYLE_NORMAL));
- attr_italic->start_index = index_ - start_index;
- }
-
- if (format_prev->letter_spacing != format->letter_spacing) {
- attr_letter_spacing->end_index = index_ - start_index;
- swfdec_text_paragraph_add_attribute (paragraph, attr_letter_spacing);
-
- // FIXME: correct scaling?
- attr_letter_spacing = pango_attr_letter_spacing_new (
- format->letter_spacing * 20 * PANGO_SCALE);
- attr_letter_spacing->start_index = index_ - start_index;
- }
-
- if (format_prev->size != format->size) {
- attr_size->end_index = index_ - start_index;
- swfdec_text_paragraph_add_attribute (paragraph, attr_size);
-
- attr_size =
- pango_attr_size_new_absolute (MAX (1, format->size) * 20 * PANGO_SCALE);
- attr_size->start_index = index_ - start_index;
- }
-
- if (format_prev->underline != format->underline) {
- attr_underline->end_index = index_ - start_index;
- swfdec_text_paragraph_add_attribute (paragraph, attr_underline);
-
- attr_underline = pango_attr_underline_new (
- (format->underline ? PANGO_UNDERLINE_SINGLE : PANGO_UNDERLINE_NONE));
- attr_underline->start_index = index_ - start_index;
- }
- }
-
- // Close attributes
- attr_bold->end_index = end_index - start_index;
- swfdec_text_paragraph_add_attribute (paragraph, attr_bold);
- attr_bold = NULL;
-
- attr_color->end_index = end_index - start_index;
- swfdec_text_paragraph_add_attribute (paragraph, attr_color);
- attr_color = NULL;
-
- attr_font->end_index = end_index - start_index;
- swfdec_text_paragraph_add_attribute (paragraph, attr_font);
- attr_font = NULL;
-
- attr_italic->end_index = end_index - start_index;
- swfdec_text_paragraph_add_attribute (paragraph, attr_italic);
- attr_italic = NULL;
-
- attr_letter_spacing->end_index = end_index - start_index;
- swfdec_text_paragraph_add_attribute (paragraph, attr_letter_spacing);
- attr_letter_spacing = NULL;
-
- attr_size->end_index = end_index - start_index;
- swfdec_text_paragraph_add_attribute (paragraph, attr_size);
- attr_size = NULL;
-
- attr_underline->end_index = end_index - start_index;
- swfdec_text_paragraph_add_attribute (paragraph, attr_underline);
- attr_underline = NULL;
-}
-
-static void
-swfdec_text_field_movie_generate_paragraphs (SwfdecTextFieldMovie *text)
-{
- const char *p, *end;
- int num, i;
-
- g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
-
- num = 0;
- p = text->text_display;
- while (p != NULL) {
- num++;
- p = strchr (p, '\r');
- if (p != NULL) p++;
- }
-
- text->paragraphs = g_new0 (SwfdecParagraph, num + 1);
-
- i = 0;
- p = text->text_display;
- while (*p != '\0') {
- g_assert (i < num);
- end = strchr (p, '\r');
- if (end == NULL)
- end = strchr (p, '\0');
-
- swfdec_text_field_movie_generate_paragraph (text, &text->paragraphs[i],
- p - text->text_display, end - text->text_display);
-
- p = end;
- if (*p == '\r') p++;
-
- i++;
- }
- g_assert (i == num);
-}
-
-static void
-swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
- const SwfdecColorTransform *trans, const SwfdecRect *inval)
-{
- SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
-
- if (text->paragraphs == NULL)
- swfdec_text_field_movie_generate_paragraphs (text);
-
- if (text->paragraphs[0].text == NULL)
- return;
- swfdec_text_field_render (text->text, cr, text->paragraphs, trans, inval);
-}
-
-static void
-swfdec_text_field_movie_free_paragraphs (SwfdecTextFieldMovie *text)
-{
- GList *iter;
- int i;
-
- if (text->paragraphs) {
- for (i = 0; text->paragraphs[i].text != NULL; i++)
- {
- for (iter = text->paragraphs[i].blocks; iter != NULL; iter = iter->next) {
- pango_tab_array_free (((SwfdecBlock *)(iter->data))->tab_stops);
- }
- g_list_free (text->paragraphs[i].blocks);
-
- for (iter = text->paragraphs[i].attrs; iter != NULL; iter = iter->next) {
- pango_attribute_destroy ((PangoAttribute *)(iter->data));
- }
- g_list_free (text->paragraphs[i].attrs);
-
- if (text->paragraphs[i].attrs_list != NULL)
- pango_attr_list_unref (text->paragraphs[i].attrs_list);
- }
- g_free (text->paragraphs);
- text->paragraphs = NULL;
- }
-}
-
-void
-swfdec_text_field_movie_format_changed (SwfdecTextFieldMovie *text)
-{
- swfdec_text_field_movie_free_paragraphs (text);
-}
-
-static void
-swfdec_text_field_movie_dispose (GObject *object)
-{
- SwfdecTextFieldMovie *text;
- GSList *iter;
-
- text = SWFDEC_TEXT_FIELD_MOVIE (object);
-
- swfdec_text_field_movie_free_paragraphs (text);
-
- for (iter = text->formats; iter != NULL; iter = iter->next) {
- g_free (text->formats->data);
- text->formats->data = NULL;
- }
- g_slist_free (text->formats);
-
- G_OBJECT_CLASS (swfdec_text_field_movie_parent_class)->dispose (object);
-}
-
-static void
-swfdec_text_field_movie_mark (SwfdecAsObject *object)
-{
- SwfdecTextFieldMovie *text;
- GSList *iter;
-
- text = SWFDEC_TEXT_FIELD_MOVIE (object);
-
- swfdec_as_string_mark (text->text_input);
- swfdec_as_string_mark (text->text_display);
- swfdec_as_string_mark (text->variable);
- swfdec_as_object_mark (SWFDEC_AS_OBJECT (text->format_new));
- for (iter = text->formats; iter != NULL; iter = iter->next) {
- swfdec_as_object_mark (
- SWFDEC_AS_OBJECT (((SwfdecFormatIndex *)(iter->data))->format));
- }
- swfdec_as_object_mark (SWFDEC_AS_OBJECT (text->format_new));
- if (text->style_sheet != NULL)
- swfdec_as_object_mark (SWFDEC_AS_OBJECT (text->style_sheet));
-
- SWFDEC_AS_OBJECT_CLASS (swfdec_text_field_movie_parent_class)->mark (object);
-}
-
-static void
-swfdec_text_field_movie_iterate (SwfdecMovie *movie)
-{
- SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
- SwfdecAsObject *parent;
- const char *s;
- SwfdecAsValue val = { 0, };
-
- if (text->text->variable == NULL)
- return;
-
- parent = SWFDEC_AS_OBJECT (movie->parent);
- swfdec_as_context_eval (parent->context, parent, text->text->variable, &val);
- if (SWFDEC_AS_VALUE_IS_UNDEFINED (&val))
- return;
-
- s = swfdec_as_value_to_string (parent->context, &val);
- g_assert (s);
- if (text->text_input == s)
- return;
-
- swfdec_text_field_movie_set_text (text, s, text->text->html);
-}
-
-static void
-swfdec_text_field_movie_init_movie (SwfdecMovie *movie)
-{
- SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
- SwfdecAsContext *cx;
- SwfdecAsObject *parent;
- SwfdecAsValue val = { 0, };
- const char *s;
-
- cx = SWFDEC_AS_OBJECT (movie)->context;
-
- // format
- text->format_new = SWFDEC_TEXT_FORMAT (swfdec_text_format_new (cx));
- swfdec_text_format_set_defaults (text->format_new);
- text->format_new->color = text->text->color;
- text->format_new->align = text->text->align;
- text->format_new->font = text->text->font->name;
- text->format_new->size = text->text->size / 20;
- text->format_new->left_margin = text->text->left_margin / 20;
- text->format_new->right_margin = text->text->right_margin / 20;
- text->format_new->indent = text->text->indent / 20;
- text->format_new->leading = text->text->leading / 20;
-
- // text
- if (text->text->text_input != NULL) {
- swfdec_text_field_movie_set_text (text,
- swfdec_as_context_get_string (cx, text->text->text_input),
- text->text->html);
- }
-
- // variable
- if (text->text->variable != NULL)
- {
- text->variable = swfdec_as_context_get_string (cx, text->text->variable);
-
- parent = SWFDEC_AS_OBJECT (movie->parent);
- swfdec_as_context_eval (parent->context, parent, text->variable, &val);
- if (!SWFDEC_AS_VALUE_IS_UNDEFINED (&val)) {
- s = swfdec_as_value_to_string (parent->context, &val);
- g_assert (s);
- if (text->text_input != s)
- swfdec_text_field_movie_set_text (text, s, text->text->html);
- } else {
- SWFDEC_LOG ("setting variable %s to \"%s\"", text->variable,
- text->text_input ? text->text_input : "");
- s = text->text_input ? swfdec_as_context_get_string (parent->context,
- text->text_input) : SWFDEC_AS_STR_EMPTY;
- SWFDEC_AS_VALUE_SET_STRING (&val, s);
- swfdec_as_context_eval_set (parent->context, parent, text->variable,
- &val);
- }
- }
-}
-
-static void
-swfdec_text_field_movie_class_init (SwfdecTextFieldMovieClass * g_class)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (g_class);
- SwfdecAsObjectClass *asobject_class = SWFDEC_AS_OBJECT_CLASS (g_class);
- SwfdecMovieClass *movie_class = SWFDEC_MOVIE_CLASS (g_class);
-
- object_class->dispose = swfdec_text_field_movie_dispose;
-
- asobject_class->mark = swfdec_text_field_movie_mark;
-
- movie_class->init_movie = swfdec_text_field_movie_init_movie;
- movie_class->update_extents = swfdec_text_field_movie_update_extents;
- movie_class->render = swfdec_text_field_movie_render;
- movie_class->iterate_start = swfdec_text_field_movie_iterate;
-}
-
-static void
-swfdec_text_field_movie_init (SwfdecTextFieldMovie *text)
-{
-}
-
-void
-swfdec_text_field_movie_set_text_format (SwfdecTextFieldMovie *text,
- SwfdecTextFormat *format, guint start_index, guint end_index)
-{
- SwfdecFormatIndex *findex, *findex_new;
- guint findex_end_index;
- GSList *iter, *next;
-
- g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
- g_return_if_fail (SWFDEC_IS_TEXT_FORMAT (format));
- g_return_if_fail (start_index < end_index);
- g_return_if_fail (end_index <= strlen (text->text_display));
-
- g_assert (text->formats != NULL);
- g_assert (text->formats->data != NULL);
- g_assert (((SwfdecFormatIndex *)text->formats->data)->index == 0);
- for (iter = text->formats; iter != NULL &&
- ((SwfdecFormatIndex *)iter->data)->index < end_index;
- iter = next)
- {
- next = iter->next;
- findex = iter->data;
- if (iter->next != NULL) {
- findex_end_index =
- ((SwfdecFormatIndex *)iter->next->data)->index;
- } else {
- findex_end_index = strlen (text->text_display);
- }
-
- if (findex_end_index < start_index)
- continue;
-
- if (findex_end_index > end_index) {
- findex_new = g_new (SwfdecFormatIndex, 1);
- findex_new->index = end_index;
- findex_new->format = swfdec_text_format_copy (findex->format);
-
- iter = g_slist_insert (iter, findex_new, 1);
- }
-
- if (findex->index < start_index) {
- findex_new = g_new (SwfdecFormatIndex, 1);
- findex_new->index = start_index;
- findex_new->format = swfdec_text_format_copy (findex->format);
- swfdec_text_format_add (findex_new->format, format);
-
- iter = g_slist_insert (iter, findex_new, 1);
- } else {
- swfdec_text_format_add (findex->format, format);
- }
- }
-
- swfdec_text_field_movie_format_changed (text);
-}
-
-void
-swfdec_text_field_movie_set_text (SwfdecTextFieldMovie *text, const char *str,
- gboolean html)
-{
- SwfdecFormatIndex *block;
- GSList *iter;
-
- g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
-
- text->text_input = str;
-
- // remove old formatting info
- iter = text->formats;
- while (iter) {
- g_free (iter->data);
- iter = g_slist_next (iter);
- }
- g_slist_free (text->formats);
- text->formats = NULL;
-
- // add the default style
- if (html && SWFDEC_AS_OBJECT (text)->context->version < 8)
- swfdec_text_format_set_defaults (text->format_new);
- block = g_new (SwfdecFormatIndex, 1);
- block->index = 0;
- g_assert (SWFDEC_IS_TEXT_FORMAT (text->format_new));
- block->format = text->format_new;
- text->formats = g_slist_prepend (text->formats, block);
-
- if (html) {
- swfdec_text_field_movie_html_parse (text, str);
- } else {
- // change all \n to \r
- if (strchr (str, '\n') != NULL) {
- char *string, *p;
-
- string = g_strdup (str);
- p = string;
- while ((p = strchr (p, '\n')) != NULL) {
- *p = '\r';
- }
- text->text_display = swfdec_as_context_give_string (
- SWFDEC_AS_OBJECT (text)->context, string);
- } else {
- text->text_display = str;
- }
- }
-
- swfdec_text_field_movie_format_changed (text);
-}
diff --git a/libswfdec/swfdec_edittext_movie.h b/libswfdec/swfdec_edittext_movie.h
deleted file mode 100644
index 8b7999a..0000000
--- a/libswfdec/swfdec_edittext_movie.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Swfdec
- * Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
- * Pekka Lampila <pekka.lampila at iki.fi>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301 USA
- */
-
-#ifndef _SWFDEC_TEXT_FIELD_MOVIE_H_
-#define _SWFDEC_TEXT_FIELD_MOVIE_H_
-
-#include <libswfdec/swfdec_movie.h>
-#include <libswfdec/swfdec_edittext.h>
-#include <libswfdec/swfdec_style_sheet.h>
-#include <libswfdec/swfdec_text_format.h>
-
-G_BEGIN_DECLS
-
-
-typedef struct _SwfdecTextFieldMovie SwfdecTextFieldMovie;
-typedef struct _SwfdecTextFieldMovieClass SwfdecTextFieldMovieClass;
-
-#define SWFDEC_TYPE_TEXT_FIELD_MOVIE (swfdec_text_field_movie_get_type())
-#define SWFDEC_IS_TEXT_FIELD_MOVIE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_TEXT_FIELD_MOVIE))
-#define SWFDEC_IS_TEXT_FIELD_MOVIE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_TEXT_FIELD_MOVIE))
-#define SWFDEC_TEXT_FIELD_MOVIE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_TEXT_FIELD_MOVIE, SwfdecTextFieldMovie))
-#define SWFDEC_TEXT_FIELD_MOVIE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEXT_FIELD_MOVIE, SwfdecTextFieldMovieClass))
-
-typedef struct {
- guint index;
- SwfdecTextFormat * format;
-} SwfdecFormatIndex;
-
-typedef enum {
- SWFDEC_ANTI_ALIAS_TYPE_NORMAL,
- SWFDEC_ANTI_ALIAS_TYPE_ADVANCED
-} SwfdecAntiAliasType;
-
-typedef enum {
- SWFDEC_GRID_FIT_TYPE_NONE,
- SWFDEC_GRID_FIT_TYPE_PIXEL,
- SWFDEC_GRID_FIT_TYPE_SUBPIXEL
-} SwfdecGridFitType;
-
-struct _SwfdecTextFieldMovie {
- SwfdecMovie movie;
-
- SwfdecTextField * text; /* the text_field object we render */
-
- const char * text_input;
- const char * text_display;
-
- const char * variable;
-
- SwfdecTextFormat * format_new;
- GSList * formats;
-
- SwfdecAntiAliasType anti_alias_type;
- gboolean background_fill;
- guint border_color;
- gboolean condense_white;
- gboolean embed_fonts;
- SwfdecGridFitType grid_fit_type;
- guint hscroll;
- gboolean mouse_wheel_enabled;
- const char * restrict_;
- guint scroll;
- int sharpness;
- SwfdecStyleSheet * style_sheet;
- int thickness;
-
- /* for rendering */
- SwfdecParagraph * paragraphs;
-};
-
-struct _SwfdecTextFieldMovieClass {
- SwfdecMovieClass movie_class;
-};
-
-GType swfdec_text_field_movie_get_type (void);
-
-void swfdec_text_field_movie_set_text (SwfdecTextFieldMovie * movie,
- const char * str,
- gboolean html);
-void swfdec_text_field_movie_format_changed (SwfdecTextFieldMovie * text);
-void swfdec_text_field_movie_set_text_format (SwfdecTextFieldMovie * text,
- SwfdecTextFormat * format,
- guint start_index,
- guint end_index);
-
-/* implemented in swfdec_html_parser.c */
-void swfdec_text_field_movie_html_parse (SwfdecTextFieldMovie * text,
- const char * str);
-
-G_END_DECLS
-#endif
diff --git a/libswfdec/swfdec_edittext_movie_as.c b/libswfdec/swfdec_edittext_movie_as.c
deleted file mode 100644
index c9d4cd0..0000000
--- a/libswfdec/swfdec_edittext_movie_as.c
+++ /dev/null
@@ -1,705 +0,0 @@
-/* Swfdec
- * Copyright (C) 2007 Benjamin Otte <otte at gnome.org>
- * Pekka Lampila <pekka.lampila at iki.fi>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301 USA
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <string.h>
-
-#include "swfdec_edittext.h"
-#include "swfdec_edittext_movie.h"
-#include "swfdec_as_strings.h"
-#include "swfdec_debug.h"
-#include "swfdec_as_native_function.h"
-#include "swfdec_as_internal.h"
-#include "swfdec_as_context.h"
-#include "swfdec_as_frame_internal.h"
-#include "swfdec_xml.h"
-#include "swfdec_internal.h"
-#include "swfdec_player_internal.h"
-
-static void
-swfdec_text_field_movie_get_text (SwfdecAsContext *cx, SwfdecAsObject *object,
- guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
-
- SWFDEC_AS_VALUE_SET_STRING (ret, (text->text_display != NULL ?
- swfdec_as_context_get_string (cx, text->text_display) :
- SWFDEC_AS_STR_EMPTY));
-}
-
-static void
-swfdec_text_field_movie_do_set_text (SwfdecAsContext *cx,
- SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
- SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
- const char *value;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "s", &value);
-
- swfdec_text_field_movie_set_text (text, value, FALSE);
-}
-
-static const char *
-align_to_string (SwfdecTextAlign align)
-{
- switch (align) {
- case SWFDEC_TEXT_ALIGN_LEFT:
- return "LEFT";
- case SWFDEC_TEXT_ALIGN_RIGHT:
- return "RIGHT";
- case SWFDEC_TEXT_ALIGN_CENTER:
- return "CENTER";
- case SWFDEC_TEXT_ALIGN_JUSTIFY:
- return "JUSTIFY";
- default:
- g_assert_not_reached ();
- }
-}
-
-/*
- * Order of tags:
- * TEXTFORMAT / P or LI / FONT / A / B / I / U
- *
- * Order of attributes:
- * TEXTFORMAT:
- * LEFTMARGIN / RIGHTMARGIN / INDENT / LEADING / BLOCKINDENT / TABSTOPS
- * P: ALIGN
- * LI: none
- * FONT: FACE / SIZE / COLOR / LETTERSPACING / KERNING
- * A: HREF / TARGET
- * B: none
- * I: none
- * U: none
- */
-static GString *
-swfdec_text_field_movie_htmlText_append_paragraph (SwfdecTextFieldMovie *text,
- GString *string, guint start_index, guint end_index)
-{
- SwfdecTextFormat *format, *format_prev, *format_font;
- GSList *iter, *fonts, *iter_font;
- guint index_, index_prev;
- gboolean textformat, bullet, font;
- char *escaped;
-
- g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text), string);
- g_return_val_if_fail (string != NULL, string);
- g_return_val_if_fail (start_index < end_index, string);
-
- g_return_val_if_fail (text->formats != NULL, string);
- for (iter = text->formats; iter->next != NULL &&
- ((SwfdecFormatIndex *)(iter->next->data))->index <= start_index;
- iter = iter->next);
-
- index_ = start_index;
- format = ((SwfdecFormatIndex *)(iter->data))->format;
-
- if (format->left_margin != 0 || format->right_margin != 0 ||
- format->indent != 0 || format->leading != 0 ||
- format->block_indent != 0 ||
- swfdec_as_array_get_length (format->tab_stops) > 0)
- {
- string = g_string_append (string, "<TEXTFORMAT");
- if (format->left_margin) {
- g_string_append_printf (string, " LEFTMARGIN=\"%i\"",
- format->left_margin);
- }
- if (format->right_margin) {
- g_string_append_printf (string, " RIGHTMARGIN=\"%i\"",
- format->right_margin);
- }
- if (format->indent)
- g_string_append_printf (string, " INDENT=\"%i\"", format->indent);
- if (format->leading)
- g_string_append_printf (string, " LEADING=\"%i\"", format->leading);
- if (format->block_indent) {
- g_string_append_printf (string, " BLOCKINDENT=\"%i\"",
- format->block_indent);
- }
- if (swfdec_as_array_get_length (format->tab_stops) > 0) {
- SwfdecAsValue val;
- SWFDEC_AS_VALUE_SET_OBJECT (&val, SWFDEC_AS_OBJECT (format->tab_stops));
- g_string_append_printf (string, " TABSTOPS=\"%s\"",
- swfdec_as_value_to_string (SWFDEC_AS_OBJECT
- (format->tab_stops)->context, &val));
- }
- string = g_string_append (string, ">");
-
- textformat = TRUE;
- }
- else
- {
- textformat = FALSE;
- }
-
- if (format->bullet) {
- string = g_string_append (string, "<LI>");
- bullet = TRUE;
- } else {
- g_string_append_printf (string, "<P ALIGN=\"%s\">",
- align_to_string (format->align));
- bullet = FALSE;
- }
-
- // note we don't escape format->font, even thought it can have evil chars
- g_string_append_printf (string, "<FONT FACE=\"%s\" SIZE=\"%i\" COLOR=\"#%06X\" LETTERSPACING=\"%i\" KERNING=\"%i\">",
- format->font, format->size, format->color, (int)format->letter_spacing,
- (format->kerning ? 1 : 0));
- fonts = g_slist_prepend (NULL, format);
-
- if (format->url != SWFDEC_AS_STR_EMPTY)
- g_string_append_printf (string, "<A HREF=\"%s\" TARGET=\"%s\">",
- format->url, format->target);
- if (format->bold)
- string = g_string_append (string, "<B>");
- if (format->italic)
- string = g_string_append (string, "<I>");
- if (format->underline)
- string = g_string_append (string, "<U>");
-
- // special case: use <= instead of < to add some extra markup
- for (iter = iter->next;
- iter != NULL && ((SwfdecFormatIndex *)(iter->data))->index <= end_index;
- iter = iter->next)
- {
- index_prev = index_;
- format_prev = format;
- index_ = ((SwfdecFormatIndex *)(iter->data))->index;
- format = ((SwfdecFormatIndex *)(iter->data))->format;
-
- escaped = swfdec_xml_escape_len (text->text_display + index_prev,
- index_ - index_prev);
- string = g_string_append (string, escaped);
- g_free (escaped);
- escaped = NULL;
-
- // Figure out what tags need to be rewritten
- if (format->font != format_prev->font ||
- format->size != format_prev->size ||
- format->color != format_prev->color ||
- (int)format->letter_spacing != (int)format_prev->letter_spacing ||
- format->kerning != format_prev->kerning) {
- font = TRUE;
- } else if (format->url == format_prev->url &&
- format->target == format_prev->target &&
- format->bold == format_prev->bold &&
- format->italic == format_prev->italic &&
- format->underline == format_prev->underline) {
- continue;
- }
-
- // Close tags
- for (iter_font = fonts; iter_font != NULL; iter_font = iter_font->next)
- {
- format_font = (SwfdecTextFormat *)iter_font->data;
- if (format->font == format_font->font &&
- format->size == format_font->size &&
- format->color == format_font->color &&
- (int)format->letter_spacing == (int)format_font->letter_spacing &&
- format->kerning == format_font->kerning) {
- break;
- }
- }
- if (iter_font != NULL) {
- while (fonts != iter_font) {
- string = g_string_append (string, "</FONT>");
- fonts = g_slist_remove (fonts, fonts->data);
- }
- }
- if (format_prev->underline)
- string = g_string_append (string, "</U>");
- if (format_prev->italic)
- string = g_string_append (string, "</I>");
- if (format_prev->bold)
- string = g_string_append (string, "</B>");
- if (format_prev->url != SWFDEC_AS_STR_EMPTY)
- string = g_string_append (string, "</A>");
-
- // Open tags
- format_font = (SwfdecTextFormat *)fonts->data;
- if (font && (format->font != format_font->font ||
- format->size != format_font->size ||
- format->color != format_font->color ||
- (int)format->letter_spacing != (int)format_font->letter_spacing ||
- format->kerning != format_font->kerning))
- {
- fonts = g_slist_prepend (fonts, format);
-
- string = g_string_append (string, "<FONT");
- // note we don't escape format->font, even thought it can have evil chars
- if (format->font != format_font->font)
- g_string_append_printf (string, " FACE=\"%s\"", format->font);
- if (format->size != format_font->size)
- g_string_append_printf (string, " SIZE=\"%i\"", format->size);
- if (format->color != format_font->color)
- g_string_append_printf (string, " COLOR=\"#%06X\"", format->color);
- if ((int)format->letter_spacing != (int)format_font->letter_spacing) {
- g_string_append_printf (string, " LETTERSPACING=\"%i\"",
- (int)format->letter_spacing);
- }
- if (format->kerning != format_font->kerning) {
- g_string_append_printf (string, " KERNING=\"%i\"",
- (format->kerning ? 1 : 0));
- }
- string = g_string_append (string, ">");
- }
- if (format->url != SWFDEC_AS_STR_EMPTY) {
- g_string_append_printf (string, "<A HREF=\"%s\" TARGET=\"%s\">",
- format->url, format->target);
- }
- if (format->bold)
- string = g_string_append (string, "<B>");
- if (format->italic)
- string = g_string_append (string, "<I>");
- if (format->underline)
- string = g_string_append (string, "<U>");
- }
-
- escaped = swfdec_xml_escape_len (text->text_display + index_,
- end_index - index_);
- string = g_string_append (string, escaped);
- g_free (escaped);
-
- if (format->underline)
- string = g_string_append (string, "</U>");
- if (format->italic)
- string = g_string_append (string, "</I>");
- if (format->bold)
- string = g_string_append (string, "</B>");
- if (format->url != SWFDEC_AS_STR_EMPTY)
- string = g_string_append (string, "</A>");
- for (iter = fonts; iter != NULL; iter = iter->next)
- string = g_string_append (string, "</FONT>");
- g_slist_free (fonts);
- if (bullet) {
- string = g_string_append (string, "</LI>");
- } else {
- string = g_string_append (string, "</P>");
- }
- if (textformat)
- string = g_string_append (string, "</TEXTFORMAT>");
-
- return string;
-}
-
-static void
-swfdec_text_field_movie_get_htmlText (SwfdecAsContext *cx,
- SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
- SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
- const char *p, *end;
- GString *string;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
-
- if (text->text->html == FALSE) {
- swfdec_text_field_movie_get_text (cx, object, argc, argv, ret);
- return;
- }
-
- if (text->text_display == NULL) {
- SWFDEC_AS_VALUE_SET_STRING (ret, SWFDEC_AS_STR_EMPTY);
- return;
- }
-
- string = g_string_new ("");
-
- p = text->text_display;
- while (*p != '\0') {
- end = strchr (p, '\r');
- if (end == NULL)
- end = strchr (p, '\0');
-
- string = swfdec_text_field_movie_htmlText_append_paragraph (text, string,
- p - text->text_display, end - text->text_display);
-
- if (*end == '\r') {
- p = end + 1;
- } else {
- p = end;
- }
- }
-
- SWFDEC_AS_VALUE_SET_STRING (ret,
- swfdec_as_context_give_string (cx, g_string_free (string, FALSE)));
-}
-
-static void
-swfdec_text_field_movie_set_htmlText (SwfdecAsContext *cx,
- SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
- SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
- const char *value;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "s", &value);
-
- swfdec_text_field_movie_set_text (text, value, text->text->html);
-}
-
-static void
-swfdec_text_field_movie_get_html (SwfdecAsContext *cx, SwfdecAsObject *object,
- guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
-
- SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->html);
-}
-
-static void
-swfdec_text_field_movie_set_html (SwfdecAsContext *cx, SwfdecAsObject *object,
- guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
- gboolean value;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
-
- text->text->html = value;
-}
-
-static void
-swfdec_text_field_movie_get_condenseWhite (SwfdecAsContext *cx,
- SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
- SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
-
- SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->condense_white);
-}
-
-static void
-swfdec_text_field_movie_set_condenseWhite (SwfdecAsContext *cx,
- SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
- SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
- gboolean value;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
-
- text->condense_white = value;
-}
-
-static void
-swfdec_text_field_movie_get_embedFonts (SwfdecAsContext *cx,
- SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
- SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
-
- SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->embed_fonts);
-}
-
-static void
-swfdec_text_field_movie_set_embedFonts (SwfdecAsContext *cx,
- SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
- SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
- gboolean value;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
-
- text->text->embed_fonts = value;
-}
-
-static void
-swfdec_text_field_movie_get_length (SwfdecAsContext *cx, SwfdecAsObject *object,
- guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
-
- SWFDEC_AS_VALUE_SET_INT (ret, strlen (text->text_display));
-}
-
-static void
-swfdec_text_field_movie_get_textColor (SwfdecAsContext *cx,
- SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
- SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
-
- swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (text->format_new),
- SWFDEC_AS_STR_color, ret);
-}
-
-static void
-swfdec_text_field_movie_set_textColor (SwfdecAsContext *cx,
- SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
- SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
-
- if (argc < 1)
- return;
-
- swfdec_as_object_set_variable (SWFDEC_AS_OBJECT (text->format_new),
- SWFDEC_AS_STR_color, &argv[0]);
-}
-
-SWFDEC_AS_NATIVE (104, 104, swfdec_text_field_movie_getNewTextFormat)
-void
-swfdec_text_field_movie_getNewTextFormat (SwfdecAsContext *cx,
- SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
- SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
-
- SWFDEC_AS_VALUE_SET_OBJECT (ret,
- SWFDEC_AS_OBJECT (swfdec_text_format_copy (text->format_new)));
-}
-
-SWFDEC_AS_NATIVE (104, 105, swfdec_text_field_movie_setNewTextFormat)
-void
-swfdec_text_field_movie_setNewTextFormat (SwfdecAsContext *cx,
- SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
- SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
- SwfdecAsObject *obj;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "o", &obj);
-
- if (!SWFDEC_IS_TEXT_FORMAT (obj))
- return;
-
- text->format_new = swfdec_text_format_copy (SWFDEC_TEXT_FORMAT (obj));
-}
-
-SWFDEC_AS_NATIVE (104, 102, swfdec_text_field_movie_setTextFormat)
-void
-swfdec_text_field_movie_setTextFormat (SwfdecAsContext *cx,
- SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
- SwfdecAsValue *ret)
-{
- SwfdecTextFieldMovie *text;
- SwfdecTextFormat *format;
- guint start_index, end_index;
- int i;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
-
- if (argc < 1)
- return;
-
- i = 0;
- if (argc >= 2) {
- start_index = swfdec_as_value_to_integer (cx, &argv[i++]);
- start_index = MIN (start_index, strlen (text->text_display));
- } else {
- start_index = 0;
- }
- if (argc >= 3) {
- end_index = swfdec_as_value_to_integer (cx, &argv[i++]);
- end_index = CLAMP (end_index, start_index, strlen (text->text_display));
- } else {
- end_index = strlen (text->text_display);
- }
- if (start_index == end_index)
- return;
-
- if (!SWFDEC_AS_VALUE_IS_OBJECT (&argv[i]))
- return;
- if (!SWFDEC_IS_TEXT_FORMAT (SWFDEC_AS_VALUE_GET_OBJECT (&argv[i])))
- return;
-
- format = SWFDEC_TEXT_FORMAT (SWFDEC_AS_VALUE_GET_OBJECT (&argv[i]));
-
- swfdec_text_field_movie_set_text_format (text, format, start_index, end_index);
-}
-
-SWFDEC_AS_NATIVE (104, 200, swfdec_text_field_movie_createTextField)
-void
-swfdec_text_field_movie_createTextField (SwfdecAsContext *cx,
- SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
- SwfdecAsValue *rval)
-{
- SwfdecMovie *movie, *parent;
- SwfdecTextField *edittext;
- int depth, x, y, width, height;
- const char *name;
- SwfdecAsFunction *fun;
- SwfdecAsValue val;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_MOVIE, (gpointer)&parent, "siiiii", &name, &depth, &x, &y, &width, &height);
-
- edittext = g_object_new (SWFDEC_TYPE_TEXT_FIELD, NULL);
- edittext->html = FALSE;
- edittext->input = FALSE;
- edittext->password = FALSE;
- edittext->selectable = TRUE;
- edittext->font = NULL; // FIXME
- edittext->wrap = FALSE;
- edittext->multiline = FALSE;
- edittext->auto_size = SWFDEC_AUTO_SIZE_NONE;
- edittext->border = FALSE;
- edittext->size = 240; // FIXME: Correct?
-
- edittext->text_input = NULL;
- edittext->variable = NULL;
- edittext->color = 0;
- edittext->align = SWFDEC_TEXT_ALIGN_LEFT;
- edittext->left_margin = 0;
- edittext->right_margin = 0;
- edittext->indent = 0;
- edittext->leading = 0;
-
- edittext->graphic.extents.x0 = x;
- edittext->graphic.extents.x1 = x + width;
- edittext->graphic.extents.y0 = y;
- edittext->graphic.extents.y1 = y + height;
-
- movie = swfdec_movie_find (parent, depth);
- if (movie)
- swfdec_movie_remove (movie);
-
- movie = swfdec_movie_new (SWFDEC_PLAYER (cx), depth, parent,
- SWFDEC_GRAPHIC (edittext), name);
- g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (movie));
- swfdec_movie_initialize (movie);
-
- swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextField, &val);
- if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
- return;
- fun = (SwfdecAsFunction *) SWFDEC_AS_VALUE_GET_OBJECT (&val);
- if (!SWFDEC_IS_AS_FUNCTION (fun))
- return;
-
- /* set initial variables */
- if (swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (fun),
- SWFDEC_AS_STR_prototype, &val)) {
- swfdec_as_object_set_variable_and_flags (SWFDEC_AS_OBJECT (movie),
- SWFDEC_AS_STR___proto__, &val,
- SWFDEC_AS_VARIABLE_HIDDEN | SWFDEC_AS_VARIABLE_PERMANENT);
- }
- SWFDEC_AS_VALUE_SET_OBJECT (&val, SWFDEC_AS_OBJECT (fun));
- if (cx->version < 7) {
- swfdec_as_object_set_variable_and_flags (SWFDEC_AS_OBJECT (movie),
- SWFDEC_AS_STR_constructor, &val, SWFDEC_AS_VARIABLE_HIDDEN);
- }
- swfdec_as_object_set_variable_and_flags (SWFDEC_AS_OBJECT (movie),
- SWFDEC_AS_STR___constructor__, &val,
- SWFDEC_AS_VARIABLE_HIDDEN | SWFDEC_AS_VARIABLE_VERSION_6_UP);
-
- swfdec_as_function_call (fun, SWFDEC_AS_OBJECT (movie), 0, NULL, rval);
- cx->frame->construct = TRUE;
- swfdec_as_context_run (cx);
-}
-
-static void
-swfdec_text_field_movie_add_variable (SwfdecAsObject *object,
- const char *variable, SwfdecAsNative get, SwfdecAsNative set)
-{
- SwfdecAsFunction *get_func, *set_func;
-
- g_return_if_fail (SWFDEC_IS_AS_OBJECT (object));
- g_return_if_fail (variable != NULL);
- g_return_if_fail (get != NULL);
-
- get_func =
- swfdec_as_native_function_new (object->context, variable, get, 0, NULL);
- if (get_func == NULL)
- return;
-
- if (set != NULL) {
- set_func =
- swfdec_as_native_function_new (object->context, variable, set, 0, NULL);
- } else {
- set_func = NULL;
- }
-
- swfdec_as_object_add_variable (object, variable, get_func, set_func, 0);
-}
-
-SWFDEC_AS_CONSTRUCTOR (104, 0, swfdec_text_field_movie_construct, swfdec_text_field_movie_get_type)
-void
-swfdec_text_field_movie_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
- guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
-{
- if (!cx->frame->construct) {
- SwfdecAsValue val;
- if (!swfdec_as_context_use_mem (cx, sizeof (SwfdecTextFieldMovie)))
- return;
- object = g_object_new (SWFDEC_TYPE_TEXT_FIELD_MOVIE, NULL);
- swfdec_as_object_add (object, cx, sizeof (SwfdecTextFieldMovie));
- swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextField, &val);
- if (SWFDEC_AS_VALUE_IS_OBJECT (&val)) {
- swfdec_as_object_set_constructor (object,
- SWFDEC_AS_VALUE_GET_OBJECT (&val));
- } else {
- SWFDEC_INFO ("\"TextField\" is not an object");
- }
- }
-
- g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (object));
-
- if (!SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized) {
- SwfdecAsValue val;
- SwfdecAsObject *proto;
-
- swfdec_as_object_get_variable (object, SWFDEC_AS_STR___proto__, &val);
- g_return_if_fail (SWFDEC_AS_VALUE_IS_OBJECT (&val));
- proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
-
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_text,
- swfdec_text_field_movie_get_text, swfdec_text_field_movie_do_set_text);
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_htmlText,
- swfdec_text_field_movie_get_htmlText,
- swfdec_text_field_movie_set_htmlText);
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_html,
- swfdec_text_field_movie_get_html, swfdec_text_field_movie_set_html);
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_condenseWhite,
- swfdec_text_field_movie_get_condenseWhite,
- swfdec_text_field_movie_set_condenseWhite);
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_embedFonts,
- swfdec_text_field_movie_get_embedFonts,
- swfdec_text_field_movie_set_embedFonts);
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_length,
- swfdec_text_field_movie_get_length, NULL);
- swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
- swfdec_text_field_movie_get_textColor,
- swfdec_text_field_movie_set_textColor);
-
- SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized = TRUE;
- }
-
- SWFDEC_AS_VALUE_SET_OBJECT (ret, object);
-}
diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
new file mode 100644
index 0000000..7905673
--- /dev/null
+++ b/libswfdec/swfdec_text_field.c
@@ -0,0 +1,334 @@
+/* Swfdec
+ * Copyright (C) 2006-2007 Benjamin Otte <otte at gnome.org>
+ * Pekka Lampila <pekka.lampila at iki.fi>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <pango/pangocairo.h>
+#include <string.h>
+#include "swfdec_edittext.h"
+#include "swfdec_debug.h"
+#include "swfdec_edittext_movie.h"
+#include "swfdec_font.h"
+#include "swfdec_player_internal.h"
+#include "swfdec_swf_decoder.h"
+
+G_DEFINE_TYPE (SwfdecTextField, swfdec_text_field, SWFDEC_TYPE_GRAPHIC)
+
+static gboolean
+swfdec_text_field_mouse_in (SwfdecGraphic *graphic, double x, double y)
+{
+ return swfdec_rect_contains (&graphic->extents, x, y);
+}
+
+static SwfdecMovie *
+swfdec_text_field_create_movie (SwfdecGraphic *graphic, gsize *size)
+{
+ SwfdecTextField *text = SWFDEC_TEXT_FIELD (graphic);
+ SwfdecTextFieldMovie *ret = g_object_new (SWFDEC_TYPE_TEXT_FIELD_MOVIE, NULL);
+
+ ret->text = text;
+
+ *size = sizeof (SwfdecTextFieldMovie);
+
+ return SWFDEC_MOVIE (ret);
+}
+
+static void
+swfdec_text_field_dispose (GObject *object)
+{
+ SwfdecTextField *text = SWFDEC_TEXT_FIELD (object);
+
+ g_free (text->text_input);
+ text->text_input = NULL;
+ g_free (text->variable);
+ text->variable = NULL;
+
+ G_OBJECT_CLASS (swfdec_text_field_parent_class)->dispose (object);
+}
+
+static void
+swfdec_text_field_class_init (SwfdecTextFieldClass * g_class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (g_class);
+ SwfdecGraphicClass *graphic_class = SWFDEC_GRAPHIC_CLASS (g_class);
+
+ object_class->dispose = swfdec_text_field_dispose;
+ graphic_class->create_movie = swfdec_text_field_create_movie;
+ graphic_class->mouse_in = swfdec_text_field_mouse_in;
+}
+
+static void
+swfdec_text_field_init (SwfdecTextField * text)
+{
+ text->max_length = G_MAXUINT;
+}
+
+void
+swfdec_text_field_render (SwfdecTextField *text, cairo_t *cr,
+ const SwfdecParagraph *paragraphs, const SwfdecColorTransform *trans,
+ const SwfdecRect *inval)
+{
+ PangoLayout *layout;
+ guint i;
+
+ g_return_if_fail (SWFDEC_IS_TEXT_FIELD (text));
+ g_return_if_fail (cr != NULL);
+ g_return_if_fail (paragraphs != NULL);
+ g_return_if_fail (trans != NULL);
+ g_return_if_fail (inval != NULL);
+
+ cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
+ SWFDEC_GRAPHIC (text)->extents.y0);
+
+ layout = pango_cairo_create_layout (cr);
+
+ for (i = 0; paragraphs[i].text != NULL; i++)
+ {
+ GList *iter;
+ guint skip;
+
+ skip = 0;
+ for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
+ {
+ int height, width;
+ guint length;
+ SwfdecBlock *block;
+ PangoAttrList *attr_list;
+
+ block = (SwfdecBlock *)iter->data;
+ if (iter->next != NULL) {
+ length =
+ ((SwfdecBlock *)(iter->next->data))->index_ - block->index_;
+ } else {
+ length = paragraphs[i].text_length - block->index_;
+ }
+
+ if (skip > length) {
+ skip -= length;
+ continue;
+ }
+
+ // update position
+ cairo_rel_move_to (cr, block->left_margin + block->block_indent, 0);
+ width = SWFDEC_GRAPHIC (text)->extents.x1 -
+ SWFDEC_GRAPHIC (text)->extents.x0 - block->left_margin -
+ block->right_margin - block->block_indent;
+
+ if (block->index_ == 0 && paragraphs[i].indent < 0) {
+ cairo_rel_move_to (cr, paragraphs[i].indent / PANGO_SCALE, 0);
+ width += -paragraphs[i].indent / PANGO_SCALE;
+ }
+
+ pango_cairo_update_layout (cr, layout);
+ pango_layout_context_changed (layout);
+ pango_layout_set_width (layout, width * PANGO_SCALE);
+
+ // set paragraph styles
+ if (block->index_ == 0) {
+ pango_layout_set_indent (layout, paragraphs[i].indent);
+ // TODO: bullet
+ } else {
+ pango_layout_set_indent (layout, 0);
+ }
+
+ // set block styles
+ pango_layout_set_alignment (layout, block->align);
+ pango_layout_set_justify (layout, block->justify);
+ pango_layout_set_spacing (layout, block->leading);
+ pango_layout_set_tabs (layout, block->tab_stops);
+
+ // set text attributes
+ if (block->index_ > 0 || !swfdec_color_transform_is_identity (trans))
+ {
+ GList *iter_attrs;
+
+ attr_list = pango_attr_list_new ();
+
+ for (iter_attrs = paragraphs[i].attrs; iter_attrs != NULL;
+ iter_attrs = iter_attrs->next)
+ {
+ PangoAttribute *attr;
+
+ attr = (PangoAttribute *)iter_attrs->data;
+
+ if (attr->end_index <= block->index_ + skip)
+ continue;
+
+ attr = pango_attribute_copy (attr);
+ if (attr->klass->type == PANGO_ATTR_FOREGROUND &&
+ !swfdec_color_transform_is_identity (trans))
+ {
+ PangoColor pcolor;
+ SwfdecColor color;
+
+ pcolor = ((PangoAttrColor *)attr)->color;
+ color = SWFDEC_COLOR_COMBINE (pcolor.red >> 8, pcolor.green >> 8,
+ pcolor.blue >> 8, 255);
+ color = swfdec_color_apply_transform (color, trans);
+ pcolor.red = SWFDEC_COLOR_R (color) << 8;
+ pcolor.green = SWFDEC_COLOR_G (color) << 8;
+ pcolor.blue = SWFDEC_COLOR_B (color) << 8;
+ ((PangoAttrColor *)attr)->color = pcolor;
+ }
+ attr->start_index = (attr->start_index > block->index_ + skip ?
+ attr->start_index - (block->index_ + skip) : 0);
+ attr->end_index = attr->end_index - (block->index_ + skip);
+ pango_attr_list_insert (attr_list, attr);
+ }
+ } else {
+ attr_list = pango_attr_list_copy (paragraphs[i].attrs_list);
+ }
+ pango_layout_set_attributes (layout, attr_list);
+ pango_attr_list_unref (attr_list);
+ attr_list = NULL;
+
+ pango_layout_set_text (layout, paragraphs[i].text + block->index_ + skip,
+ paragraphs[i].text_length - block->index_ - skip);
+
+ if (iter->next != NULL)
+ {
+ PangoLayoutLine *line;
+ int line_num;
+ guint skip_new;
+
+ pango_layout_index_to_line_x (layout, length - skip, FALSE, &line_num,
+ NULL);
+ line = pango_layout_get_line_readonly (layout, line_num);
+ skip_new = line->start_index + line->length - (length - skip);
+ pango_layout_set_text (layout,
+ paragraphs[i].text + block->index_ + skip,
+ length - skip + skip_new);
+ skip = skip_new;
+ }
+ else
+ {
+ skip = 0;
+ }
+
+ pango_cairo_show_layout (cr, layout);
+
+ pango_layout_get_pixel_size (layout, NULL, &height);
+ cairo_rel_move_to (cr, -(block->left_margin + block->block_indent),
+ height + block->leading / PANGO_SCALE);
+ if (block->index_ == 0 && paragraphs[i].indent < 0)
+ cairo_rel_move_to (cr, -paragraphs[i].indent / PANGO_SCALE, 0);
+ }
+ }
+
+ g_object_unref (layout);
+}
+
+int
+tag_func_define_edit_text (SwfdecSwfDecoder * s, guint tag)
+{
+ SwfdecTextField *text;
+ guint id;
+ int reserved;
+ gboolean has_font, has_color, has_max_length, has_layout, has_text;
+ SwfdecBits *b = &s->b;
+
+ id = swfdec_bits_get_u16 (b);
+ SWFDEC_LOG (" id = %u", id);
+ text = swfdec_swf_decoder_create_character (s, id, SWFDEC_TYPE_TEXT_FIELD);
+ if (text == NULL)
+ return SWFDEC_STATUS_OK;
+
+ swfdec_bits_get_rect (b, &SWFDEC_GRAPHIC (text)->extents);
+ SWFDEC_LOG (" extents: %g %g %g %g",
+ SWFDEC_GRAPHIC (text)->extents.x0, SWFDEC_GRAPHIC (text)->extents.y0,
+ SWFDEC_GRAPHIC (text)->extents.x1, SWFDEC_GRAPHIC (text)->extents.y1);
+ swfdec_bits_syncbits (b);
+ has_text = swfdec_bits_getbit (b);
+ text->wrap = swfdec_bits_getbit (b);
+ text->multiline = swfdec_bits_getbit (b);
+ text->password = swfdec_bits_getbit (b);
+ text->input = !swfdec_bits_getbit (b);
+ has_color = swfdec_bits_getbit (b);
+ has_max_length = swfdec_bits_getbit (b);
+ has_font = swfdec_bits_getbit (b);
+ reserved = swfdec_bits_getbit (b);
+ text->auto_size =
+ (swfdec_bits_getbit (b) ? SWFDEC_AUTO_SIZE_LEFT : SWFDEC_AUTO_SIZE_NONE);
+ has_layout = swfdec_bits_getbit (b);
+ text->selectable = !swfdec_bits_getbit (b);
+ text->border = swfdec_bits_getbit (b);
+ reserved = swfdec_bits_getbit (b);
+ text->html = swfdec_bits_getbit (b);
+ text->embed_fonts = swfdec_bits_getbit (b);
+ if (has_font) {
+ SwfdecCharacter *font;
+
+ id = swfdec_bits_get_u16 (b);
+ font = swfdec_swf_decoder_get_character (s, id);
+ if (SWFDEC_IS_FONT (font)) {
+ SWFDEC_LOG (" font = %u", id);
+ text->font = SWFDEC_FONT (font);
+ } else {
+ SWFDEC_ERROR ("id %u does not specify a font", id);
+ }
+ text->size = swfdec_bits_get_u16 (b);
+ SWFDEC_LOG (" size = %u", text->size);
+ }
+ if (has_color) {
+ text->color = swfdec_bits_get_rgba (b);
+ SWFDEC_LOG (" color = %u", text->color);
+ } else {
+ SWFDEC_WARNING ("FIXME: figure out default color");
+ text->color = SWFDEC_COLOR_COMBINE (255, 255, 255, 255);
+ }
+ if (has_max_length) {
+ text->max_length = swfdec_bits_get_u16 (b);
+ }
+ if (has_layout) {
+ guint align = swfdec_bits_get_u8 (b);
+ switch (align) {
+ case 0:
+ text->align = SWFDEC_TEXT_ALIGN_LEFT;
+ break;
+ case 1:
+ text->align = SWFDEC_TEXT_ALIGN_RIGHT;
+ break;
+ case 2:
+ text->align = SWFDEC_TEXT_ALIGN_CENTER;
+ break;
+ case 3:
+ text->align = SWFDEC_TEXT_ALIGN_JUSTIFY;
+ break;
+ default:
+ SWFDEC_ERROR ("undefined align value %u", align);
+ break;
+ }
+ text->left_margin = swfdec_bits_get_u16 (b);
+ text->right_margin = swfdec_bits_get_u16 (b);
+ text->indent = swfdec_bits_get_u16 (b);
+ text->leading = swfdec_bits_get_s16 (b);
+ }
+ text->variable = swfdec_bits_get_string (b);
+ if (text->variable && *text->variable == 0) {
+ g_free (text->variable);
+ text->variable = NULL;
+ }
+ if (has_text)
+ text->text_input = swfdec_bits_get_string (b);
+
+ return SWFDEC_STATUS_OK;
+}
diff --git a/libswfdec/swfdec_text_field.h b/libswfdec/swfdec_text_field.h
new file mode 100644
index 0000000..aa84422
--- /dev/null
+++ b/libswfdec/swfdec_text_field.h
@@ -0,0 +1,123 @@
+/* Swfdec
+ * Copyright (C) 2006-2007 Benjamin Otte <otte at gnome.org>
+ * Pekka Lampila <pekka.lampila at iki.fi>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifndef _SWFDEC_TEXT_FIELD_H_
+#define _SWFDEC_TEXT_FIELD_H_
+
+#include <pango/pango.h>
+#include <libswfdec/swfdec_types.h>
+#include <libswfdec/swfdec_color.h>
+#include <libswfdec/swfdec_graphic.h>
+#include <libswfdec/swfdec_player.h>
+#include <libswfdec/swfdec_text_format.h>
+
+G_BEGIN_DECLS
+
+typedef struct _SwfdecTextField SwfdecTextField;
+typedef struct _SwfdecTextFieldClass SwfdecTextFieldClass;
+
+#define SWFDEC_TYPE_TEXT_FIELD (swfdec_text_field_get_type())
+#define SWFDEC_IS_TEXT_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_TEXT_FIELD))
+#define SWFDEC_IS_TEXT_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_TEXT_FIELD))
+#define SWFDEC_TEXT_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_TEXT_FIELD, SwfdecTextField))
+#define SWFDEC_TEXT_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEXT_FIELD, SwfdecTextFieldClass))
+
+typedef struct {
+ guint index_;
+
+ PangoAlignment align;
+ gboolean justify;
+ int leading;
+ int block_indent;
+ int left_margin;
+ int right_margin;
+ PangoTabArray * tab_stops;
+} SwfdecBlock;
+
+typedef struct {
+ const char *text;
+ guint text_length;
+
+ gboolean bullet;
+ int indent;
+
+ GList * blocks; // SwfdecBlock
+
+ GList * attrs; // PangoAttribute
+ PangoAttrList * attrs_list;
+} SwfdecParagraph;
+
+typedef enum {
+ SWFDEC_AUTO_SIZE_NONE,
+ SWFDEC_AUTO_SIZE_LEFT,
+ SWFDEC_AUTO_SIZE_CENTER,
+ SWFDEC_AUTO_SIZE_RIGHT
+} SwfdecAutoSize;
+
+struct _SwfdecTextField
+{
+ SwfdecGraphic graphic;
+
+ gboolean html;
+
+ gboolean input;
+ gboolean password;
+ guint max_length;
+ gboolean selectable;
+
+ gboolean embed_fonts;
+
+ gboolean wrap;
+ gboolean multiline;
+ SwfdecAutoSize auto_size;
+
+ gboolean border;
+
+ /* only to be passed to the movie object */
+ SwfdecFont * font;
+ char * text_input;
+ char * variable;
+ guint size;
+ SwfdecColor color;
+ SwfdecTextAlign align;
+ guint left_margin;
+ guint right_margin;
+ guint indent;
+ int leading;
+};
+
+struct _SwfdecTextFieldClass
+{
+ SwfdecGraphicClass graphic_class;
+};
+
+GType swfdec_text_field_get_type (void);
+
+int tag_func_define_edit_text (SwfdecSwfDecoder * s,
+ guint tag);
+
+void swfdec_text_field_render (SwfdecTextField * text,
+ cairo_t * cr,
+ const SwfdecParagraph * paragraphs,
+ const SwfdecColorTransform * trans,
+ const SwfdecRect * rect);
+
+G_END_DECLS
+#endif
diff --git a/libswfdec/swfdec_text_field_movie.c b/libswfdec/swfdec_text_field_movie.c
new file mode 100644
index 0000000..dd79e9a
--- /dev/null
+++ b/libswfdec/swfdec_text_field_movie.c
@@ -0,0 +1,619 @@
+/* Swfdec
+ * Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
+ * Pekka Lampila <pekka.lampila at iki.fi>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+
+#include "swfdec_edittext_movie.h"
+#include "swfdec_as_context.h"
+#include "swfdec_as_strings.h"
+#include "swfdec_text_format.h"
+#include "swfdec_font.h"
+#include "swfdec_debug.h"
+#include "swfdec_player_internal.h"
+
+G_DEFINE_TYPE (SwfdecTextFieldMovie, swfdec_text_field_movie, SWFDEC_TYPE_MOVIE)
+
+static void
+swfdec_text_field_movie_update_extents (SwfdecMovie *movie,
+ SwfdecRect *extents)
+{
+ swfdec_rect_union (extents, extents,
+ &SWFDEC_GRAPHIC (SWFDEC_TEXT_FIELD_MOVIE (movie)->text)->extents);
+}
+
+static void
+swfdec_text_paragraph_add_attribute (SwfdecParagraph *paragraph,
+ PangoAttribute *attr)
+{
+ paragraph->attrs = g_list_append (paragraph->attrs,
+ pango_attribute_copy (attr));
+ pango_attr_list_insert (paragraph->attrs_list, attr);
+}
+
+static void
+swfdec_text_paragraph_add_block_attributes (SwfdecParagraph *paragraph,
+ int index_, SwfdecTextFormat *format)
+{
+ gint32 length, i;
+ SwfdecBlock *block;
+ SwfdecAsValue val;
+
+ block = g_new0 (SwfdecBlock, 1);
+
+ block->index_ = index_;
+
+ switch (format->align) {
+ case SWFDEC_TEXT_ALIGN_LEFT:
+ block->align = PANGO_ALIGN_LEFT;
+ block->justify = FALSE;
+ break;
+ case SWFDEC_TEXT_ALIGN_RIGHT:
+ block->align = PANGO_ALIGN_RIGHT;
+ block->justify = FALSE;
+ break;
+ case SWFDEC_TEXT_ALIGN_CENTER:
+ block->align = PANGO_ALIGN_CENTER;
+ block->justify = FALSE;
+ break;
+ case SWFDEC_TEXT_ALIGN_JUSTIFY:
+ block->align = PANGO_ALIGN_LEFT;
+ block->justify = TRUE;
+ break;
+ }
+ block->leading = format->leading * 20 * PANGO_SCALE;
+ block->block_indent = format->block_indent * 20;
+ block->left_margin = format->left_margin * 20;
+ block->right_margin = format->right_margin * 20;
+
+ length = swfdec_as_array_get_length (format->tab_stops);
+ block->tab_stops = pango_tab_array_new (length, TRUE);
+ for (i = 0; i < length; i++) {
+ swfdec_as_array_get_value (format->tab_stops, i, &val);
+ g_assert (SWFDEC_AS_VALUE_IS_NUMBER (&val));
+ pango_tab_array_set_tab (block->tab_stops, i, PANGO_TAB_LEFT,
+ SWFDEC_AS_VALUE_GET_NUMBER (&val) * 20);
+ }
+
+ paragraph->blocks = g_list_append (paragraph->blocks, block);
+}
+
+static void
+swfdec_text_field_movie_generate_paragraph (SwfdecTextFieldMovie *text,
+ SwfdecParagraph *paragraph, guint start_index, guint end_index)
+{
+ SwfdecTextFormat *format, *format_prev;
+ guint index_;
+ GSList *iter;
+ PangoAttribute *attr_bold, *attr_color, *attr_font, *attr_italic,
+ *attr_letter_spacing, *attr_size, *attr_underline;
+ // TODO: kerning
+
+ g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+ g_assert (paragraph != NULL);
+ g_assert (start_index < end_index);
+ g_assert (end_index <= strlen (text->text_display));
+
+ paragraph->text = text->text_display + start_index;
+ paragraph->text_length = end_index - start_index;
+
+ paragraph->blocks = NULL;
+ paragraph->attrs = NULL;
+ paragraph->attrs_list = pango_attr_list_new ();
+
+ g_assert (text->formats != NULL);
+ for (iter = text->formats; iter->next != NULL &&
+ ((SwfdecFormatIndex *)(iter->next->data))->index <= start_index;
+ iter = iter->next);
+
+ index_ = start_index;
+ format = ((SwfdecFormatIndex *)(iter->data))->format;
+
+ // Paragraph formats
+ paragraph->bullet = format->bullet;
+ paragraph->indent = format->indent * 20 * PANGO_SCALE;
+
+ // Add new block
+ swfdec_text_paragraph_add_block_attributes (paragraph, 0, format);
+
+ // Open attributes
+ attr_bold = pango_attr_weight_new (
+ (format->bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL));
+ attr_bold->start_index = 0;
+
+ attr_color = pango_attr_foreground_new (SWFDEC_COLOR_R (format->color) * 255,
+ SWFDEC_COLOR_G (format->color) * 255,
+ SWFDEC_COLOR_B (format->color) * 255);
+ attr_color->start_index = 0;
+
+ if (text->text->embed_fonts)
+ SWFDEC_FIXME ("Using embed fonts in TextField not supported");
+ attr_font = pango_attr_family_new (format->font);
+ attr_font->start_index = 0;
+
+ attr_italic = pango_attr_style_new (
+ (format->italic ? PANGO_STYLE_ITALIC : PANGO_STYLE_NORMAL));
+ attr_italic->start_index = 0;
+
+ attr_letter_spacing = pango_attr_letter_spacing_new (
+ format->letter_spacing * 20 * PANGO_SCALE); // FIXME: correct scaling?
+ attr_letter_spacing->start_index = 0;
+
+ attr_size =
+ pango_attr_size_new_absolute (MAX (format->size, 1) * 20 * PANGO_SCALE);
+ attr_size->start_index = 0;
+
+ attr_underline = pango_attr_underline_new (
+ (format->underline ? PANGO_UNDERLINE_SINGLE : PANGO_UNDERLINE_NONE));
+ attr_underline->start_index = 0;
+
+ for (iter = iter->next;
+ iter != NULL && ((SwfdecFormatIndex *)(iter->data))->index < end_index;
+ iter = iter->next)
+ {
+ format_prev = format;
+ index_ = ((SwfdecFormatIndex *)(iter->data))->index;
+ format = ((SwfdecFormatIndex *)(iter->data))->format;
+
+ // Add new block if necessary
+ if (format_prev->align != format->align ||
+ format_prev->bullet != format->bullet ||
+ format_prev->indent != format->indent ||
+ format_prev->leading != format->leading ||
+ format_prev->block_indent != format->block_indent ||
+ format_prev->left_margin != format->left_margin)
+ {
+ swfdec_text_paragraph_add_block_attributes (paragraph,
+ index_ - start_index, format);
+ }
+
+ // Change attributes if necessary
+ if (format_prev->bold != format->bold) {
+ attr_bold->end_index = index_ - start_index;
+ swfdec_text_paragraph_add_attribute (paragraph, attr_bold);
+
+ attr_bold = pango_attr_weight_new (
+ (format->bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL));
+ attr_bold->start_index = index_ - start_index;
+ }
+
+ if (format_prev->color != format->color) {
+ attr_color->end_index = index_ - start_index;
+ swfdec_text_paragraph_add_attribute (paragraph, attr_color);
+
+ attr_color = pango_attr_foreground_new (
+ SWFDEC_COLOR_R (format->color) * 255,
+ SWFDEC_COLOR_G (format->color) * 255,
+ SWFDEC_COLOR_B (format->color) * 255);
+ attr_color->start_index = index_ - start_index;
+ }
+
+ if (format_prev->font != format->font) {
+ attr_font->end_index = index_ - start_index;
+ swfdec_text_paragraph_add_attribute (paragraph, attr_font);
+
+ if (text->text->embed_fonts)
+ SWFDEC_FIXME ("Using embed fonts in TextField not supported");
+ attr_font = pango_attr_family_new (format->font);
+ attr_font->start_index = index_ - start_index;
+ }
+
+ if (format_prev->italic != format->italic) {
+ attr_italic->end_index = index_ - start_index;
+ swfdec_text_paragraph_add_attribute (paragraph, attr_italic);
+
+ attr_italic = pango_attr_style_new (
+ (format->italic ? PANGO_STYLE_ITALIC : PANGO_STYLE_NORMAL));
+ attr_italic->start_index = index_ - start_index;
+ }
+
+ if (format_prev->letter_spacing != format->letter_spacing) {
+ attr_letter_spacing->end_index = index_ - start_index;
+ swfdec_text_paragraph_add_attribute (paragraph, attr_letter_spacing);
+
+ // FIXME: correct scaling?
+ attr_letter_spacing = pango_attr_letter_spacing_new (
+ format->letter_spacing * 20 * PANGO_SCALE);
+ attr_letter_spacing->start_index = index_ - start_index;
+ }
+
+ if (format_prev->size != format->size) {
+ attr_size->end_index = index_ - start_index;
+ swfdec_text_paragraph_add_attribute (paragraph, attr_size);
+
+ attr_size =
+ pango_attr_size_new_absolute (MAX (1, format->size) * 20 * PANGO_SCALE);
+ attr_size->start_index = index_ - start_index;
+ }
+
+ if (format_prev->underline != format->underline) {
+ attr_underline->end_index = index_ - start_index;
+ swfdec_text_paragraph_add_attribute (paragraph, attr_underline);
+
+ attr_underline = pango_attr_underline_new (
+ (format->underline ? PANGO_UNDERLINE_SINGLE : PANGO_UNDERLINE_NONE));
+ attr_underline->start_index = index_ - start_index;
+ }
+ }
+
+ // Close attributes
+ attr_bold->end_index = end_index - start_index;
+ swfdec_text_paragraph_add_attribute (paragraph, attr_bold);
+ attr_bold = NULL;
+
+ attr_color->end_index = end_index - start_index;
+ swfdec_text_paragraph_add_attribute (paragraph, attr_color);
+ attr_color = NULL;
+
+ attr_font->end_index = end_index - start_index;
+ swfdec_text_paragraph_add_attribute (paragraph, attr_font);
+ attr_font = NULL;
+
+ attr_italic->end_index = end_index - start_index;
+ swfdec_text_paragraph_add_attribute (paragraph, attr_italic);
+ attr_italic = NULL;
+
+ attr_letter_spacing->end_index = end_index - start_index;
+ swfdec_text_paragraph_add_attribute (paragraph, attr_letter_spacing);
+ attr_letter_spacing = NULL;
+
+ attr_size->end_index = end_index - start_index;
+ swfdec_text_paragraph_add_attribute (paragraph, attr_size);
+ attr_size = NULL;
+
+ attr_underline->end_index = end_index - start_index;
+ swfdec_text_paragraph_add_attribute (paragraph, attr_underline);
+ attr_underline = NULL;
+}
+
+static void
+swfdec_text_field_movie_generate_paragraphs (SwfdecTextFieldMovie *text)
+{
+ const char *p, *end;
+ int num, i;
+
+ g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+
+ num = 0;
+ p = text->text_display;
+ while (p != NULL) {
+ num++;
+ p = strchr (p, '\r');
+ if (p != NULL) p++;
+ }
+
+ text->paragraphs = g_new0 (SwfdecParagraph, num + 1);
+
+ i = 0;
+ p = text->text_display;
+ while (*p != '\0') {
+ g_assert (i < num);
+ end = strchr (p, '\r');
+ if (end == NULL)
+ end = strchr (p, '\0');
+
+ swfdec_text_field_movie_generate_paragraph (text, &text->paragraphs[i],
+ p - text->text_display, end - text->text_display);
+
+ p = end;
+ if (*p == '\r') p++;
+
+ i++;
+ }
+ g_assert (i == num);
+}
+
+static void
+swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
+ const SwfdecColorTransform *trans, const SwfdecRect *inval)
+{
+ SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+
+ if (text->paragraphs == NULL)
+ swfdec_text_field_movie_generate_paragraphs (text);
+
+ if (text->paragraphs[0].text == NULL)
+ return;
+ swfdec_text_field_render (text->text, cr, text->paragraphs, trans, inval);
+}
+
+static void
+swfdec_text_field_movie_free_paragraphs (SwfdecTextFieldMovie *text)
+{
+ GList *iter;
+ int i;
+
+ if (text->paragraphs) {
+ for (i = 0; text->paragraphs[i].text != NULL; i++)
+ {
+ for (iter = text->paragraphs[i].blocks; iter != NULL; iter = iter->next) {
+ pango_tab_array_free (((SwfdecBlock *)(iter->data))->tab_stops);
+ }
+ g_list_free (text->paragraphs[i].blocks);
+
+ for (iter = text->paragraphs[i].attrs; iter != NULL; iter = iter->next) {
+ pango_attribute_destroy ((PangoAttribute *)(iter->data));
+ }
+ g_list_free (text->paragraphs[i].attrs);
+
+ if (text->paragraphs[i].attrs_list != NULL)
+ pango_attr_list_unref (text->paragraphs[i].attrs_list);
+ }
+ g_free (text->paragraphs);
+ text->paragraphs = NULL;
+ }
+}
+
+void
+swfdec_text_field_movie_format_changed (SwfdecTextFieldMovie *text)
+{
+ swfdec_text_field_movie_free_paragraphs (text);
+}
+
+static void
+swfdec_text_field_movie_dispose (GObject *object)
+{
+ SwfdecTextFieldMovie *text;
+ GSList *iter;
+
+ text = SWFDEC_TEXT_FIELD_MOVIE (object);
+
+ swfdec_text_field_movie_free_paragraphs (text);
+
+ for (iter = text->formats; iter != NULL; iter = iter->next) {
+ g_free (text->formats->data);
+ text->formats->data = NULL;
+ }
+ g_slist_free (text->formats);
+
+ G_OBJECT_CLASS (swfdec_text_field_movie_parent_class)->dispose (object);
+}
+
+static void
+swfdec_text_field_movie_mark (SwfdecAsObject *object)
+{
+ SwfdecTextFieldMovie *text;
+ GSList *iter;
+
+ text = SWFDEC_TEXT_FIELD_MOVIE (object);
+
+ swfdec_as_string_mark (text->text_input);
+ swfdec_as_string_mark (text->text_display);
+ swfdec_as_string_mark (text->variable);
+ swfdec_as_object_mark (SWFDEC_AS_OBJECT (text->format_new));
+ for (iter = text->formats; iter != NULL; iter = iter->next) {
+ swfdec_as_object_mark (
+ SWFDEC_AS_OBJECT (((SwfdecFormatIndex *)(iter->data))->format));
+ }
+ swfdec_as_object_mark (SWFDEC_AS_OBJECT (text->format_new));
+ if (text->style_sheet != NULL)
+ swfdec_as_object_mark (SWFDEC_AS_OBJECT (text->style_sheet));
+
+ SWFDEC_AS_OBJECT_CLASS (swfdec_text_field_movie_parent_class)->mark (object);
+}
+
+static void
+swfdec_text_field_movie_iterate (SwfdecMovie *movie)
+{
+ SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+ SwfdecAsObject *parent;
+ const char *s;
+ SwfdecAsValue val = { 0, };
+
+ if (text->text->variable == NULL)
+ return;
+
+ parent = SWFDEC_AS_OBJECT (movie->parent);
+ swfdec_as_context_eval (parent->context, parent, text->text->variable, &val);
+ if (SWFDEC_AS_VALUE_IS_UNDEFINED (&val))
+ return;
+
+ s = swfdec_as_value_to_string (parent->context, &val);
+ g_assert (s);
+ if (text->text_input == s)
+ return;
+
+ swfdec_text_field_movie_set_text (text, s, text->text->html);
+}
+
+static void
+swfdec_text_field_movie_init_movie (SwfdecMovie *movie)
+{
+ SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
+ SwfdecAsContext *cx;
+ SwfdecAsObject *parent;
+ SwfdecAsValue val = { 0, };
+ const char *s;
+
+ cx = SWFDEC_AS_OBJECT (movie)->context;
+
+ // format
+ text->format_new = SWFDEC_TEXT_FORMAT (swfdec_text_format_new (cx));
+ swfdec_text_format_set_defaults (text->format_new);
+ text->format_new->color = text->text->color;
+ text->format_new->align = text->text->align;
+ text->format_new->font = text->text->font->name;
+ text->format_new->size = text->text->size / 20;
+ text->format_new->left_margin = text->text->left_margin / 20;
+ text->format_new->right_margin = text->text->right_margin / 20;
+ text->format_new->indent = text->text->indent / 20;
+ text->format_new->leading = text->text->leading / 20;
+
+ // text
+ if (text->text->text_input != NULL) {
+ swfdec_text_field_movie_set_text (text,
+ swfdec_as_context_get_string (cx, text->text->text_input),
+ text->text->html);
+ }
+
+ // variable
+ if (text->text->variable != NULL)
+ {
+ text->variable = swfdec_as_context_get_string (cx, text->text->variable);
+
+ parent = SWFDEC_AS_OBJECT (movie->parent);
+ swfdec_as_context_eval (parent->context, parent, text->variable, &val);
+ if (!SWFDEC_AS_VALUE_IS_UNDEFINED (&val)) {
+ s = swfdec_as_value_to_string (parent->context, &val);
+ g_assert (s);
+ if (text->text_input != s)
+ swfdec_text_field_movie_set_text (text, s, text->text->html);
+ } else {
+ SWFDEC_LOG ("setting variable %s to \"%s\"", text->variable,
+ text->text_input ? text->text_input : "");
+ s = text->text_input ? swfdec_as_context_get_string (parent->context,
+ text->text_input) : SWFDEC_AS_STR_EMPTY;
+ SWFDEC_AS_VALUE_SET_STRING (&val, s);
+ swfdec_as_context_eval_set (parent->context, parent, text->variable,
+ &val);
+ }
+ }
+}
+
+static void
+swfdec_text_field_movie_class_init (SwfdecTextFieldMovieClass * g_class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (g_class);
+ SwfdecAsObjectClass *asobject_class = SWFDEC_AS_OBJECT_CLASS (g_class);
+ SwfdecMovieClass *movie_class = SWFDEC_MOVIE_CLASS (g_class);
+
+ object_class->dispose = swfdec_text_field_movie_dispose;
+
+ asobject_class->mark = swfdec_text_field_movie_mark;
+
+ movie_class->init_movie = swfdec_text_field_movie_init_movie;
+ movie_class->update_extents = swfdec_text_field_movie_update_extents;
+ movie_class->render = swfdec_text_field_movie_render;
+ movie_class->iterate_start = swfdec_text_field_movie_iterate;
+}
+
+static void
+swfdec_text_field_movie_init (SwfdecTextFieldMovie *text)
+{
+}
+
+void
+swfdec_text_field_movie_set_text_format (SwfdecTextFieldMovie *text,
+ SwfdecTextFormat *format, guint start_index, guint end_index)
+{
+ SwfdecFormatIndex *findex, *findex_new;
+ guint findex_end_index;
+ GSList *iter, *next;
+
+ g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+ g_return_if_fail (SWFDEC_IS_TEXT_FORMAT (format));
+ g_return_if_fail (start_index < end_index);
+ g_return_if_fail (end_index <= strlen (text->text_display));
+
+ g_assert (text->formats != NULL);
+ g_assert (text->formats->data != NULL);
+ g_assert (((SwfdecFormatIndex *)text->formats->data)->index == 0);
+ for (iter = text->formats; iter != NULL &&
+ ((SwfdecFormatIndex *)iter->data)->index < end_index;
+ iter = next)
+ {
+ next = iter->next;
+ findex = iter->data;
+ if (iter->next != NULL) {
+ findex_end_index =
+ ((SwfdecFormatIndex *)iter->next->data)->index;
+ } else {
+ findex_end_index = strlen (text->text_display);
+ }
+
+ if (findex_end_index < start_index)
+ continue;
+
+ if (findex_end_index > end_index) {
+ findex_new = g_new (SwfdecFormatIndex, 1);
+ findex_new->index = end_index;
+ findex_new->format = swfdec_text_format_copy (findex->format);
+
+ iter = g_slist_insert (iter, findex_new, 1);
+ }
+
+ if (findex->index < start_index) {
+ findex_new = g_new (SwfdecFormatIndex, 1);
+ findex_new->index = start_index;
+ findex_new->format = swfdec_text_format_copy (findex->format);
+ swfdec_text_format_add (findex_new->format, format);
+
+ iter = g_slist_insert (iter, findex_new, 1);
+ } else {
+ swfdec_text_format_add (findex->format, format);
+ }
+ }
+
+ swfdec_text_field_movie_format_changed (text);
+}
+
+void
+swfdec_text_field_movie_set_text (SwfdecTextFieldMovie *text, const char *str,
+ gboolean html)
+{
+ SwfdecFormatIndex *block;
+ GSList *iter;
+
+ g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
+
+ text->text_input = str;
+
+ // remove old formatting info
+ iter = text->formats;
+ while (iter) {
+ g_free (iter->data);
+ iter = g_slist_next (iter);
+ }
+ g_slist_free (text->formats);
+ text->formats = NULL;
+
+ // add the default style
+ if (html && SWFDEC_AS_OBJECT (text)->context->version < 8)
+ swfdec_text_format_set_defaults (text->format_new);
+ block = g_new (SwfdecFormatIndex, 1);
+ block->index = 0;
+ g_assert (SWFDEC_IS_TEXT_FORMAT (text->format_new));
+ block->format = text->format_new;
+ text->formats = g_slist_prepend (text->formats, block);
+
+ if (html) {
+ swfdec_text_field_movie_html_parse (text, str);
+ } else {
+ // change all \n to \r
+ if (strchr (str, '\n') != NULL) {
+ char *string, *p;
+
+ string = g_strdup (str);
+ p = string;
+ while ((p = strchr (p, '\n')) != NULL) {
+ *p = '\r';
+ }
+ text->text_display = swfdec_as_context_give_string (
+ SWFDEC_AS_OBJECT (text)->context, string);
+ } else {
+ text->text_display = str;
+ }
+ }
+
+ swfdec_text_field_movie_format_changed (text);
+}
diff --git a/libswfdec/swfdec_text_field_movie.h b/libswfdec/swfdec_text_field_movie.h
new file mode 100644
index 0000000..8b7999a
--- /dev/null
+++ b/libswfdec/swfdec_text_field_movie.h
@@ -0,0 +1,108 @@
+/* Swfdec
+ * Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
+ * Pekka Lampila <pekka.lampila at iki.fi>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifndef _SWFDEC_TEXT_FIELD_MOVIE_H_
+#define _SWFDEC_TEXT_FIELD_MOVIE_H_
+
+#include <libswfdec/swfdec_movie.h>
+#include <libswfdec/swfdec_edittext.h>
+#include <libswfdec/swfdec_style_sheet.h>
+#include <libswfdec/swfdec_text_format.h>
+
+G_BEGIN_DECLS
+
+
+typedef struct _SwfdecTextFieldMovie SwfdecTextFieldMovie;
+typedef struct _SwfdecTextFieldMovieClass SwfdecTextFieldMovieClass;
+
+#define SWFDEC_TYPE_TEXT_FIELD_MOVIE (swfdec_text_field_movie_get_type())
+#define SWFDEC_IS_TEXT_FIELD_MOVIE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_TEXT_FIELD_MOVIE))
+#define SWFDEC_IS_TEXT_FIELD_MOVIE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_TEXT_FIELD_MOVIE))
+#define SWFDEC_TEXT_FIELD_MOVIE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_TEXT_FIELD_MOVIE, SwfdecTextFieldMovie))
+#define SWFDEC_TEXT_FIELD_MOVIE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEXT_FIELD_MOVIE, SwfdecTextFieldMovieClass))
+
+typedef struct {
+ guint index;
+ SwfdecTextFormat * format;
+} SwfdecFormatIndex;
+
+typedef enum {
+ SWFDEC_ANTI_ALIAS_TYPE_NORMAL,
+ SWFDEC_ANTI_ALIAS_TYPE_ADVANCED
+} SwfdecAntiAliasType;
+
+typedef enum {
+ SWFDEC_GRID_FIT_TYPE_NONE,
+ SWFDEC_GRID_FIT_TYPE_PIXEL,
+ SWFDEC_GRID_FIT_TYPE_SUBPIXEL
+} SwfdecGridFitType;
+
+struct _SwfdecTextFieldMovie {
+ SwfdecMovie movie;
+
+ SwfdecTextField * text; /* the text_field object we render */
+
+ const char * text_input;
+ const char * text_display;
+
+ const char * variable;
+
+ SwfdecTextFormat * format_new;
+ GSList * formats;
+
+ SwfdecAntiAliasType anti_alias_type;
+ gboolean background_fill;
+ guint border_color;
+ gboolean condense_white;
+ gboolean embed_fonts;
+ SwfdecGridFitType grid_fit_type;
+ guint hscroll;
+ gboolean mouse_wheel_enabled;
+ const char * restrict_;
+ guint scroll;
+ int sharpness;
+ SwfdecStyleSheet * style_sheet;
+ int thickness;
+
+ /* for rendering */
+ SwfdecParagraph * paragraphs;
+};
+
+struct _SwfdecTextFieldMovieClass {
+ SwfdecMovieClass movie_class;
+};
+
+GType swfdec_text_field_movie_get_type (void);
+
+void swfdec_text_field_movie_set_text (SwfdecTextFieldMovie * movie,
+ const char * str,
+ gboolean html);
+void swfdec_text_field_movie_format_changed (SwfdecTextFieldMovie * text);
+void swfdec_text_field_movie_set_text_format (SwfdecTextFieldMovie * text,
+ SwfdecTextFormat * format,
+ guint start_index,
+ guint end_index);
+
+/* implemented in swfdec_html_parser.c */
+void swfdec_text_field_movie_html_parse (SwfdecTextFieldMovie * text,
+ const char * str);
+
+G_END_DECLS
+#endif
diff --git a/libswfdec/swfdec_text_field_movie_as.c b/libswfdec/swfdec_text_field_movie_as.c
new file mode 100644
index 0000000..c9d4cd0
--- /dev/null
+++ b/libswfdec/swfdec_text_field_movie_as.c
@@ -0,0 +1,705 @@
+/* Swfdec
+ * Copyright (C) 2007 Benjamin Otte <otte at gnome.org>
+ * Pekka Lampila <pekka.lampila at iki.fi>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+
+#include "swfdec_edittext.h"
+#include "swfdec_edittext_movie.h"
+#include "swfdec_as_strings.h"
+#include "swfdec_debug.h"
+#include "swfdec_as_native_function.h"
+#include "swfdec_as_internal.h"
+#include "swfdec_as_context.h"
+#include "swfdec_as_frame_internal.h"
+#include "swfdec_xml.h"
+#include "swfdec_internal.h"
+#include "swfdec_player_internal.h"
+
+static void
+swfdec_text_field_movie_get_text (SwfdecAsContext *cx, SwfdecAsObject *object,
+ guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+
+ SWFDEC_AS_VALUE_SET_STRING (ret, (text->text_display != NULL ?
+ swfdec_as_context_get_string (cx, text->text_display) :
+ SWFDEC_AS_STR_EMPTY));
+}
+
+static void
+swfdec_text_field_movie_do_set_text (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+ const char *value;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "s", &value);
+
+ swfdec_text_field_movie_set_text (text, value, FALSE);
+}
+
+static const char *
+align_to_string (SwfdecTextAlign align)
+{
+ switch (align) {
+ case SWFDEC_TEXT_ALIGN_LEFT:
+ return "LEFT";
+ case SWFDEC_TEXT_ALIGN_RIGHT:
+ return "RIGHT";
+ case SWFDEC_TEXT_ALIGN_CENTER:
+ return "CENTER";
+ case SWFDEC_TEXT_ALIGN_JUSTIFY:
+ return "JUSTIFY";
+ default:
+ g_assert_not_reached ();
+ }
+}
+
+/*
+ * Order of tags:
+ * TEXTFORMAT / P or LI / FONT / A / B / I / U
+ *
+ * Order of attributes:
+ * TEXTFORMAT:
+ * LEFTMARGIN / RIGHTMARGIN / INDENT / LEADING / BLOCKINDENT / TABSTOPS
+ * P: ALIGN
+ * LI: none
+ * FONT: FACE / SIZE / COLOR / LETTERSPACING / KERNING
+ * A: HREF / TARGET
+ * B: none
+ * I: none
+ * U: none
+ */
+static GString *
+swfdec_text_field_movie_htmlText_append_paragraph (SwfdecTextFieldMovie *text,
+ GString *string, guint start_index, guint end_index)
+{
+ SwfdecTextFormat *format, *format_prev, *format_font;
+ GSList *iter, *fonts, *iter_font;
+ guint index_, index_prev;
+ gboolean textformat, bullet, font;
+ char *escaped;
+
+ g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text), string);
+ g_return_val_if_fail (string != NULL, string);
+ g_return_val_if_fail (start_index < end_index, string);
+
+ g_return_val_if_fail (text->formats != NULL, string);
+ for (iter = text->formats; iter->next != NULL &&
+ ((SwfdecFormatIndex *)(iter->next->data))->index <= start_index;
+ iter = iter->next);
+
+ index_ = start_index;
+ format = ((SwfdecFormatIndex *)(iter->data))->format;
+
+ if (format->left_margin != 0 || format->right_margin != 0 ||
+ format->indent != 0 || format->leading != 0 ||
+ format->block_indent != 0 ||
+ swfdec_as_array_get_length (format->tab_stops) > 0)
+ {
+ string = g_string_append (string, "<TEXTFORMAT");
+ if (format->left_margin) {
+ g_string_append_printf (string, " LEFTMARGIN=\"%i\"",
+ format->left_margin);
+ }
+ if (format->right_margin) {
+ g_string_append_printf (string, " RIGHTMARGIN=\"%i\"",
+ format->right_margin);
+ }
+ if (format->indent)
+ g_string_append_printf (string, " INDENT=\"%i\"", format->indent);
+ if (format->leading)
+ g_string_append_printf (string, " LEADING=\"%i\"", format->leading);
+ if (format->block_indent) {
+ g_string_append_printf (string, " BLOCKINDENT=\"%i\"",
+ format->block_indent);
+ }
+ if (swfdec_as_array_get_length (format->tab_stops) > 0) {
+ SwfdecAsValue val;
+ SWFDEC_AS_VALUE_SET_OBJECT (&val, SWFDEC_AS_OBJECT (format->tab_stops));
+ g_string_append_printf (string, " TABSTOPS=\"%s\"",
+ swfdec_as_value_to_string (SWFDEC_AS_OBJECT
+ (format->tab_stops)->context, &val));
+ }
+ string = g_string_append (string, ">");
+
+ textformat = TRUE;
+ }
+ else
+ {
+ textformat = FALSE;
+ }
+
+ if (format->bullet) {
+ string = g_string_append (string, "<LI>");
+ bullet = TRUE;
+ } else {
+ g_string_append_printf (string, "<P ALIGN=\"%s\">",
+ align_to_string (format->align));
+ bullet = FALSE;
+ }
+
+ // note we don't escape format->font, even thought it can have evil chars
+ g_string_append_printf (string, "<FONT FACE=\"%s\" SIZE=\"%i\" COLOR=\"#%06X\" LETTERSPACING=\"%i\" KERNING=\"%i\">",
+ format->font, format->size, format->color, (int)format->letter_spacing,
+ (format->kerning ? 1 : 0));
+ fonts = g_slist_prepend (NULL, format);
+
+ if (format->url != SWFDEC_AS_STR_EMPTY)
+ g_string_append_printf (string, "<A HREF=\"%s\" TARGET=\"%s\">",
+ format->url, format->target);
+ if (format->bold)
+ string = g_string_append (string, "<B>");
+ if (format->italic)
+ string = g_string_append (string, "<I>");
+ if (format->underline)
+ string = g_string_append (string, "<U>");
+
+ // special case: use <= instead of < to add some extra markup
+ for (iter = iter->next;
+ iter != NULL && ((SwfdecFormatIndex *)(iter->data))->index <= end_index;
+ iter = iter->next)
+ {
+ index_prev = index_;
+ format_prev = format;
+ index_ = ((SwfdecFormatIndex *)(iter->data))->index;
+ format = ((SwfdecFormatIndex *)(iter->data))->format;
+
+ escaped = swfdec_xml_escape_len (text->text_display + index_prev,
+ index_ - index_prev);
+ string = g_string_append (string, escaped);
+ g_free (escaped);
+ escaped = NULL;
+
+ // Figure out what tags need to be rewritten
+ if (format->font != format_prev->font ||
+ format->size != format_prev->size ||
+ format->color != format_prev->color ||
+ (int)format->letter_spacing != (int)format_prev->letter_spacing ||
+ format->kerning != format_prev->kerning) {
+ font = TRUE;
+ } else if (format->url == format_prev->url &&
+ format->target == format_prev->target &&
+ format->bold == format_prev->bold &&
+ format->italic == format_prev->italic &&
+ format->underline == format_prev->underline) {
+ continue;
+ }
+
+ // Close tags
+ for (iter_font = fonts; iter_font != NULL; iter_font = iter_font->next)
+ {
+ format_font = (SwfdecTextFormat *)iter_font->data;
+ if (format->font == format_font->font &&
+ format->size == format_font->size &&
+ format->color == format_font->color &&
+ (int)format->letter_spacing == (int)format_font->letter_spacing &&
+ format->kerning == format_font->kerning) {
+ break;
+ }
+ }
+ if (iter_font != NULL) {
+ while (fonts != iter_font) {
+ string = g_string_append (string, "</FONT>");
+ fonts = g_slist_remove (fonts, fonts->data);
+ }
+ }
+ if (format_prev->underline)
+ string = g_string_append (string, "</U>");
+ if (format_prev->italic)
+ string = g_string_append (string, "</I>");
+ if (format_prev->bold)
+ string = g_string_append (string, "</B>");
+ if (format_prev->url != SWFDEC_AS_STR_EMPTY)
+ string = g_string_append (string, "</A>");
+
+ // Open tags
+ format_font = (SwfdecTextFormat *)fonts->data;
+ if (font && (format->font != format_font->font ||
+ format->size != format_font->size ||
+ format->color != format_font->color ||
+ (int)format->letter_spacing != (int)format_font->letter_spacing ||
+ format->kerning != format_font->kerning))
+ {
+ fonts = g_slist_prepend (fonts, format);
+
+ string = g_string_append (string, "<FONT");
+ // note we don't escape format->font, even thought it can have evil chars
+ if (format->font != format_font->font)
+ g_string_append_printf (string, " FACE=\"%s\"", format->font);
+ if (format->size != format_font->size)
+ g_string_append_printf (string, " SIZE=\"%i\"", format->size);
+ if (format->color != format_font->color)
+ g_string_append_printf (string, " COLOR=\"#%06X\"", format->color);
+ if ((int)format->letter_spacing != (int)format_font->letter_spacing) {
+ g_string_append_printf (string, " LETTERSPACING=\"%i\"",
+ (int)format->letter_spacing);
+ }
+ if (format->kerning != format_font->kerning) {
+ g_string_append_printf (string, " KERNING=\"%i\"",
+ (format->kerning ? 1 : 0));
+ }
+ string = g_string_append (string, ">");
+ }
+ if (format->url != SWFDEC_AS_STR_EMPTY) {
+ g_string_append_printf (string, "<A HREF=\"%s\" TARGET=\"%s\">",
+ format->url, format->target);
+ }
+ if (format->bold)
+ string = g_string_append (string, "<B>");
+ if (format->italic)
+ string = g_string_append (string, "<I>");
+ if (format->underline)
+ string = g_string_append (string, "<U>");
+ }
+
+ escaped = swfdec_xml_escape_len (text->text_display + index_,
+ end_index - index_);
+ string = g_string_append (string, escaped);
+ g_free (escaped);
+
+ if (format->underline)
+ string = g_string_append (string, "</U>");
+ if (format->italic)
+ string = g_string_append (string, "</I>");
+ if (format->bold)
+ string = g_string_append (string, "</B>");
+ if (format->url != SWFDEC_AS_STR_EMPTY)
+ string = g_string_append (string, "</A>");
+ for (iter = fonts; iter != NULL; iter = iter->next)
+ string = g_string_append (string, "</FONT>");
+ g_slist_free (fonts);
+ if (bullet) {
+ string = g_string_append (string, "</LI>");
+ } else {
+ string = g_string_append (string, "</P>");
+ }
+ if (textformat)
+ string = g_string_append (string, "</TEXTFORMAT>");
+
+ return string;
+}
+
+static void
+swfdec_text_field_movie_get_htmlText (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+ const char *p, *end;
+ GString *string;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+
+ if (text->text->html == FALSE) {
+ swfdec_text_field_movie_get_text (cx, object, argc, argv, ret);
+ return;
+ }
+
+ if (text->text_display == NULL) {
+ SWFDEC_AS_VALUE_SET_STRING (ret, SWFDEC_AS_STR_EMPTY);
+ return;
+ }
+
+ string = g_string_new ("");
+
+ p = text->text_display;
+ while (*p != '\0') {
+ end = strchr (p, '\r');
+ if (end == NULL)
+ end = strchr (p, '\0');
+
+ string = swfdec_text_field_movie_htmlText_append_paragraph (text, string,
+ p - text->text_display, end - text->text_display);
+
+ if (*end == '\r') {
+ p = end + 1;
+ } else {
+ p = end;
+ }
+ }
+
+ SWFDEC_AS_VALUE_SET_STRING (ret,
+ swfdec_as_context_give_string (cx, g_string_free (string, FALSE)));
+}
+
+static void
+swfdec_text_field_movie_set_htmlText (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+ const char *value;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "s", &value);
+
+ swfdec_text_field_movie_set_text (text, value, text->text->html);
+}
+
+static void
+swfdec_text_field_movie_get_html (SwfdecAsContext *cx, SwfdecAsObject *object,
+ guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+
+ SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->html);
+}
+
+static void
+swfdec_text_field_movie_set_html (SwfdecAsContext *cx, SwfdecAsObject *object,
+ guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+ gboolean value;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
+
+ text->text->html = value;
+}
+
+static void
+swfdec_text_field_movie_get_condenseWhite (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+
+ SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->condense_white);
+}
+
+static void
+swfdec_text_field_movie_set_condenseWhite (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+ gboolean value;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
+
+ text->condense_white = value;
+}
+
+static void
+swfdec_text_field_movie_get_embedFonts (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+
+ SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->embed_fonts);
+}
+
+static void
+swfdec_text_field_movie_set_embedFonts (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+ gboolean value;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
+
+ text->text->embed_fonts = value;
+}
+
+static void
+swfdec_text_field_movie_get_length (SwfdecAsContext *cx, SwfdecAsObject *object,
+ guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+
+ SWFDEC_AS_VALUE_SET_INT (ret, strlen (text->text_display));
+}
+
+static void
+swfdec_text_field_movie_get_textColor (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+
+ swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (text->format_new),
+ SWFDEC_AS_STR_color, ret);
+}
+
+static void
+swfdec_text_field_movie_set_textColor (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+
+ if (argc < 1)
+ return;
+
+ swfdec_as_object_set_variable (SWFDEC_AS_OBJECT (text->format_new),
+ SWFDEC_AS_STR_color, &argv[0]);
+}
+
+SWFDEC_AS_NATIVE (104, 104, swfdec_text_field_movie_getNewTextFormat)
+void
+swfdec_text_field_movie_getNewTextFormat (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+
+ SWFDEC_AS_VALUE_SET_OBJECT (ret,
+ SWFDEC_AS_OBJECT (swfdec_text_format_copy (text->format_new)));
+}
+
+SWFDEC_AS_NATIVE (104, 105, swfdec_text_field_movie_setNewTextFormat)
+void
+swfdec_text_field_movie_setNewTextFormat (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+ SwfdecAsObject *obj;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "o", &obj);
+
+ if (!SWFDEC_IS_TEXT_FORMAT (obj))
+ return;
+
+ text->format_new = swfdec_text_format_copy (SWFDEC_TEXT_FORMAT (obj));
+}
+
+SWFDEC_AS_NATIVE (104, 102, swfdec_text_field_movie_setTextFormat)
+void
+swfdec_text_field_movie_setTextFormat (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *ret)
+{
+ SwfdecTextFieldMovie *text;
+ SwfdecTextFormat *format;
+ guint start_index, end_index;
+ int i;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
+
+ if (argc < 1)
+ return;
+
+ i = 0;
+ if (argc >= 2) {
+ start_index = swfdec_as_value_to_integer (cx, &argv[i++]);
+ start_index = MIN (start_index, strlen (text->text_display));
+ } else {
+ start_index = 0;
+ }
+ if (argc >= 3) {
+ end_index = swfdec_as_value_to_integer (cx, &argv[i++]);
+ end_index = CLAMP (end_index, start_index, strlen (text->text_display));
+ } else {
+ end_index = strlen (text->text_display);
+ }
+ if (start_index == end_index)
+ return;
+
+ if (!SWFDEC_AS_VALUE_IS_OBJECT (&argv[i]))
+ return;
+ if (!SWFDEC_IS_TEXT_FORMAT (SWFDEC_AS_VALUE_GET_OBJECT (&argv[i])))
+ return;
+
+ format = SWFDEC_TEXT_FORMAT (SWFDEC_AS_VALUE_GET_OBJECT (&argv[i]));
+
+ swfdec_text_field_movie_set_text_format (text, format, start_index, end_index);
+}
+
+SWFDEC_AS_NATIVE (104, 200, swfdec_text_field_movie_createTextField)
+void
+swfdec_text_field_movie_createTextField (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *rval)
+{
+ SwfdecMovie *movie, *parent;
+ SwfdecTextField *edittext;
+ int depth, x, y, width, height;
+ const char *name;
+ SwfdecAsFunction *fun;
+ SwfdecAsValue val;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_MOVIE, (gpointer)&parent, "siiiii", &name, &depth, &x, &y, &width, &height);
+
+ edittext = g_object_new (SWFDEC_TYPE_TEXT_FIELD, NULL);
+ edittext->html = FALSE;
+ edittext->input = FALSE;
+ edittext->password = FALSE;
+ edittext->selectable = TRUE;
+ edittext->font = NULL; // FIXME
+ edittext->wrap = FALSE;
+ edittext->multiline = FALSE;
+ edittext->auto_size = SWFDEC_AUTO_SIZE_NONE;
+ edittext->border = FALSE;
+ edittext->size = 240; // FIXME: Correct?
+
+ edittext->text_input = NULL;
+ edittext->variable = NULL;
+ edittext->color = 0;
+ edittext->align = SWFDEC_TEXT_ALIGN_LEFT;
+ edittext->left_margin = 0;
+ edittext->right_margin = 0;
+ edittext->indent = 0;
+ edittext->leading = 0;
+
+ edittext->graphic.extents.x0 = x;
+ edittext->graphic.extents.x1 = x + width;
+ edittext->graphic.extents.y0 = y;
+ edittext->graphic.extents.y1 = y + height;
+
+ movie = swfdec_movie_find (parent, depth);
+ if (movie)
+ swfdec_movie_remove (movie);
+
+ movie = swfdec_movie_new (SWFDEC_PLAYER (cx), depth, parent,
+ SWFDEC_GRAPHIC (edittext), name);
+ g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (movie));
+ swfdec_movie_initialize (movie);
+
+ swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextField, &val);
+ if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
+ return;
+ fun = (SwfdecAsFunction *) SWFDEC_AS_VALUE_GET_OBJECT (&val);
+ if (!SWFDEC_IS_AS_FUNCTION (fun))
+ return;
+
+ /* set initial variables */
+ if (swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (fun),
+ SWFDEC_AS_STR_prototype, &val)) {
+ swfdec_as_object_set_variable_and_flags (SWFDEC_AS_OBJECT (movie),
+ SWFDEC_AS_STR___proto__, &val,
+ SWFDEC_AS_VARIABLE_HIDDEN | SWFDEC_AS_VARIABLE_PERMANENT);
+ }
+ SWFDEC_AS_VALUE_SET_OBJECT (&val, SWFDEC_AS_OBJECT (fun));
+ if (cx->version < 7) {
+ swfdec_as_object_set_variable_and_flags (SWFDEC_AS_OBJECT (movie),
+ SWFDEC_AS_STR_constructor, &val, SWFDEC_AS_VARIABLE_HIDDEN);
+ }
+ swfdec_as_object_set_variable_and_flags (SWFDEC_AS_OBJECT (movie),
+ SWFDEC_AS_STR___constructor__, &val,
+ SWFDEC_AS_VARIABLE_HIDDEN | SWFDEC_AS_VARIABLE_VERSION_6_UP);
+
+ swfdec_as_function_call (fun, SWFDEC_AS_OBJECT (movie), 0, NULL, rval);
+ cx->frame->construct = TRUE;
+ swfdec_as_context_run (cx);
+}
+
+static void
+swfdec_text_field_movie_add_variable (SwfdecAsObject *object,
+ const char *variable, SwfdecAsNative get, SwfdecAsNative set)
+{
+ SwfdecAsFunction *get_func, *set_func;
+
+ g_return_if_fail (SWFDEC_IS_AS_OBJECT (object));
+ g_return_if_fail (variable != NULL);
+ g_return_if_fail (get != NULL);
+
+ get_func =
+ swfdec_as_native_function_new (object->context, variable, get, 0, NULL);
+ if (get_func == NULL)
+ return;
+
+ if (set != NULL) {
+ set_func =
+ swfdec_as_native_function_new (object->context, variable, set, 0, NULL);
+ } else {
+ set_func = NULL;
+ }
+
+ swfdec_as_object_add_variable (object, variable, get_func, set_func, 0);
+}
+
+SWFDEC_AS_CONSTRUCTOR (104, 0, swfdec_text_field_movie_construct, swfdec_text_field_movie_get_type)
+void
+swfdec_text_field_movie_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
+ guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+ if (!cx->frame->construct) {
+ SwfdecAsValue val;
+ if (!swfdec_as_context_use_mem (cx, sizeof (SwfdecTextFieldMovie)))
+ return;
+ object = g_object_new (SWFDEC_TYPE_TEXT_FIELD_MOVIE, NULL);
+ swfdec_as_object_add (object, cx, sizeof (SwfdecTextFieldMovie));
+ swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextField, &val);
+ if (SWFDEC_AS_VALUE_IS_OBJECT (&val)) {
+ swfdec_as_object_set_constructor (object,
+ SWFDEC_AS_VALUE_GET_OBJECT (&val));
+ } else {
+ SWFDEC_INFO ("\"TextField\" is not an object");
+ }
+ }
+
+ g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (object));
+
+ if (!SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized) {
+ SwfdecAsValue val;
+ SwfdecAsObject *proto;
+
+ swfdec_as_object_get_variable (object, SWFDEC_AS_STR___proto__, &val);
+ g_return_if_fail (SWFDEC_AS_VALUE_IS_OBJECT (&val));
+ proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
+
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_text,
+ swfdec_text_field_movie_get_text, swfdec_text_field_movie_do_set_text);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_htmlText,
+ swfdec_text_field_movie_get_htmlText,
+ swfdec_text_field_movie_set_htmlText);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_html,
+ swfdec_text_field_movie_get_html, swfdec_text_field_movie_set_html);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_condenseWhite,
+ swfdec_text_field_movie_get_condenseWhite,
+ swfdec_text_field_movie_set_condenseWhite);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_embedFonts,
+ swfdec_text_field_movie_get_embedFonts,
+ swfdec_text_field_movie_set_embedFonts);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_length,
+ swfdec_text_field_movie_get_length, NULL);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
+ swfdec_text_field_movie_get_textColor,
+ swfdec_text_field_movie_set_textColor);
+
+ SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized = TRUE;
+ }
+
+ SWFDEC_AS_VALUE_SET_OBJECT (ret, object);
+}
diff-tree ba72dd43b20c244e1de4a2a5aea7438bdbcc318d (from ef5288e48b9b4cd61e44429dbf5db01598e9d066)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 11:42:43 2007 +0300
Rename everything EditText to TextField
diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c
index 8c7eadc..a8413b7 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -2104,7 +2104,7 @@ swfdec_action_type_of (SwfdecAsContext *
case SWFDEC_AS_TYPE_OBJECT:
{
SwfdecAsObject *obj = SWFDEC_AS_VALUE_GET_OBJECT (val);
- if (SWFDEC_IS_EDIT_TEXT_MOVIE (obj)) {
+ if (SWFDEC_IS_TEXT_FIELD_MOVIE (obj)) {
type = SWFDEC_AS_STR_object;
} else if (SWFDEC_IS_MOVIE (obj)) {
type = SWFDEC_AS_STR_movieclip;
diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index 8ad6de7..7905673 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -31,66 +31,66 @@
#include "swfdec_player_internal.h"
#include "swfdec_swf_decoder.h"
-G_DEFINE_TYPE (SwfdecEditText, swfdec_edit_text, SWFDEC_TYPE_GRAPHIC)
+G_DEFINE_TYPE (SwfdecTextField, swfdec_text_field, SWFDEC_TYPE_GRAPHIC)
static gboolean
-swfdec_edit_text_mouse_in (SwfdecGraphic *graphic, double x, double y)
+swfdec_text_field_mouse_in (SwfdecGraphic *graphic, double x, double y)
{
return swfdec_rect_contains (&graphic->extents, x, y);
}
static SwfdecMovie *
-swfdec_edit_text_create_movie (SwfdecGraphic *graphic, gsize *size)
+swfdec_text_field_create_movie (SwfdecGraphic *graphic, gsize *size)
{
- SwfdecEditText *text = SWFDEC_EDIT_TEXT (graphic);
- SwfdecEditTextMovie *ret = g_object_new (SWFDEC_TYPE_EDIT_TEXT_MOVIE, NULL);
+ SwfdecTextField *text = SWFDEC_TEXT_FIELD (graphic);
+ SwfdecTextFieldMovie *ret = g_object_new (SWFDEC_TYPE_TEXT_FIELD_MOVIE, NULL);
ret->text = text;
- *size = sizeof (SwfdecEditTextMovie);
+ *size = sizeof (SwfdecTextFieldMovie);
return SWFDEC_MOVIE (ret);
}
static void
-swfdec_edit_text_dispose (GObject *object)
+swfdec_text_field_dispose (GObject *object)
{
- SwfdecEditText *text = SWFDEC_EDIT_TEXT (object);
+ SwfdecTextField *text = SWFDEC_TEXT_FIELD (object);
g_free (text->text_input);
text->text_input = NULL;
g_free (text->variable);
text->variable = NULL;
- G_OBJECT_CLASS (swfdec_edit_text_parent_class)->dispose (object);
+ G_OBJECT_CLASS (swfdec_text_field_parent_class)->dispose (object);
}
static void
-swfdec_edit_text_class_init (SwfdecEditTextClass * g_class)
+swfdec_text_field_class_init (SwfdecTextFieldClass * g_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (g_class);
SwfdecGraphicClass *graphic_class = SWFDEC_GRAPHIC_CLASS (g_class);
- object_class->dispose = swfdec_edit_text_dispose;
- graphic_class->create_movie = swfdec_edit_text_create_movie;
- graphic_class->mouse_in = swfdec_edit_text_mouse_in;
+ object_class->dispose = swfdec_text_field_dispose;
+ graphic_class->create_movie = swfdec_text_field_create_movie;
+ graphic_class->mouse_in = swfdec_text_field_mouse_in;
}
static void
-swfdec_edit_text_init (SwfdecEditText * text)
+swfdec_text_field_init (SwfdecTextField * text)
{
text->max_length = G_MAXUINT;
}
void
-swfdec_edit_text_render (SwfdecEditText *text, cairo_t *cr,
+swfdec_text_field_render (SwfdecTextField *text, cairo_t *cr,
const SwfdecParagraph *paragraphs, const SwfdecColorTransform *trans,
const SwfdecRect *inval)
{
PangoLayout *layout;
guint i;
- g_return_if_fail (SWFDEC_IS_EDIT_TEXT (text));
+ g_return_if_fail (SWFDEC_IS_TEXT_FIELD (text));
g_return_if_fail (cr != NULL);
g_return_if_fail (paragraphs != NULL);
g_return_if_fail (trans != NULL);
@@ -240,7 +240,7 @@ swfdec_edit_text_render (SwfdecEditText
int
tag_func_define_edit_text (SwfdecSwfDecoder * s, guint tag)
{
- SwfdecEditText *text;
+ SwfdecTextField *text;
guint id;
int reserved;
gboolean has_font, has_color, has_max_length, has_layout, has_text;
@@ -248,7 +248,7 @@ tag_func_define_edit_text (SwfdecSwfDeco
id = swfdec_bits_get_u16 (b);
SWFDEC_LOG (" id = %u", id);
- text = swfdec_swf_decoder_create_character (s, id, SWFDEC_TYPE_EDIT_TEXT);
+ text = swfdec_swf_decoder_create_character (s, id, SWFDEC_TYPE_TEXT_FIELD);
if (text == NULL)
return SWFDEC_STATUS_OK;
diff --git a/libswfdec/swfdec_edittext.h b/libswfdec/swfdec_edittext.h
index f7c6e22..aa84422 100644
--- a/libswfdec/swfdec_edittext.h
+++ b/libswfdec/swfdec_edittext.h
@@ -18,8 +18,8 @@
* Boston, MA 02110-1301 USA
*/
-#ifndef _SWFDEC_EDIT_TEXT_H_
-#define _SWFDEC_EDIT_TEXT_H_
+#ifndef _SWFDEC_TEXT_FIELD_H_
+#define _SWFDEC_TEXT_FIELD_H_
#include <pango/pango.h>
#include <libswfdec/swfdec_types.h>
@@ -30,14 +30,14 @@
G_BEGIN_DECLS
-typedef struct _SwfdecEditText SwfdecEditText;
-typedef struct _SwfdecEditTextClass SwfdecEditTextClass;
+typedef struct _SwfdecTextField SwfdecTextField;
+typedef struct _SwfdecTextFieldClass SwfdecTextFieldClass;
-#define SWFDEC_TYPE_EDIT_TEXT (swfdec_edit_text_get_type())
-#define SWFDEC_IS_EDIT_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_EDIT_TEXT))
-#define SWFDEC_IS_EDIT_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_EDIT_TEXT))
-#define SWFDEC_EDIT_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_EDIT_TEXT, SwfdecEditText))
-#define SWFDEC_EDIT_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_EDIT_TEXT, SwfdecEditTextClass))
+#define SWFDEC_TYPE_TEXT_FIELD (swfdec_text_field_get_type())
+#define SWFDEC_IS_TEXT_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_TEXT_FIELD))
+#define SWFDEC_IS_TEXT_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_TEXT_FIELD))
+#define SWFDEC_TEXT_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_TEXT_FIELD, SwfdecTextField))
+#define SWFDEC_TEXT_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEXT_FIELD, SwfdecTextFieldClass))
typedef struct {
guint index_;
@@ -71,7 +71,7 @@ typedef enum {
SWFDEC_AUTO_SIZE_RIGHT
} SwfdecAutoSize;
-struct _SwfdecEditText
+struct _SwfdecTextField
{
SwfdecGraphic graphic;
@@ -103,17 +103,17 @@ struct _SwfdecEditText
int leading;
};
-struct _SwfdecEditTextClass
+struct _SwfdecTextFieldClass
{
SwfdecGraphicClass graphic_class;
};
-GType swfdec_edit_text_get_type (void);
+GType swfdec_text_field_get_type (void);
int tag_func_define_edit_text (SwfdecSwfDecoder * s,
guint tag);
-void swfdec_edit_text_render (SwfdecEditText * text,
+void swfdec_text_field_render (SwfdecTextField * text,
cairo_t * cr,
const SwfdecParagraph * paragraphs,
const SwfdecColorTransform * trans,
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index 4f68687..dd79e9a 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -32,14 +32,14 @@
#include "swfdec_debug.h"
#include "swfdec_player_internal.h"
-G_DEFINE_TYPE (SwfdecEditTextMovie, swfdec_edit_text_movie, SWFDEC_TYPE_MOVIE)
+G_DEFINE_TYPE (SwfdecTextFieldMovie, swfdec_text_field_movie, SWFDEC_TYPE_MOVIE)
static void
-swfdec_edit_text_movie_update_extents (SwfdecMovie *movie,
+swfdec_text_field_movie_update_extents (SwfdecMovie *movie,
SwfdecRect *extents)
{
swfdec_rect_union (extents, extents,
- &SWFDEC_GRAPHIC (SWFDEC_EDIT_TEXT_MOVIE (movie)->text)->extents);
+ &SWFDEC_GRAPHIC (SWFDEC_TEXT_FIELD_MOVIE (movie)->text)->extents);
}
static void
@@ -99,7 +99,7 @@ swfdec_text_paragraph_add_block_attribut
}
static void
-swfdec_edit_text_movie_generate_paragraph (SwfdecEditTextMovie *text,
+swfdec_text_field_movie_generate_paragraph (SwfdecTextFieldMovie *text,
SwfdecParagraph *paragraph, guint start_index, guint end_index)
{
SwfdecTextFormat *format, *format_prev;
@@ -109,7 +109,7 @@ swfdec_edit_text_movie_generate_paragrap
*attr_letter_spacing, *attr_size, *attr_underline;
// TODO: kerning
- g_assert (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
+ g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
g_assert (paragraph != NULL);
g_assert (start_index < end_index);
g_assert (end_index <= strlen (text->text_display));
@@ -287,12 +287,12 @@ swfdec_edit_text_movie_generate_paragrap
}
static void
-swfdec_edit_text_movie_generate_paragraphs (SwfdecEditTextMovie *text)
+swfdec_text_field_movie_generate_paragraphs (SwfdecTextFieldMovie *text)
{
const char *p, *end;
int num, i;
- g_assert (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
+ g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
num = 0;
p = text->text_display;
@@ -312,7 +312,7 @@ swfdec_edit_text_movie_generate_paragrap
if (end == NULL)
end = strchr (p, '\0');
- swfdec_edit_text_movie_generate_paragraph (text, &text->paragraphs[i],
+ swfdec_text_field_movie_generate_paragraph (text, &text->paragraphs[i],
p - text->text_display, end - text->text_display);
p = end;
@@ -324,21 +324,21 @@ swfdec_edit_text_movie_generate_paragrap
}
static void
-swfdec_edit_text_movie_render (SwfdecMovie *movie, cairo_t *cr,
+swfdec_text_field_movie_render (SwfdecMovie *movie, cairo_t *cr,
const SwfdecColorTransform *trans, const SwfdecRect *inval)
{
- SwfdecEditTextMovie *text = SWFDEC_EDIT_TEXT_MOVIE (movie);
+ SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
if (text->paragraphs == NULL)
- swfdec_edit_text_movie_generate_paragraphs (text);
+ swfdec_text_field_movie_generate_paragraphs (text);
if (text->paragraphs[0].text == NULL)
return;
- swfdec_edit_text_render (text->text, cr, text->paragraphs, trans, inval);
+ swfdec_text_field_render (text->text, cr, text->paragraphs, trans, inval);
}
static void
-swfdec_edit_text_movie_free_paragraphs (SwfdecEditTextMovie *text)
+swfdec_text_field_movie_free_paragraphs (SwfdecTextFieldMovie *text)
{
GList *iter;
int i;
@@ -365,20 +365,20 @@ swfdec_edit_text_movie_free_paragraphs (
}
void
-swfdec_edit_text_movie_format_changed (SwfdecEditTextMovie *text)
+swfdec_text_field_movie_format_changed (SwfdecTextFieldMovie *text)
{
- swfdec_edit_text_movie_free_paragraphs (text);
+ swfdec_text_field_movie_free_paragraphs (text);
}
static void
-swfdec_edit_text_movie_dispose (GObject *object)
+swfdec_text_field_movie_dispose (GObject *object)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
GSList *iter;
- text = SWFDEC_EDIT_TEXT_MOVIE (object);
+ text = SWFDEC_TEXT_FIELD_MOVIE (object);
- swfdec_edit_text_movie_free_paragraphs (text);
+ swfdec_text_field_movie_free_paragraphs (text);
for (iter = text->formats; iter != NULL; iter = iter->next) {
g_free (text->formats->data);
@@ -386,16 +386,16 @@ swfdec_edit_text_movie_dispose (GObject
}
g_slist_free (text->formats);
- G_OBJECT_CLASS (swfdec_edit_text_movie_parent_class)->dispose (object);
+ G_OBJECT_CLASS (swfdec_text_field_movie_parent_class)->dispose (object);
}
static void
-swfdec_edit_text_movie_mark (SwfdecAsObject *object)
+swfdec_text_field_movie_mark (SwfdecAsObject *object)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
GSList *iter;
- text = SWFDEC_EDIT_TEXT_MOVIE (object);
+ text = SWFDEC_TEXT_FIELD_MOVIE (object);
swfdec_as_string_mark (text->text_input);
swfdec_as_string_mark (text->text_display);
@@ -409,13 +409,13 @@ swfdec_edit_text_movie_mark (SwfdecAsObj
if (text->style_sheet != NULL)
swfdec_as_object_mark (SWFDEC_AS_OBJECT (text->style_sheet));
- SWFDEC_AS_OBJECT_CLASS (swfdec_edit_text_movie_parent_class)->mark (object);
+ SWFDEC_AS_OBJECT_CLASS (swfdec_text_field_movie_parent_class)->mark (object);
}
static void
-swfdec_edit_text_movie_iterate (SwfdecMovie *movie)
+swfdec_text_field_movie_iterate (SwfdecMovie *movie)
{
- SwfdecEditTextMovie *text = SWFDEC_EDIT_TEXT_MOVIE (movie);
+ SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
SwfdecAsObject *parent;
const char *s;
SwfdecAsValue val = { 0, };
@@ -433,13 +433,13 @@ swfdec_edit_text_movie_iterate (SwfdecMo
if (text->text_input == s)
return;
- swfdec_edit_text_movie_set_text (text, s, text->text->html);
+ swfdec_text_field_movie_set_text (text, s, text->text->html);
}
static void
-swfdec_edit_text_movie_init_movie (SwfdecMovie *movie)
+swfdec_text_field_movie_init_movie (SwfdecMovie *movie)
{
- SwfdecEditTextMovie *text = SWFDEC_EDIT_TEXT_MOVIE (movie);
+ SwfdecTextFieldMovie *text = SWFDEC_TEXT_FIELD_MOVIE (movie);
SwfdecAsContext *cx;
SwfdecAsObject *parent;
SwfdecAsValue val = { 0, };
@@ -461,7 +461,7 @@ swfdec_edit_text_movie_init_movie (Swfde
// text
if (text->text->text_input != NULL) {
- swfdec_edit_text_movie_set_text (text,
+ swfdec_text_field_movie_set_text (text,
swfdec_as_context_get_string (cx, text->text->text_input),
text->text->html);
}
@@ -477,7 +477,7 @@ swfdec_edit_text_movie_init_movie (Swfde
s = swfdec_as_value_to_string (parent->context, &val);
g_assert (s);
if (text->text_input != s)
- swfdec_edit_text_movie_set_text (text, s, text->text->html);
+ swfdec_text_field_movie_set_text (text, s, text->text->html);
} else {
SWFDEC_LOG ("setting variable %s to \"%s\"", text->variable,
text->text_input ? text->text_input : "");
@@ -491,36 +491,36 @@ swfdec_edit_text_movie_init_movie (Swfde
}
static void
-swfdec_edit_text_movie_class_init (SwfdecEditTextMovieClass * g_class)
+swfdec_text_field_movie_class_init (SwfdecTextFieldMovieClass * g_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (g_class);
SwfdecAsObjectClass *asobject_class = SWFDEC_AS_OBJECT_CLASS (g_class);
SwfdecMovieClass *movie_class = SWFDEC_MOVIE_CLASS (g_class);
- object_class->dispose = swfdec_edit_text_movie_dispose;
+ object_class->dispose = swfdec_text_field_movie_dispose;
- asobject_class->mark = swfdec_edit_text_movie_mark;
+ asobject_class->mark = swfdec_text_field_movie_mark;
- movie_class->init_movie = swfdec_edit_text_movie_init_movie;
- movie_class->update_extents = swfdec_edit_text_movie_update_extents;
- movie_class->render = swfdec_edit_text_movie_render;
- movie_class->iterate_start = swfdec_edit_text_movie_iterate;
+ movie_class->init_movie = swfdec_text_field_movie_init_movie;
+ movie_class->update_extents = swfdec_text_field_movie_update_extents;
+ movie_class->render = swfdec_text_field_movie_render;
+ movie_class->iterate_start = swfdec_text_field_movie_iterate;
}
static void
-swfdec_edit_text_movie_init (SwfdecEditTextMovie *text)
+swfdec_text_field_movie_init (SwfdecTextFieldMovie *text)
{
}
void
-swfdec_edit_text_movie_set_text_format (SwfdecEditTextMovie *text,
+swfdec_text_field_movie_set_text_format (SwfdecTextFieldMovie *text,
SwfdecTextFormat *format, guint start_index, guint end_index)
{
SwfdecFormatIndex *findex, *findex_new;
guint findex_end_index;
GSList *iter, *next;
- g_return_if_fail (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
+ g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
g_return_if_fail (SWFDEC_IS_TEXT_FORMAT (format));
g_return_if_fail (start_index < end_index);
g_return_if_fail (end_index <= strlen (text->text_display));
@@ -564,17 +564,17 @@ swfdec_edit_text_movie_set_text_format (
}
}
- swfdec_edit_text_movie_format_changed (text);
+ swfdec_text_field_movie_format_changed (text);
}
void
-swfdec_edit_text_movie_set_text (SwfdecEditTextMovie *text, const char *str,
+swfdec_text_field_movie_set_text (SwfdecTextFieldMovie *text, const char *str,
gboolean html)
{
SwfdecFormatIndex *block;
GSList *iter;
- g_return_if_fail (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
+ g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
text->text_input = str;
@@ -597,7 +597,7 @@ swfdec_edit_text_movie_set_text (SwfdecE
text->formats = g_slist_prepend (text->formats, block);
if (html) {
- swfdec_edit_text_movie_html_parse (text, str);
+ swfdec_text_field_movie_html_parse (text, str);
} else {
// change all \n to \r
if (strchr (str, '\n') != NULL) {
@@ -615,5 +615,5 @@ swfdec_edit_text_movie_set_text (SwfdecE
}
}
- swfdec_edit_text_movie_format_changed (text);
+ swfdec_text_field_movie_format_changed (text);
}
diff --git a/libswfdec/swfdec_edittext_movie.h b/libswfdec/swfdec_edittext_movie.h
index 103942b..8b7999a 100644
--- a/libswfdec/swfdec_edittext_movie.h
+++ b/libswfdec/swfdec_edittext_movie.h
@@ -18,8 +18,8 @@
* Boston, MA 02110-1301 USA
*/
-#ifndef _SWFDEC_EDIT_TEXT_MOVIE_H_
-#define _SWFDEC_EDIT_TEXT_MOVIE_H_
+#ifndef _SWFDEC_TEXT_FIELD_MOVIE_H_
+#define _SWFDEC_TEXT_FIELD_MOVIE_H_
#include <libswfdec/swfdec_movie.h>
#include <libswfdec/swfdec_edittext.h>
@@ -29,14 +29,14 @@
G_BEGIN_DECLS
-typedef struct _SwfdecEditTextMovie SwfdecEditTextMovie;
-typedef struct _SwfdecEditTextMovieClass SwfdecEditTextMovieClass;
+typedef struct _SwfdecTextFieldMovie SwfdecTextFieldMovie;
+typedef struct _SwfdecTextFieldMovieClass SwfdecTextFieldMovieClass;
-#define SWFDEC_TYPE_EDIT_TEXT_MOVIE (swfdec_edit_text_movie_get_type())
-#define SWFDEC_IS_EDIT_TEXT_MOVIE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_EDIT_TEXT_MOVIE))
-#define SWFDEC_IS_EDIT_TEXT_MOVIE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_EDIT_TEXT_MOVIE))
-#define SWFDEC_EDIT_TEXT_MOVIE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_EDIT_TEXT_MOVIE, SwfdecEditTextMovie))
-#define SWFDEC_EDIT_TEXT_MOVIE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_EDIT_TEXT_MOVIE, SwfdecEditTextMovieClass))
+#define SWFDEC_TYPE_TEXT_FIELD_MOVIE (swfdec_text_field_movie_get_type())
+#define SWFDEC_IS_TEXT_FIELD_MOVIE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_TEXT_FIELD_MOVIE))
+#define SWFDEC_IS_TEXT_FIELD_MOVIE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_TEXT_FIELD_MOVIE))
+#define SWFDEC_TEXT_FIELD_MOVIE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_TEXT_FIELD_MOVIE, SwfdecTextFieldMovie))
+#define SWFDEC_TEXT_FIELD_MOVIE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEXT_FIELD_MOVIE, SwfdecTextFieldMovieClass))
typedef struct {
guint index;
@@ -54,10 +54,10 @@ typedef enum {
SWFDEC_GRID_FIT_TYPE_SUBPIXEL
} SwfdecGridFitType;
-struct _SwfdecEditTextMovie {
+struct _SwfdecTextFieldMovie {
SwfdecMovie movie;
- SwfdecEditText * text; /* the edit_text object we render */
+ SwfdecTextField * text; /* the text_field object we render */
const char * text_input;
const char * text_display;
@@ -85,23 +85,23 @@ struct _SwfdecEditTextMovie {
SwfdecParagraph * paragraphs;
};
-struct _SwfdecEditTextMovieClass {
+struct _SwfdecTextFieldMovieClass {
SwfdecMovieClass movie_class;
};
-GType swfdec_edit_text_movie_get_type (void);
+GType swfdec_text_field_movie_get_type (void);
-void swfdec_edit_text_movie_set_text (SwfdecEditTextMovie * movie,
+void swfdec_text_field_movie_set_text (SwfdecTextFieldMovie * movie,
const char * str,
gboolean html);
-void swfdec_edit_text_movie_format_changed (SwfdecEditTextMovie * text);
-void swfdec_edit_text_movie_set_text_format (SwfdecEditTextMovie * text,
+void swfdec_text_field_movie_format_changed (SwfdecTextFieldMovie * text);
+void swfdec_text_field_movie_set_text_format (SwfdecTextFieldMovie * text,
SwfdecTextFormat * format,
guint start_index,
guint end_index);
/* implemented in swfdec_html_parser.c */
-void swfdec_edit_text_movie_html_parse (SwfdecEditTextMovie * text,
+void swfdec_text_field_movie_html_parse (SwfdecTextFieldMovie * text,
const char * str);
G_END_DECLS
diff --git a/libswfdec/swfdec_edittext_movie_as.c b/libswfdec/swfdec_edittext_movie_as.c
index bb58e9b..c9d4cd0 100644
--- a/libswfdec/swfdec_edittext_movie_as.c
+++ b/libswfdec/swfdec_edittext_movie_as.c
@@ -37,12 +37,12 @@
#include "swfdec_player_internal.h"
static void
-swfdec_edit_text_movie_get_text (SwfdecAsContext *cx, SwfdecAsObject *object,
+swfdec_text_field_movie_get_text (SwfdecAsContext *cx, SwfdecAsObject *object,
guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
SWFDEC_AS_VALUE_SET_STRING (ret, (text->text_display != NULL ?
swfdec_as_context_get_string (cx, text->text_display) :
@@ -50,16 +50,16 @@ swfdec_edit_text_movie_get_text (SwfdecA
}
static void
-swfdec_edit_text_movie_do_set_text (SwfdecAsContext *cx,
+swfdec_text_field_movie_do_set_text (SwfdecAsContext *cx,
SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
const char *value;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "s", &value);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "s", &value);
- swfdec_edit_text_movie_set_text (text, value, FALSE);
+ swfdec_text_field_movie_set_text (text, value, FALSE);
}
static const char *
@@ -95,7 +95,7 @@ align_to_string (SwfdecTextAlign align)
* U: none
*/
static GString *
-swfdec_edit_text_movie_htmlText_append_paragraph (SwfdecEditTextMovie *text,
+swfdec_text_field_movie_htmlText_append_paragraph (SwfdecTextFieldMovie *text,
GString *string, guint start_index, guint end_index)
{
SwfdecTextFormat *format, *format_prev, *format_font;
@@ -104,7 +104,7 @@ swfdec_edit_text_movie_htmlText_append_p
gboolean textformat, bullet, font;
char *escaped;
- g_return_val_if_fail (SWFDEC_IS_EDIT_TEXT_MOVIE (text), string);
+ g_return_val_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text), string);
g_return_val_if_fail (string != NULL, string);
g_return_val_if_fail (start_index < end_index, string);
@@ -305,18 +305,18 @@ swfdec_edit_text_movie_htmlText_append_p
}
static void
-swfdec_edit_text_movie_get_htmlText (SwfdecAsContext *cx,
+swfdec_text_field_movie_get_htmlText (SwfdecAsContext *cx,
SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
const char *p, *end;
GString *string;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
if (text->text->html == FALSE) {
- swfdec_edit_text_movie_get_text (cx, object, argc, argv, ret);
+ swfdec_text_field_movie_get_text (cx, object, argc, argv, ret);
return;
}
@@ -333,7 +333,7 @@ swfdec_edit_text_movie_get_htmlText (Swf
if (end == NULL)
end = strchr (p, '\0');
- string = swfdec_edit_text_movie_htmlText_append_paragraph (text, string,
+ string = swfdec_text_field_movie_htmlText_append_paragraph (text, string,
p - text->text_display, end - text->text_display);
if (*end == '\r') {
@@ -348,123 +348,123 @@ swfdec_edit_text_movie_get_htmlText (Swf
}
static void
-swfdec_edit_text_movie_set_htmlText (SwfdecAsContext *cx,
+swfdec_text_field_movie_set_htmlText (SwfdecAsContext *cx,
SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
const char *value;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "s", &value);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "s", &value);
- swfdec_edit_text_movie_set_text (text, value, text->text->html);
+ swfdec_text_field_movie_set_text (text, value, text->text->html);
}
static void
-swfdec_edit_text_movie_get_html (SwfdecAsContext *cx, SwfdecAsObject *object,
+swfdec_text_field_movie_get_html (SwfdecAsContext *cx, SwfdecAsObject *object,
guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->html);
}
static void
-swfdec_edit_text_movie_set_html (SwfdecAsContext *cx, SwfdecAsObject *object,
+swfdec_text_field_movie_set_html (SwfdecAsContext *cx, SwfdecAsObject *object,
guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
gboolean value;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "b", &value);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
text->text->html = value;
}
static void
-swfdec_edit_text_movie_get_condenseWhite (SwfdecAsContext *cx,
+swfdec_text_field_movie_get_condenseWhite (SwfdecAsContext *cx,
SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->condense_white);
}
static void
-swfdec_edit_text_movie_set_condenseWhite (SwfdecAsContext *cx,
+swfdec_text_field_movie_set_condenseWhite (SwfdecAsContext *cx,
SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
gboolean value;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "b", &value);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
text->condense_white = value;
}
static void
-swfdec_edit_text_movie_get_embedFonts (SwfdecAsContext *cx,
+swfdec_text_field_movie_get_embedFonts (SwfdecAsContext *cx,
SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
SWFDEC_AS_VALUE_SET_BOOLEAN (ret, text->text->embed_fonts);
}
static void
-swfdec_edit_text_movie_set_embedFonts (SwfdecAsContext *cx,
+swfdec_text_field_movie_set_embedFonts (SwfdecAsContext *cx,
SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
gboolean value;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "b", &value);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "b", &value);
text->text->embed_fonts = value;
}
static void
-swfdec_edit_text_movie_get_length (SwfdecAsContext *cx, SwfdecAsObject *object,
+swfdec_text_field_movie_get_length (SwfdecAsContext *cx, SwfdecAsObject *object,
guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
SWFDEC_AS_VALUE_SET_INT (ret, strlen (text->text_display));
}
static void
-swfdec_edit_text_movie_get_textColor (SwfdecAsContext *cx,
+swfdec_text_field_movie_get_textColor (SwfdecAsContext *cx,
SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (text->format_new),
SWFDEC_AS_STR_color, ret);
}
static void
-swfdec_edit_text_movie_set_textColor (SwfdecAsContext *cx,
+swfdec_text_field_movie_set_textColor (SwfdecAsContext *cx,
SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
if (argc < 1)
return;
@@ -473,30 +473,30 @@ swfdec_edit_text_movie_set_textColor (Sw
SWFDEC_AS_STR_color, &argv[0]);
}
-SWFDEC_AS_NATIVE (104, 104, swfdec_edit_text_movie_getNewTextFormat)
+SWFDEC_AS_NATIVE (104, 104, swfdec_text_field_movie_getNewTextFormat)
void
-swfdec_edit_text_movie_getNewTextFormat (SwfdecAsContext *cx,
+swfdec_text_field_movie_getNewTextFormat (SwfdecAsContext *cx,
SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
SWFDEC_AS_VALUE_SET_OBJECT (ret,
SWFDEC_AS_OBJECT (swfdec_text_format_copy (text->format_new)));
}
-SWFDEC_AS_NATIVE (104, 105, swfdec_edit_text_movie_setNewTextFormat)
+SWFDEC_AS_NATIVE (104, 105, swfdec_text_field_movie_setNewTextFormat)
void
-swfdec_edit_text_movie_setNewTextFormat (SwfdecAsContext *cx,
+swfdec_text_field_movie_setNewTextFormat (SwfdecAsContext *cx,
SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
SwfdecAsObject *obj;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "o", &obj);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "o", &obj);
if (!SWFDEC_IS_TEXT_FORMAT (obj))
return;
@@ -504,18 +504,18 @@ swfdec_edit_text_movie_setNewTextFormat
text->format_new = swfdec_text_format_copy (SWFDEC_TEXT_FORMAT (obj));
}
-SWFDEC_AS_NATIVE (104, 102, swfdec_edit_text_movie_setTextFormat)
+SWFDEC_AS_NATIVE (104, 102, swfdec_text_field_movie_setTextFormat)
void
-swfdec_edit_text_movie_setTextFormat (SwfdecAsContext *cx,
+swfdec_text_field_movie_setTextFormat (SwfdecAsContext *cx,
SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *ret)
{
- SwfdecEditTextMovie *text;
+ SwfdecTextFieldMovie *text;
SwfdecTextFormat *format;
guint start_index, end_index;
int i;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_EDIT_TEXT_MOVIE, (gpointer)&text, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEXT_FIELD_MOVIE, (gpointer)&text, "");
if (argc < 1)
return;
@@ -543,17 +543,17 @@ swfdec_edit_text_movie_setTextFormat (Sw
format = SWFDEC_TEXT_FORMAT (SWFDEC_AS_VALUE_GET_OBJECT (&argv[i]));
- swfdec_edit_text_movie_set_text_format (text, format, start_index, end_index);
+ swfdec_text_field_movie_set_text_format (text, format, start_index, end_index);
}
-SWFDEC_AS_NATIVE (104, 200, swfdec_edit_text_movie_createTextField)
+SWFDEC_AS_NATIVE (104, 200, swfdec_text_field_movie_createTextField)
void
-swfdec_edit_text_movie_createTextField (SwfdecAsContext *cx,
+swfdec_text_field_movie_createTextField (SwfdecAsContext *cx,
SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *rval)
{
SwfdecMovie *movie, *parent;
- SwfdecEditText *edittext;
+ SwfdecTextField *edittext;
int depth, x, y, width, height;
const char *name;
SwfdecAsFunction *fun;
@@ -561,7 +561,7 @@ swfdec_edit_text_movie_createTextField (
SWFDEC_AS_CHECK (SWFDEC_TYPE_MOVIE, (gpointer)&parent, "siiiii", &name, &depth, &x, &y, &width, &height);
- edittext = g_object_new (SWFDEC_TYPE_EDIT_TEXT, NULL);
+ edittext = g_object_new (SWFDEC_TYPE_TEXT_FIELD, NULL);
edittext->html = FALSE;
edittext->input = FALSE;
edittext->password = FALSE;
@@ -593,7 +593,7 @@ swfdec_edit_text_movie_createTextField (
movie = swfdec_movie_new (SWFDEC_PLAYER (cx), depth, parent,
SWFDEC_GRAPHIC (edittext), name);
- g_assert (SWFDEC_IS_EDIT_TEXT_MOVIE (movie));
+ g_assert (SWFDEC_IS_TEXT_FIELD_MOVIE (movie));
swfdec_movie_initialize (movie);
swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextField, &val);
@@ -625,7 +625,7 @@ swfdec_edit_text_movie_createTextField (
}
static void
-swfdec_edit_text_movie_add_variable (SwfdecAsObject *object,
+swfdec_text_field_movie_add_variable (SwfdecAsObject *object,
const char *variable, SwfdecAsNative get, SwfdecAsNative set)
{
SwfdecAsFunction *get_func, *set_func;
@@ -649,17 +649,17 @@ swfdec_edit_text_movie_add_variable (Swf
swfdec_as_object_add_variable (object, variable, get_func, set_func, 0);
}
-SWFDEC_AS_CONSTRUCTOR (104, 0, swfdec_edit_text_movie_construct, swfdec_edit_text_movie_get_type)
+SWFDEC_AS_CONSTRUCTOR (104, 0, swfdec_text_field_movie_construct, swfdec_text_field_movie_get_type)
void
-swfdec_edit_text_movie_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
+swfdec_text_field_movie_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
{
if (!cx->frame->construct) {
SwfdecAsValue val;
- if (!swfdec_as_context_use_mem (cx, sizeof (SwfdecEditTextMovie)))
+ if (!swfdec_as_context_use_mem (cx, sizeof (SwfdecTextFieldMovie)))
return;
- object = g_object_new (SWFDEC_TYPE_EDIT_TEXT_MOVIE, NULL);
- swfdec_as_object_add (object, cx, sizeof (SwfdecEditTextMovie));
+ object = g_object_new (SWFDEC_TYPE_TEXT_FIELD_MOVIE, NULL);
+ swfdec_as_object_add (object, cx, sizeof (SwfdecTextFieldMovie));
swfdec_as_object_get_variable (cx->global, SWFDEC_AS_STR_TextField, &val);
if (SWFDEC_AS_VALUE_IS_OBJECT (&val)) {
swfdec_as_object_set_constructor (object,
@@ -669,7 +669,7 @@ swfdec_edit_text_movie_construct (Swfdec
}
}
- g_return_if_fail (SWFDEC_IS_EDIT_TEXT_MOVIE (object));
+ g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (object));
if (!SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized) {
SwfdecAsValue val;
@@ -679,24 +679,24 @@ swfdec_edit_text_movie_construct (Swfdec
g_return_if_fail (SWFDEC_AS_VALUE_IS_OBJECT (&val));
proto = SWFDEC_AS_VALUE_GET_OBJECT (&val);
- swfdec_edit_text_movie_add_variable (proto, SWFDEC_AS_STR_text,
- swfdec_edit_text_movie_get_text, swfdec_edit_text_movie_do_set_text);
- swfdec_edit_text_movie_add_variable (proto, SWFDEC_AS_STR_htmlText,
- swfdec_edit_text_movie_get_htmlText,
- swfdec_edit_text_movie_set_htmlText);
- swfdec_edit_text_movie_add_variable (proto, SWFDEC_AS_STR_html,
- swfdec_edit_text_movie_get_html, swfdec_edit_text_movie_set_html);
- swfdec_edit_text_movie_add_variable (proto, SWFDEC_AS_STR_condenseWhite,
- swfdec_edit_text_movie_get_condenseWhite,
- swfdec_edit_text_movie_set_condenseWhite);
- swfdec_edit_text_movie_add_variable (proto, SWFDEC_AS_STR_embedFonts,
- swfdec_edit_text_movie_get_embedFonts,
- swfdec_edit_text_movie_set_embedFonts);
- swfdec_edit_text_movie_add_variable (proto, SWFDEC_AS_STR_length,
- swfdec_edit_text_movie_get_length, NULL);
- swfdec_edit_text_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
- swfdec_edit_text_movie_get_textColor,
- swfdec_edit_text_movie_set_textColor);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_text,
+ swfdec_text_field_movie_get_text, swfdec_text_field_movie_do_set_text);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_htmlText,
+ swfdec_text_field_movie_get_htmlText,
+ swfdec_text_field_movie_set_htmlText);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_html,
+ swfdec_text_field_movie_get_html, swfdec_text_field_movie_set_html);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_condenseWhite,
+ swfdec_text_field_movie_get_condenseWhite,
+ swfdec_text_field_movie_set_condenseWhite);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_embedFonts,
+ swfdec_text_field_movie_get_embedFonts,
+ swfdec_text_field_movie_set_embedFonts);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_length,
+ swfdec_text_field_movie_get_length, NULL);
+ swfdec_text_field_movie_add_variable (proto, SWFDEC_AS_STR_textColor,
+ swfdec_text_field_movie_get_textColor,
+ swfdec_text_field_movie_set_textColor);
SWFDEC_PLAYER (cx)->edittext_movie_properties_initialized = TRUE;
}
diff --git a/libswfdec/swfdec_graphic_movie.c b/libswfdec/swfdec_graphic_movie.c
index 9552ee3..a4a86fa 100644
--- a/libswfdec/swfdec_graphic_movie.c
+++ b/libswfdec/swfdec_graphic_movie.c
@@ -63,7 +63,7 @@ swfdec_graphic_movie_replace (SwfdecMovi
/* nothing to do here, please move along */
} else if (SWFDEC_IS_SPRITE (graphic) ||
SWFDEC_IS_BUTTON (graphic) ||
- SWFDEC_IS_EDIT_TEXT (graphic)) {
+ SWFDEC_IS_TEXT_FIELD (graphic)) {
SWFDEC_INFO ("can't replace with scriptable objects");
return;
} else {
diff --git a/libswfdec/swfdec_html_parser.c b/libswfdec/swfdec_html_parser.c
index 60fb4e4..430eec5 100644
--- a/libswfdec/swfdec_html_parser.c
+++ b/libswfdec/swfdec_html_parser.c
@@ -44,7 +44,7 @@ typedef struct {
} ParserData;
static const char *
-swfdec_edit_text_movie_html_parse_comment (ParserData *data, const char *p)
+swfdec_text_field_movie_html_parse_comment (ParserData *data, const char *p)
{
const char *end;
@@ -61,7 +61,7 @@ swfdec_edit_text_movie_html_parse_commen
}
static void
-swfdec_edit_text_movie_html_tag_set_attribute (ParserTag *tag,
+swfdec_text_field_movie_html_tag_set_attribute (ParserTag *tag,
const char *name, int name_length, const char *value, int value_length)
{
SwfdecAsValue val;
@@ -136,7 +136,7 @@ swfdec_edit_text_movie_html_tag_set_attr
}
static const char *
-swfdec_edit_text_movie_html_parse_attribute (ParserTag *tag, const char *p)
+swfdec_text_field_movie_html_parse_attribute (ParserTag *tag, const char *p)
{
const char *end, *name, *value;
int name_length, value_length;
@@ -171,7 +171,7 @@ swfdec_edit_text_movie_html_parse_attrib
value_length = end - (p + 1);
if (tag != NULL) {
- swfdec_edit_text_movie_html_tag_set_attribute (tag, name, name_length,
+ swfdec_text_field_movie_html_tag_set_attribute (tag, name, name_length,
value, value_length);
}
@@ -181,7 +181,7 @@ swfdec_edit_text_movie_html_parse_attrib
}
static const char *
-swfdec_edit_text_movie_html_parse_tag (ParserData *data, const char *p)
+swfdec_text_field_movie_html_parse_tag (ParserData *data, const char *p)
{
ParserTag *tag;
const char *name, *end;
@@ -283,7 +283,7 @@ swfdec_edit_text_movie_html_parse_tag (P
// parse attributes
end = end + strspn (end, " \r\n\t");
while (*end != '\0' && *end != '>' && (*end != '/' || *(end + 1) != '>')) {
- end = swfdec_edit_text_movie_html_parse_attribute (tag, end);
+ end = swfdec_text_field_movie_html_parse_attribute (tag, end);
if (end == NULL)
break;
end = end + strspn (end, " \r\n\t");
@@ -300,7 +300,7 @@ swfdec_edit_text_movie_html_parse_tag (P
}
static const char *
-swfdec_edit_text_movie_html_parse_text (ParserData *data, const char *p,
+swfdec_text_field_movie_html_parse_text (ParserData *data, const char *p,
gboolean condense_white)
{
const char *end;
@@ -338,12 +338,12 @@ swfdec_edit_text_movie_html_parse_text (
}
void
-swfdec_edit_text_movie_html_parse (SwfdecEditTextMovie *text, const char *str)
+swfdec_text_field_movie_html_parse (SwfdecTextFieldMovie *text, const char *str)
{
ParserData data;
const char *p;
- g_return_if_fail (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
+ g_return_if_fail (SWFDEC_IS_TEXT_FIELD_MOVIE (text));
g_return_if_fail (str != NULL);
data.cx = SWFDEC_AS_OBJECT (text)->context;
@@ -355,12 +355,12 @@ swfdec_edit_text_movie_html_parse (Swfde
while (p != NULL && *p != '\0') {
if (*p == '<') {
if (strncmp (p + 1, "!--", strlen ("!--")) == 0) {
- p = swfdec_edit_text_movie_html_parse_comment (&data, p);
+ p = swfdec_text_field_movie_html_parse_comment (&data, p);
} else {
- p = swfdec_edit_text_movie_html_parse_tag (&data, p);
+ p = swfdec_text_field_movie_html_parse_tag (&data, p);
}
} else {
- p = swfdec_edit_text_movie_html_parse_text (&data, p,
+ p = swfdec_text_field_movie_html_parse_text (&data, p,
text->condense_white);
}
}
@@ -391,7 +391,7 @@ swfdec_edit_text_movie_html_parse (Swfde
ParserTag *tag = (ParserTag *)data.tags_closed->data;
if (tag->index != tag->end_index) {
- swfdec_edit_text_movie_set_text_format (text, tag->format, tag->index,
+ swfdec_text_field_movie_set_text_format (text, tag->format, tag->index,
tag->end_index);
}
diff --git a/test/dump.c b/test/dump.c
index e0c3c63..adf0cb1 100644
--- a/test/dump.c
+++ b/test/dump.c
@@ -223,7 +223,7 @@ dump_shape (SwfdecShape *shape)
}
static void
-dump_edit_text (SwfdecEditText *text)
+dump_text_field (SwfdecTextField *text)
{
g_print (" %s\n", text->text_input ? text->text_input : "");
if (verbose) {
@@ -353,8 +353,8 @@ dump_object (gpointer value, gpointer de
if (SWFDEC_IS_TEXT (c)) {
dump_text (SWFDEC_TEXT (c));
}
- if (SWFDEC_IS_EDIT_TEXT (c)) {
- dump_edit_text (SWFDEC_EDIT_TEXT (c));
+ if (SWFDEC_IS_TEXT_FIELD (c)) {
+ dump_text_field (SWFDEC_TEXT_FIELD (c));
}
if (SWFDEC_IS_FONT (c)) {
dump_font (SWFDEC_FONT (c));
diff-tree ef5288e48b9b4cd61e44429dbf5db01598e9d066 (from parents)
Merge: ca558329498eba55d3b8b9f97d9714a1d33636a9 0dda3049b019a5a04045f6bdc36e80cd407b5f19
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 11:13:15 2007 +0300
Merge branch 'master' into textfield
diff-tree ca558329498eba55d3b8b9f97d9714a1d33636a9 (from 35f353b7f4ae6c7a69aa307832eb6ef164468207)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 10:51:51 2007 +0300
Add my name to bunch of edittext files' copyright headers
diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index 7950cfc..8ad6de7 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -1,5 +1,6 @@
/* Swfdec
* Copyright (C) 2006-2007 Benjamin Otte <otte at gnome.org>
+ * Pekka Lampila <pekka.lampila at iki.fi>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/libswfdec/swfdec_edittext.h b/libswfdec/swfdec_edittext.h
index 1d8f7e5..f7c6e22 100644
--- a/libswfdec/swfdec_edittext.h
+++ b/libswfdec/swfdec_edittext.h
@@ -1,5 +1,6 @@
/* Swfdec
* Copyright (C) 2006-2007 Benjamin Otte <otte at gnome.org>
+ * Pekka Lampila <pekka.lampila at iki.fi>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index 48f981e..4f68687 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -1,5 +1,6 @@
/* Swfdec
* Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
+ * Pekka Lampila <pekka.lampila at iki.fi>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/libswfdec/swfdec_edittext_movie.h b/libswfdec/swfdec_edittext_movie.h
index 9f0b6a9..103942b 100644
--- a/libswfdec/swfdec_edittext_movie.h
+++ b/libswfdec/swfdec_edittext_movie.h
@@ -1,5 +1,6 @@
/* Swfdec
* Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
+ * Pekka Lampila <pekka.lampila at iki.fi>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/libswfdec/swfdec_edittext_movie_as.c b/libswfdec/swfdec_edittext_movie_as.c
index 6fdafeb..bb58e9b 100644
--- a/libswfdec/swfdec_edittext_movie_as.c
+++ b/libswfdec/swfdec_edittext_movie_as.c
@@ -1,5 +1,6 @@
/* Swfdec
* Copyright (C) 2007 Benjamin Otte <otte at gnome.org>
+ * Pekka Lampila <pekka.lampila at iki.fi>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff-tree 35f353b7f4ae6c7a69aa307832eb6ef164468207 (from 4046fdb9a8b482579848e9ce282667fe89025298)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 10:42:36 2007 +0300
Add copyright header to swfdec_html_parser.c and remove an extra include
diff --git a/libswfdec/swfdec_html_parser.c b/libswfdec/swfdec_html_parser.c
index 3bfb688..60fb4e4 100644
--- a/libswfdec/swfdec_html_parser.c
+++ b/libswfdec/swfdec_html_parser.c
@@ -1,3 +1,22 @@
+/* Swfdec
+ * Copyright (C) 2007 Pekka Lampila <pekka.lampila at iki.fi>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -7,7 +26,6 @@
#include "swfdec_edittext_movie.h"
#include "swfdec_as_strings.h"
-#include "swfdec_font.h"
#include "swfdec_debug.h"
typedef struct {
diff-tree 4046fdb9a8b482579848e9ce282667fe89025298 (from 06751dc79e85534b6d8dd5f9316e149bf63ca203)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 10:33:42 2007 +0300
Mark garbage collected variables in EditTextMovie
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index 8e4c2f0..48f981e 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -373,7 +373,7 @@ static void
swfdec_edit_text_movie_dispose (GObject *object)
{
SwfdecEditTextMovie *text;
- GList *iter;
+ GSList *iter;
text = SWFDEC_EDIT_TEXT_MOVIE (object);
@@ -389,6 +389,29 @@ swfdec_edit_text_movie_dispose (GObject
}
static void
+swfdec_edit_text_movie_mark (SwfdecAsObject *object)
+{
+ SwfdecEditTextMovie *text;
+ GSList *iter;
+
+ text = SWFDEC_EDIT_TEXT_MOVIE (object);
+
+ swfdec_as_string_mark (text->text_input);
+ swfdec_as_string_mark (text->text_display);
+ swfdec_as_string_mark (text->variable);
+ swfdec_as_object_mark (SWFDEC_AS_OBJECT (text->format_new));
+ for (iter = text->formats; iter != NULL; iter = iter->next) {
+ swfdec_as_object_mark (
+ SWFDEC_AS_OBJECT (((SwfdecFormatIndex *)(iter->data))->format));
+ }
+ swfdec_as_object_mark (SWFDEC_AS_OBJECT (text->format_new));
+ if (text->style_sheet != NULL)
+ swfdec_as_object_mark (SWFDEC_AS_OBJECT (text->style_sheet));
+
+ SWFDEC_AS_OBJECT_CLASS (swfdec_edit_text_movie_parent_class)->mark (object);
+}
+
+static void
swfdec_edit_text_movie_iterate (SwfdecMovie *movie)
{
SwfdecEditTextMovie *text = SWFDEC_EDIT_TEXT_MOVIE (movie);
@@ -470,10 +493,13 @@ static void
swfdec_edit_text_movie_class_init (SwfdecEditTextMovieClass * g_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (g_class);
+ SwfdecAsObjectClass *asobject_class = SWFDEC_AS_OBJECT_CLASS (g_class);
SwfdecMovieClass *movie_class = SWFDEC_MOVIE_CLASS (g_class);
object_class->dispose = swfdec_edit_text_movie_dispose;
+ asobject_class->mark = swfdec_edit_text_movie_mark;
+
movie_class->init_movie = swfdec_edit_text_movie_init_movie;
movie_class->update_extents = swfdec_edit_text_movie_update_extents;
movie_class->render = swfdec_edit_text_movie_render;
diff-tree 06751dc79e85534b6d8dd5f9316e149bf63ca203 (from 17d7b4d7dd4685ec24d441ff07d31a22299916e3)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 10:24:14 2007 +0300
Free memory in SwfdecEdittextMovie
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index 6276167..8e4c2f0 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -339,13 +339,22 @@ swfdec_edit_text_movie_render (SwfdecMov
static void
swfdec_edit_text_movie_free_paragraphs (SwfdecEditTextMovie *text)
{
+ GList *iter;
int i;
if (text->paragraphs) {
- for (i = 0; text->paragraphs[i].text != NULL; i++) {
- // FIXME
- /*if (text->paragraphs[i].tab_stops != NULL)
- pango_tab_array_free (text->paragraphs[i].tab_stops);*/
+ for (i = 0; text->paragraphs[i].text != NULL; i++)
+ {
+ for (iter = text->paragraphs[i].blocks; iter != NULL; iter = iter->next) {
+ pango_tab_array_free (((SwfdecBlock *)(iter->data))->tab_stops);
+ }
+ g_list_free (text->paragraphs[i].blocks);
+
+ for (iter = text->paragraphs[i].attrs; iter != NULL; iter = iter->next) {
+ pango_attribute_destroy ((PangoAttribute *)(iter->data));
+ }
+ g_list_free (text->paragraphs[i].attrs);
+
if (text->paragraphs[i].attrs_list != NULL)
pango_attr_list_unref (text->paragraphs[i].attrs_list);
}
@@ -363,10 +372,19 @@ swfdec_edit_text_movie_format_changed (S
static void
swfdec_edit_text_movie_dispose (GObject *object)
{
- SwfdecEditTextMovie *text = SWFDEC_EDIT_TEXT_MOVIE (object);
+ SwfdecEditTextMovie *text;
+ GList *iter;
+
+ text = SWFDEC_EDIT_TEXT_MOVIE (object);
swfdec_edit_text_movie_free_paragraphs (text);
+ for (iter = text->formats; iter != NULL; iter = iter->next) {
+ g_free (text->formats->data);
+ text->formats->data = NULL;
+ }
+ g_slist_free (text->formats);
+
G_OBJECT_CLASS (swfdec_edit_text_movie_parent_class)->dispose (object);
}
diff-tree 17d7b4d7dd4685ec24d441ff07d31a22299916e3 (from parents)
Merge: 5bd4a248279cf4d905d39d66b985477939ad7859 d5d06f45e7c5a64725dd1c6fe061ff1e0fd15110
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 09:58:25 2007 +0300
Merge branch 'master' into textfield
Conflicts:
libswfdec/swfdec_initialize.h
diff --cc libswfdec/swfdec_initialize.h
index 7970384,6420e24..0921de8
@@@ -74,473 -74,454 +74,473 @@@
0x6E, 0x64, 0x53, 0x74, 0x6F, 0x70, 0x00, 0x64, 0x75, 0x70, 0x6C, 0x69, 0x63, 0x61, 0x74, 0x65,
0x4D, 0x6F, 0x76, 0x69, 0x65, 0x43, 0x6C, 0x69, 0x70, 0x00, 0x72, 0x65, 0x6D, 0x6F, 0x76, 0x65,
0x4D, 0x6F, 0x76, 0x69, 0x65, 0x43, 0x6C, 0x69, 0x70, 0x00, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44,
- 0x72, 0x61, 0x67, 0x00, 0x73, 0x74, 0x6F, 0x70, 0x44, 0x72, 0x61, 0x67, 0x00, 0x36, 0x63, 0x72,
- 0x65, 0x61, 0x74, 0x65, 0x45, 0x6D, 0x70, 0x74, 0x79, 0x4D, 0x6F, 0x76, 0x69, 0x65, 0x43, 0x6C,
- 0x69, 0x70, 0x2C, 0x36, 0x62, 0x65, 0x67, 0x69, 0x6E, 0x46, 0x69, 0x6C, 0x6C, 0x2C, 0x36, 0x62,
- 0x65, 0x67, 0x69, 0x6E, 0x47, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6E, 0x74, 0x46, 0x69, 0x6C, 0x6C,
- 0x2C, 0x36, 0x6D, 0x6F, 0x76, 0x65, 0x54, 0x6F, 0x2C, 0x36, 0x6C, 0x69, 0x6E, 0x65, 0x54, 0x6F,
- 0x2C, 0x36, 0x63, 0x75, 0x72, 0x76, 0x65, 0x54, 0x6F, 0x2C, 0x36, 0x6C, 0x69, 0x6E, 0x65, 0x53,
- 0x74, 0x79, 0x6C, 0x65, 0x2C, 0x36, 0x65, 0x6E, 0x64, 0x46, 0x69, 0x6C, 0x6C, 0x2C, 0x36, 0x63,
- 0x6C, 0x65, 0x61, 0x72, 0x00, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6C, 0x64, 0x00, 0x54,
- 0x65, 0x78, 0x74, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x53,
- 0x68, 0x65, 0x65, 0x74, 0x00, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x00, 0x6F, 0x62, 0x6A, 0x65, 0x63,
- 0x74, 0x00, 0x6F, 0x5F, 0x6E, 0x65, 0x77, 0x00, 0x70, 0x72, 0x6F, 0x70, 0x00, 0x63, 0x6C, 0x65,
- 0x61, 0x72, 0x00, 0x5F, 0x63, 0x73, 0x73, 0x00, 0x5F, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x00,
- 0x67, 0x65, 0x74, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x00, 0x73, 0x65,
- 0x74, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x64, 0x6F, 0x54,
- 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x00, 0x67, 0x65, 0x74, 0x53, 0x74, 0x79, 0x6C,
- 0x65, 0x4E, 0x61, 0x6D, 0x65, 0x73, 0x00, 0x74, 0x6D, 0x70, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x73,
- 0x00, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x00, 0x66, 0x6F, 0x72, 0x6D, 0x61,
- 0x74, 0x00, 0x74, 0x65, 0x78, 0x74, 0x41, 0x6C, 0x69, 0x67, 0x6E, 0x00, 0x61, 0x6C, 0x69, 0x67,
- 0x6E, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x00, 0x62, 0x6F, 0x6C,
- 0x64, 0x00, 0x6E, 0x6F, 0x72, 0x6D, 0x61, 0x6C, 0x00, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x00, 0x70,
- 0x61, 0x72, 0x73, 0x65, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x00, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61,
- 0x79, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x46, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x00, 0x66, 0x6F, 0x6E,
- 0x74, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x53, 0x53, 0x46, 0x6F, 0x6E, 0x74, 0x46, 0x61,
- 0x6D, 0x69, 0x6C, 0x79, 0x00, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6E, 0x64, 0x65, 0x6E, 0x74, 0x00,
- 0x69, 0x6E, 0x64, 0x65, 0x6E, 0x74, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, 0x6E, 0x74, 0x00,
- 0x66, 0x6F, 0x6E, 0x74, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x69, 0x74, 0x61, 0x6C, 0x69, 0x63,
- 0x00, 0x6B, 0x65, 0x72, 0x6E, 0x69, 0x6E, 0x67, 0x00, 0x74, 0x72, 0x75, 0x65, 0x00, 0x66, 0x61,
- 0x6C, 0x73, 0x65, 0x00, 0x6C, 0x65, 0x61, 0x64, 0x69, 0x6E, 0x67, 0x00, 0x6D, 0x61, 0x72, 0x67,
- 0x69, 0x6E, 0x4C, 0x65, 0x66, 0x74, 0x00, 0x6C, 0x65, 0x66, 0x74, 0x4D, 0x61, 0x72, 0x67, 0x69,
- 0x6E, 0x00, 0x6C, 0x65, 0x74, 0x74, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x69, 0x6E, 0x67, 0x00,
- 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x52, 0x69, 0x67, 0x68, 0x74, 0x00, 0x72, 0x69, 0x67, 0x68,
- 0x74, 0x4D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65,
- 0x00, 0x73, 0x69, 0x7A, 0x65, 0x00, 0x74, 0x65, 0x78, 0x74, 0x44, 0x65, 0x63, 0x6F, 0x72, 0x61,
- 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x75, 0x6E, 0x64, 0x65, 0x72, 0x6C, 0x69, 0x6E, 0x65, 0x00, 0x6E,
- 0x6F, 0x6E, 0x65, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x53, 0x53, 0x00, 0x63, 0x73, 0x73,
- 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x53, 0x53, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x6E, 0x61,
- 0x6C, 0x00, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x00, 0x6E, 0x75, 0x6C, 0x6C, 0x00, 0x70, 0x61,
- 0x72, 0x73, 0x65, 0x00, 0x73, 0x65, 0x74, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6C, 0x00,
- 0x63, 0x6C, 0x65, 0x61, 0x72, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6C, 0x00, 0x73, 0x65,
- 0x74, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x00, 0x63, 0x6C, 0x65, 0x61, 0x72, 0x54, 0x69,
- 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x00, 0x9B, 0x12, 0x00, 0x41, 0x73, 0x42, 0x72, 0x6F, 0x61, 0x64,
- 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0x0D, 0x00, 0x4C, 0x6F,
- 0x61, 0x64, 0x56, 0x61, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x13, 0x00, 0x08, 0x00,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
- 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x02, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00,
- 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x03,
- 0x1C, 0x96, 0x13, 0x00, 0x08, 0x04, 0x07, 0x08, 0x00, 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, 0x00,
- 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00,
- 0x00, 0x02, 0x08, 0x03, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D,
- 0x17, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x07, 0x07, 0x0C, 0x00, 0x00,
- 0x00, 0x07, 0x65, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00,
- 0x78, 0x00, 0x3C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
- 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08,
- 0x0A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x0C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x52, 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x9B, 0x07, 0x00, 0x00,
- 0x01, 0x00, 0x78, 0x00, 0x8F, 0x00, 0x96, 0x04, 0x00, 0x08, 0x0E, 0x08, 0x09, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x0C, 0x4E, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x41, 0x96, 0x07, 0x00, 0x08, 0x0F,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x99, 0x02, 0x00, 0x09, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0F,
- 0x4C, 0x1C, 0x50, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x10, 0x4E, 0x48, 0x12, 0x9D, 0x02, 0x00, 0x42, 0x00, 0x96, 0x02, 0x00,
- 0x08, 0x0E, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C,
- 0x49, 0x12, 0x9D, 0x02, 0x00, 0x23, 0x00, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08,
- 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0E, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x99, 0x02, 0x00, 0x9C, 0xFF, 0x96,
- 0x02, 0x00, 0x05, 0x00, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x12, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x6F, 0x00, 0x73, 0x00, 0x96, 0x02, 0x00, 0x08, 0x13,
- 0x1C, 0x96, 0x13, 0x00, 0x08, 0x07, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, 0x00,
- 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96,
- 0x04, 0x00, 0x08, 0x08, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x4E, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x13, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x0B, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x0B, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x0C, 0x07, 0x00,
- 0x00, 0x00, 0x00, 0x42, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x08, 0x14, 0x08,
- 0x13, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x4F, 0x96,
- 0x08, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x02, 0x08, 0x06, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03,
- 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x8C, 0x00, 0x08, 0x15, 0x08, 0x16, 0x07, 0x12,
- 0x00, 0x00, 0x00, 0x08, 0x17, 0x07, 0x08, 0x00, 0x00, 0x00, 0x08, 0x18, 0x07, 0x14, 0x00, 0x00,
- 0x00, 0x08, 0x19, 0x07, 0x11, 0x00, 0x00, 0x00, 0x08, 0x1A, 0x07, 0x2E, 0x00, 0x00, 0x00, 0x08,
- 0x1B, 0x07, 0x28, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x07, 0x23, 0x00, 0x00, 0x00, 0x08, 0x1D, 0x07,
- 0x0D, 0x00, 0x00, 0x00, 0x08, 0x1E, 0x07, 0x1B, 0x00, 0x00, 0x00, 0x08, 0x1F, 0x07, 0x24, 0x00,
- 0x00, 0x00, 0x08, 0x20, 0x07, 0x2D, 0x00, 0x00, 0x00, 0x08, 0x21, 0x07, 0x25, 0x00, 0x00, 0x00,
- 0x08, 0x22, 0x07, 0x22, 0x00, 0x00, 0x00, 0x08, 0x23, 0x07, 0x21, 0x00, 0x00, 0x00, 0x08, 0x24,
- 0x07, 0x27, 0x00, 0x00, 0x00, 0x08, 0x25, 0x07, 0x10, 0x00, 0x00, 0x00, 0x08, 0x26, 0x07, 0x20,
- 0x00, 0x00, 0x00, 0x08, 0x27, 0x07, 0x09, 0x00, 0x00, 0x00, 0x08, 0x28, 0x07, 0x26, 0x00, 0x00,
- 0x00, 0x07, 0x13, 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x29, 0x07, 0x20, 0x03,
- 0x00, 0x00, 0x08, 0x15, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D,
- 0x17, 0x96, 0x02, 0x00, 0x08, 0x15, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08,
- 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12, 0x52, 0x17, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00,
- 0x00, 0x02, 0x08, 0x15, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D,
- 0x17, 0x96, 0x07, 0x00, 0x08, 0x2A, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x02, 0x00,
- 0x08, 0x2A, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x2B, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00,
- 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2A,
- 0x1C, 0x96, 0x13, 0x00, 0x08, 0x2C, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00, 0x00, 0x00,
- 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2A, 0x1C, 0x96,
- 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12, 0x52,
- 0x17, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x2A, 0x1C, 0x96, 0x07, 0x00,
- 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x07, 0x00, 0x08, 0x2D, 0x07, 0x00,
- 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01,
- 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12, 0x52, 0x17, 0x96, 0x0E, 0x00,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x2E, 0x07, 0x9A, 0x02, 0x00, 0x00, 0x08, 0x2D, 0x1C, 0x96,
- 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x02, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x2F,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x31, 0x08, 0x32, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x33,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
- 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
- 0x13, 0x00, 0x08, 0x34, 0x07, 0x03, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02,
- 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x35, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00,
- 0x08, 0x36, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00, 0x73, 0x72, 0x63, 0x00, 0x64, 0x00, 0x96, 0x02,
- 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x38, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x19, 0x00, 0x96, 0x09, 0x00,
- 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x52,
- 0x17, 0x99, 0x02, 0x00, 0x2C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96, 0x07, 0x00, 0x07,
- 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x34, 0x52, 0x17, 0x96, 0x09,
- 0x00, 0x05, 0x01, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35,
- 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
- 0x02, 0x00, 0x08, 0x39, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x96, 0x03, 0x00, 0x08,
- 0x3A, 0x02, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x46, 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00,
- 0x02, 0x49, 0x9D, 0x02, 0x00, 0x91, 0x00, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x04, 0x00, 0x3C, 0x96,
- 0x02, 0x00, 0x08, 0x3A, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x41, 0x00, 0x96,
- 0x02, 0x00, 0x08, 0x3A, 0x4C, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x3D, 0x08, 0x0A, 0x1C, 0x96, 0x07,
- 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x96, 0x02, 0x00, 0x08, 0x3C, 0x47,
- 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x4E, 0x96, 0x07, 0x00,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x47, 0x1D, 0x99, 0x02, 0x00, 0x33, 0x00,
- 0x96, 0x04, 0x00, 0x08, 0x3A, 0x08, 0x0A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
- 0x08, 0x3B, 0x3D, 0x96, 0x02, 0x00, 0x08, 0x3C, 0x47, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B,
- 0x3D, 0x47, 0x1D, 0x99, 0x02, 0x00, 0x61, 0xFF, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x1C, 0x3E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x3E, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x3F, 0x4E, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x40, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00,
- 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x41, 0x4E, 0x3E, 0x4F, 0x96, 0x08,
- 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x02, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
- 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08,
- 0x42, 0x07, 0x10, 0x00, 0x00, 0x00, 0x07, 0xF4, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x0E, 0x00, 0x07, 0x06, 0x00, 0x00, 0x00, 0x08, 0x44, 0x07, 0xF4,
- 0x01, 0x00, 0x00, 0x08, 0x42, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07,
- 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x45, 0x07, 0x00, 0x00,
- 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D,
- 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
- 0x46, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
- 0x96, 0x13, 0x00, 0x08, 0x47, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07,
- 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x48, 0x07, 0x03, 0x00, 0x00, 0x00, 0x07, 0xFD,
- 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x49, 0x07, 0x04, 0x00,
- 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
- 0x4A, 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
- 0x96, 0x13, 0x00, 0x08, 0x39, 0x07, 0x06, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07,
- 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x4B, 0x07, 0x07, 0x00, 0x00, 0x00, 0x07, 0xFD,
+ 0x72, 0x61, 0x67, 0x00, 0x73, 0x74, 0x6F, 0x70, 0x44, 0x72, 0x61, 0x67, 0x00, 0x63, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x45, 0x6D, 0x70, 0x74, 0x79, 0x4D, 0x6F, 0x76, 0x69, 0x65, 0x43, 0x6C, 0x69,
+ 0x70, 0x00, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6C,
+ 0x64, 0x00, 0x67, 0x65, 0x74, 0x44, 0x65, 0x70, 0x74, 0x68, 0x2C, 0x63, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x45, 0x6D, 0x70, 0x74, 0x79, 0x4D, 0x6F, 0x76, 0x69, 0x65, 0x43, 0x6C, 0x69, 0x70, 0x00,
+ 0x36, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6D, 0x70, 0x74, 0x79, 0x4D, 0x6F, 0x76, 0x69,
+ 0x65, 0x43, 0x6C, 0x69, 0x70, 0x2C, 0x36, 0x62, 0x65, 0x67, 0x69, 0x6E, 0x46, 0x69, 0x6C, 0x6C,
+ 0x2C, 0x36, 0x62, 0x65, 0x67, 0x69, 0x6E, 0x47, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6E, 0x74, 0x46,
+ 0x69, 0x6C, 0x6C, 0x2C, 0x36, 0x6D, 0x6F, 0x76, 0x65, 0x54, 0x6F, 0x2C, 0x36, 0x6C, 0x69, 0x6E,
+ 0x65, 0x54, 0x6F, 0x2C, 0x36, 0x63, 0x75, 0x72, 0x76, 0x65, 0x54, 0x6F, 0x2C, 0x36, 0x6C, 0x69,
+ 0x6E, 0x65, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x2C, 0x36, 0x65, 0x6E, 0x64, 0x46, 0x69, 0x6C, 0x6C,
+ 0x2C, 0x36, 0x63, 0x6C, 0x65, 0x61, 0x72, 0x00, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6C,
+ 0x64, 0x00, 0x73, 0x65, 0x74, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00,
+ 0x67, 0x65, 0x74, 0x4E, 0x65, 0x77, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74,
+ 0x00, 0x73, 0x65, 0x74, 0x4E, 0x65, 0x77, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6F, 0x72, 0x6D, 0x61,
+ 0x74, 0x00, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x53, 0x74, 0x79,
+ 0x6C, 0x65, 0x53, 0x68, 0x65, 0x65, 0x74, 0x00, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x00, 0x6F, 0x62,
+ 0x6A, 0x65, 0x63, 0x74, 0x00, 0x6F, 0x5F, 0x6E, 0x65, 0x77, 0x00, 0x70, 0x72, 0x6F, 0x70, 0x00,
+ 0x63, 0x6C, 0x65, 0x61, 0x72, 0x00, 0x5F, 0x63, 0x73, 0x73, 0x00, 0x5F, 0x73, 0x74, 0x79, 0x6C,
+ 0x65, 0x73, 0x00, 0x67, 0x65, 0x74, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x6E, 0x61, 0x6D, 0x65,
+ 0x00, 0x73, 0x65, 0x74, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x00,
+ 0x64, 0x6F, 0x54, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x00, 0x67, 0x65, 0x74, 0x53,
+ 0x74, 0x79, 0x6C, 0x65, 0x4E, 0x61, 0x6D, 0x65, 0x73, 0x00, 0x74, 0x6D, 0x70, 0x00, 0x6E, 0x61,
+ 0x6D, 0x65, 0x73, 0x00, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x00, 0x66, 0x6F,
+ 0x72, 0x6D, 0x61, 0x74, 0x00, 0x74, 0x65, 0x78, 0x74, 0x41, 0x6C, 0x69, 0x67, 0x6E, 0x00, 0x61,
+ 0x6C, 0x69, 0x67, 0x6E, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x00,
+ 0x62, 0x6F, 0x6C, 0x64, 0x00, 0x6E, 0x6F, 0x72, 0x6D, 0x61, 0x6C, 0x00, 0x63, 0x6F, 0x6C, 0x6F,
+ 0x72, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x00, 0x64, 0x69, 0x73,
+ 0x70, 0x6C, 0x61, 0x79, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x46, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x00,
+ 0x66, 0x6F, 0x6E, 0x74, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x53, 0x53, 0x46, 0x6F, 0x6E,
+ 0x74, 0x46, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x00, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6E, 0x64, 0x65,
+ 0x6E, 0x74, 0x00, 0x69, 0x6E, 0x64, 0x65, 0x6E, 0x74, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49,
+ 0x6E, 0x74, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x69, 0x74, 0x61,
+ 0x6C, 0x69, 0x63, 0x00, 0x6B, 0x65, 0x72, 0x6E, 0x69, 0x6E, 0x67, 0x00, 0x74, 0x72, 0x75, 0x65,
+ 0x00, 0x66, 0x61, 0x6C, 0x73, 0x65, 0x00, 0x6C, 0x65, 0x61, 0x64, 0x69, 0x6E, 0x67, 0x00, 0x6D,
+ 0x61, 0x72, 0x67, 0x69, 0x6E, 0x4C, 0x65, 0x66, 0x74, 0x00, 0x6C, 0x65, 0x66, 0x74, 0x4D, 0x61,
+ 0x72, 0x67, 0x69, 0x6E, 0x00, 0x6C, 0x65, 0x74, 0x74, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x69,
+ 0x6E, 0x67, 0x00, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x52, 0x69, 0x67, 0x68, 0x74, 0x00, 0x72,
+ 0x69, 0x67, 0x68, 0x74, 0x4D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x53,
+ 0x69, 0x7A, 0x65, 0x00, 0x73, 0x69, 0x7A, 0x65, 0x00, 0x74, 0x65, 0x78, 0x74, 0x44, 0x65, 0x63,
+ 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x75, 0x6E, 0x64, 0x65, 0x72, 0x6C, 0x69, 0x6E,
+ 0x65, 0x00, 0x6E, 0x6F, 0x6E, 0x65, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x53, 0x53, 0x00,
+ 0x63, 0x73, 0x73, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x53, 0x53, 0x49, 0x6E, 0x74, 0x65,
+ 0x72, 0x6E, 0x61, 0x6C, 0x00, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x00, 0x6E, 0x75, 0x6C, 0x6C,
+ 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x00, 0x73, 0x65, 0x74, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x76,
+ 0x61, 0x6C, 0x00, 0x63, 0x6C, 0x65, 0x61, 0x72, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6C,
+ 0x00, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x00, 0x63, 0x6C, 0x65, 0x61,
+ 0x72, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x00, 0x9B, 0x12, 0x00, 0x41, 0x73, 0x42, 0x72,
+ 0x6F, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0x0D,
+ 0x00, 0x4C, 0x6F, 0x61, 0x64, 0x56, 0x61, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x13,
+ 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00,
+ 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x02, 0x07, 0x01, 0x00, 0x00, 0x00,
+ 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x02,
+ 0x00, 0x08, 0x03, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x04, 0x07, 0x08, 0x00, 0x00, 0x00, 0x07, 0x65,
+ 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x08, 0x00, 0x07,
+ 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x03, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00,
+ 0x08, 0x05, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x07, 0x07,
+ 0x0C, 0x00, 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01,
+ 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x9B, 0x07, 0x00,
+ 0x00, 0x01, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x07, 0x00,
+ 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x52, 0x17, 0x96,
+ 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x52, 0x17, 0x96, 0x02, 0x00,
+ 0x05, 0x01, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x9B,
+ 0x07, 0x00, 0x00, 0x01, 0x00, 0x78, 0x00, 0x8F, 0x00, 0x96, 0x04, 0x00, 0x08, 0x0E, 0x08, 0x09,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x41, 0x96, 0x07,
+ 0x00, 0x08, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x99, 0x02, 0x00, 0x09, 0x00, 0x96, 0x02,
+ 0x00, 0x08, 0x0F, 0x4C, 0x1C, 0x50, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x0E, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x10, 0x4E, 0x48, 0x12, 0x9D, 0x02, 0x00, 0x42, 0x00,
+ 0x96, 0x02, 0x00, 0x08, 0x0E, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x4E, 0x96, 0x02, 0x00,
+ 0x08, 0x0A, 0x1C, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x23, 0x00, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
+ 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0E, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x99, 0x02, 0x00,
+ 0x9C, 0xFF, 0x96, 0x02, 0x00, 0x05, 0x00, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x12, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x6F, 0x00, 0x73, 0x00, 0x96, 0x02,
+ 0x00, 0x08, 0x13, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x07, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x65,
0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x4C, 0x07, 0x08, 0x00,
- 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
- 0x96, 0x13, 0x00, 0x08, 0x4D, 0x07, 0x09, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07,
- 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x10,
- 0x00, 0x08, 0x30, 0x08, 0x4E, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
- 0x45, 0x40, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x30, 0x08, 0x4D, 0x1C,
- 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08,
- 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x33, 0x07, 0x00, 0x00,
- 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
- 0x4F, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
- 0x96, 0x13, 0x00, 0x08, 0x50, 0x07, 0x0B, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07,
- 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x51, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0xFD,
+ 0x13, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x4E,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x0B, 0x08, 0x06, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x07, 0x00, 0x08,
+ 0x0C, 0x07, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00,
+ 0x08, 0x14, 0x08, 0x13, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D,
+ 0x17, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x02, 0x08, 0x06, 0x1C, 0x96, 0x07,
+ 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x8C, 0x00, 0x08, 0x15, 0x08,
+ 0x16, 0x07, 0x12, 0x00, 0x00, 0x00, 0x08, 0x17, 0x07, 0x08, 0x00, 0x00, 0x00, 0x08, 0x18, 0x07,
+ 0x14, 0x00, 0x00, 0x00, 0x08, 0x19, 0x07, 0x11, 0x00, 0x00, 0x00, 0x08, 0x1A, 0x07, 0x2E, 0x00,
+ 0x00, 0x00, 0x08, 0x1B, 0x07, 0x28, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x07, 0x23, 0x00, 0x00, 0x00,
+ 0x08, 0x1D, 0x07, 0x0D, 0x00, 0x00, 0x00, 0x08, 0x1E, 0x07, 0x1B, 0x00, 0x00, 0x00, 0x08, 0x1F,
+ 0x07, 0x24, 0x00, 0x00, 0x00, 0x08, 0x20, 0x07, 0x2D, 0x00, 0x00, 0x00, 0x08, 0x21, 0x07, 0x25,
+ 0x00, 0x00, 0x00, 0x08, 0x22, 0x07, 0x22, 0x00, 0x00, 0x00, 0x08, 0x23, 0x07, 0x21, 0x00, 0x00,
+ 0x00, 0x08, 0x24, 0x07, 0x27, 0x00, 0x00, 0x00, 0x08, 0x25, 0x07, 0x10, 0x00, 0x00, 0x00, 0x08,
+ 0x26, 0x07, 0x20, 0x00, 0x00, 0x00, 0x08, 0x27, 0x07, 0x09, 0x00, 0x00, 0x00, 0x08, 0x28, 0x07,
+ 0x26, 0x00, 0x00, 0x00, 0x07, 0x13, 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x29,
+ 0x07, 0x20, 0x03, 0x00, 0x00, 0x08, 0x15, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x15, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
+ 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12, 0x52, 0x17, 0x96, 0x08, 0x00, 0x07,
+ 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x15, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00,
+ 0x08, 0x05, 0x3D, 0x17, 0x96, 0x07, 0x00, 0x08, 0x2A, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x1D,
+ 0x96, 0x02, 0x00, 0x08, 0x2A, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x2B, 0x07, 0x00, 0x00, 0x00, 0x00,
+ 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x2A, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x2C, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x05,
0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x35, 0x9B, 0x05, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x36, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00, 0x73, 0x72, 0x63,
- 0x00, 0x72, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x9D,
- 0x02, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x05,
- 0x00, 0x4F, 0x96, 0x09, 0x00, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x35, 0x52, 0x17, 0x99, 0x02, 0x00, 0x3A, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09,
- 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96,
- 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x51, 0x52,
+ 0x2A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x12, 0x52, 0x17, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x2A, 0x1C,
+ 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x07, 0x00, 0x08,
+ 0x2D, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x1C, 0x96, 0x07,
+ 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12, 0x52, 0x17,
+ 0x96, 0x0E, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x2E, 0x07, 0x9A, 0x02, 0x00, 0x00, 0x08,
+ 0x2D, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x02, 0x3D, 0x17, 0x96, 0x02,
+ 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x31, 0x08,
+ 0x32, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13,
+ 0x00, 0x08, 0x33, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00,
+ 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x34, 0x07, 0x03, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00,
+ 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x35, 0x9B, 0x05, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
+ 0x96, 0x02, 0x00, 0x08, 0x36, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00, 0x73, 0x72, 0x63, 0x00, 0x64,
+ 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x05, 0x01, 0x4F, 0x96,
+ 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x19, 0x00,
+ 0x96, 0x09, 0x00, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x35, 0x52, 0x17, 0x99, 0x02, 0x00, 0x2C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96,
+ 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x34, 0x52,
0x17, 0x96, 0x09, 0x00, 0x05, 0x01, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x35, 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x3E, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x96,
- 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3F, 0x4E, 0x3E, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x40, 0x9B, 0x05,
- 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x41, 0x4E, 0x3E, 0x4F, 0x96, 0x07, 0x00, 0x08, 0x52, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x1D,
- 0x96, 0x02, 0x00, 0x08, 0x52, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x53, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x52, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x53, 0x4E, 0x96, 0x13,
- 0x00, 0x08, 0x54, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0B, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00,
- 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x52,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x53, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x54, 0x52, 0x17, 0x96, 0x02,
- 0x00, 0x08, 0x52, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x53, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x54, 0x3A,
- 0x17, 0x96, 0x02, 0x00, 0x08, 0x55, 0x9B, 0x0C, 0x00, 0x00, 0x01, 0x00, 0x74, 0x61, 0x72, 0x67,
- 0x65, 0x74, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x56,
- 0x08, 0x56, 0x1C, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x09, 0x1C,
- 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x1D, 0x96, 0x09, 0x00,
- 0x08, 0x57, 0x07, 0xBC, 0x02, 0x00, 0x00, 0x08, 0x55, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
- 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07,
- 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x55, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07,
- 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x59, 0x9B, 0x0C, 0x00, 0x00, 0x01,
- 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x5B, 0x00, 0x96, 0x09, 0x00, 0x08, 0x5C, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x08, 0x5A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x5B, 0x52, 0x3C, 0x96, 0x02,
- 0x00, 0x08, 0x5C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x5D, 0x49, 0x9D, 0x02, 0x00, 0x2D, 0x00, 0x96,
- 0x02, 0x00, 0x08, 0x5C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x5E, 0x49, 0x9D, 0x02, 0x00, 0x0E, 0x00,
- 0x96, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x99, 0x02, 0x00, 0x09, 0x00, 0x96, 0x05,
- 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x3E, 0x99, 0x02, 0x00, 0x09, 0x00, 0x96, 0x05, 0x00, 0x07,
- 0x02, 0x00, 0x00, 0x00, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x5F, 0x9B, 0x17, 0x00, 0x00, 0x03, 0x00, 0x75, 0x72, 0x6C,
- 0x00, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x97,
- 0x00, 0x96, 0x02, 0x00, 0x08, 0x56, 0x1C, 0x44, 0x96, 0x02, 0x00, 0x08, 0x60, 0x49, 0x12, 0x9D,
- 0x02, 0x00, 0x08, 0x00, 0x96, 0x04, 0x00, 0x08, 0x56, 0x08, 0x4E, 0x1D, 0x96, 0x04, 0x00, 0x08,
- 0x61, 0x08, 0x5A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x59, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00, 0x3E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C,
- 0x96, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00, 0x15, 0x00, 0x96, 0x02,
- 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x56, 0x1C, 0x9A, 0x01, 0x00, 0x02, 0x99, 0x02,
- 0x00, 0x10, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x56, 0x1C, 0x9A,
- 0x01, 0x00, 0x01, 0x99, 0x02, 0x00, 0x10, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x56, 0x1C, 0x9A, 0x01, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x63, 0x9B, 0x10, 0x00, 0x00, 0x02, 0x00,
- 0x75, 0x72, 0x6C, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x99, 0x00, 0x96, 0x04, 0x00,
- 0x08, 0x61, 0x08, 0x5A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x59, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x20, 0x96, 0x02,
- 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00,
- 0x4A, 0x00, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
- 0x49, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0xC2, 0x99, 0x02, 0x00, 0x16,
- 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0xC1, 0x99, 0x02, 0x00, 0x16, 0x00, 0x96, 0x02, 0x00, 0x08,
- 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01,
- 0x00, 0xC0, 0x8B, 0x01, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x65, 0x9B, 0x10, 0x00, 0x00, 0x02, 0x00, 0x75, 0x72,
- 0x6C, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x99, 0x00, 0x96, 0x04, 0x00, 0x08, 0x61,
- 0x08, 0x5A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x59, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x20, 0x96, 0x02, 0x00, 0x08,
- 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00, 0x4A, 0x00,
- 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x49, 0x9D,
- 0x02, 0x00, 0x1B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0x42, 0x99, 0x02, 0x00, 0x16, 0x00, 0x96,
+ 0x00, 0x08, 0x35, 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x39, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x96,
+ 0x03, 0x00, 0x08, 0x3A, 0x02, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x46, 0x87, 0x01, 0x00, 0x00,
+ 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x91, 0x00, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x04,
+ 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00,
+ 0x41, 0x00, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x4C, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x3D, 0x08, 0x0A,
+ 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x96, 0x02, 0x00,
+ 0x08, 0x3C, 0x47, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x4E,
+ 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x47, 0x1D, 0x99, 0x02,
+ 0x00, 0x33, 0x00, 0x96, 0x04, 0x00, 0x08, 0x3A, 0x08, 0x0A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01,
+ 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x96, 0x02, 0x00, 0x08, 0x3C, 0x47, 0x96, 0x02, 0x00, 0x08,
+ 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00,
+ 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x1D, 0x99, 0x02, 0x00, 0x61, 0xFF, 0x96, 0x02, 0x00, 0x08, 0x3A,
+ 0x1C, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
+ 0x02, 0x00, 0x08, 0x3E, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x96, 0x02, 0x00, 0x08,
+ 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3F, 0x4E, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x40, 0x9B, 0x05, 0x00, 0x00, 0x00,
+ 0x00, 0x0D, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x41, 0x4E, 0x3E,
+ 0x4F, 0x96, 0x08, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x02, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96,
+ 0x13, 0x00, 0x08, 0x42, 0x07, 0x10, 0x00, 0x00, 0x00, 0x07, 0xF4, 0x01, 0x00, 0x00, 0x07, 0x02,
+ 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x0E, 0x00, 0x07, 0x06, 0x00, 0x00, 0x00, 0x08,
+ 0x44, 0x07, 0xF4, 0x01, 0x00, 0x00, 0x08, 0x42, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
+ 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x45,
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
+ 0x43, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
+ 0x13, 0x00, 0x08, 0x46, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02,
+ 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x47, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00,
+ 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x48, 0x07, 0x03, 0x00, 0x00,
+ 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96,
+ 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x49,
+ 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
+ 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
+ 0x13, 0x00, 0x08, 0x4A, 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02,
+ 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x39, 0x07, 0x06, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00,
+ 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x45,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x4B, 0x07, 0x07, 0x00, 0x00,
+ 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96,
+ 0x02, 0x00, 0x08, 0x45, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x4C,
+ 0x07, 0x08, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
+ 0x01, 0x3D, 0x4F, 0x96, 0x13, 0x00, 0x08, 0x4D, 0x07, 0x09, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00,
+ 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x4D,
+ 0x1C, 0x96, 0x10, 0x00, 0x08, 0x30, 0x08, 0x4E, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00,
+ 0x00, 0x00, 0x08, 0x45, 0x40, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x30,
+ 0x08, 0x4D, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96,
+ 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x33,
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08,
+ 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
+ 0x13, 0x00, 0x08, 0x4F, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02,
+ 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x50, 0x07, 0x0B, 0x00, 0x00, 0x00, 0x07, 0xFD, 0x00,
+ 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x51, 0x07, 0x0C, 0x00, 0x00,
+ 0x00, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96,
+ 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x35,
+ 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x36, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00,
+ 0x73, 0x72, 0x63, 0x00, 0x72, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96, 0x01, 0x00, 0x02,
+ 0x49, 0x12, 0x9D, 0x02, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04, 0x00,
+ 0x08, 0x37, 0x05, 0x00, 0x4F, 0x96, 0x09, 0x00, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08,
+ 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x52, 0x17, 0x99, 0x02, 0x00, 0x3A, 0x00, 0x96, 0x02,
+ 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x38, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x51, 0x52, 0x17, 0x96, 0x09, 0x00, 0x05, 0x01, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x3E, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00,
+ 0x0D, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3F, 0x4E, 0x3E, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x4D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x40, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x41, 0x4E, 0x3E, 0x4F, 0x96, 0x07, 0x00, 0x08, 0x52, 0x07, 0x00, 0x00, 0x00,
+ 0x00, 0x43, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x52, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x53, 0x07, 0x00,
+ 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x52, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x53,
+ 0x4E, 0x96, 0x13, 0x00, 0x08, 0x54, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0B, 0x00, 0x00, 0x00,
+ 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x52, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x53, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x54, 0x52,
+ 0x17, 0x96, 0x02, 0x00, 0x08, 0x52, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x53, 0x4E, 0x96, 0x02, 0x00,
+ 0x08, 0x54, 0x3A, 0x17, 0x96, 0x02, 0x00, 0x08, 0x55, 0x9B, 0x0C, 0x00, 0x00, 0x01, 0x00, 0x74,
+ 0x61, 0x72, 0x67, 0x65, 0x74, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04,
+ 0x00, 0x08, 0x56, 0x08, 0x56, 0x1C, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02,
+ 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x1D,
+ 0x96, 0x09, 0x00, 0x08, 0x57, 0x07, 0xBC, 0x02, 0x00, 0x00, 0x08, 0x55, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96,
+ 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x55, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30,
+ 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x02, 0x00,
+ 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x59, 0x9B, 0x0C,
+ 0x00, 0x00, 0x01, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x5B, 0x00, 0x96, 0x09, 0x00,
+ 0x08, 0x5C, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x5A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x5B, 0x52,
+ 0x3C, 0x96, 0x02, 0x00, 0x08, 0x5C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x5D, 0x49, 0x9D, 0x02, 0x00,
+ 0x2D, 0x00, 0x96, 0x02, 0x00, 0x08, 0x5C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x5E, 0x49, 0x9D, 0x02,
+ 0x00, 0x0E, 0x00, 0x96, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x99, 0x02, 0x00, 0x09,
+ 0x00, 0x96, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x3E, 0x99, 0x02, 0x00, 0x09, 0x00, 0x96,
+ 0x05, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x5F, 0x9B, 0x17, 0x00, 0x00, 0x03, 0x00,
+ 0x75, 0x72, 0x6C, 0x00, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F,
+ 0x64, 0x00, 0x97, 0x00, 0x96, 0x02, 0x00, 0x08, 0x56, 0x1C, 0x44, 0x96, 0x02, 0x00, 0x08, 0x60,
+ 0x49, 0x12, 0x9D, 0x02, 0x00, 0x08, 0x00, 0x96, 0x04, 0x00, 0x08, 0x56, 0x08, 0x4E, 0x1D, 0x96,
+ 0x04, 0x00, 0x08, 0x61, 0x08, 0x5A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08,
+ 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x59, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96,
+ 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00, 0x3E, 0x00, 0x96, 0x02, 0x00,
+ 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00, 0x15,
+ 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x56, 0x1C, 0x9A, 0x01, 0x00,
+ 0x02, 0x99, 0x02, 0x00, 0x10, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x56, 0x1C, 0x9A, 0x01, 0x00, 0x01, 0x99, 0x02, 0x00, 0x10, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x56, 0x1C, 0x9A, 0x01, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x63, 0x9B, 0x10, 0x00,
- 0x00, 0x02, 0x00, 0x75, 0x72, 0x6C, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x9A, 0x00,
++ 0x00, 0x02, 0x00, 0x75, 0x72, 0x6C, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x99, 0x00,
+ 0x96, 0x04, 0x00, 0x08, 0x61, 0x08, 0x5A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
+ 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x59, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C,
+ 0x20, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x49,
+ 0x9D, 0x02, 0x00, 0x4A, 0x00, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x01,
+ 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0xC2, 0x99,
+ 0x02, 0x00, 0x16, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0xC1, 0x99, 0x02, 0x00, 0x16, 0x00, 0x96,
0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64,
- 0x4E, 0x9A, 0x01, 0x00, 0xC0, 0x96, 0x01, 0x00, 0x02, 0x20, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x65, 0x9B, 0x10, 0x00, 0x00,
- 0x02, 0x00, 0x75, 0x72, 0x6C, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x9A, 0x00, 0x96,
- 0x04, 0x00, 0x08, 0x61, 0x08, 0x5A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08,
- 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x59, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x20,
- 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x49, 0x9D,
- 0x02, 0x00, 0x4A, 0x00, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x01, 0x00,
- 0x00, 0x00, 0x49, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0x42, 0x99, 0x02,
- 0x00, 0x16, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0x41, 0x99, 0x02, 0x00, 0x16, 0x00, 0x96, 0x02,
- 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E,
- 0x9A, 0x01, 0x00, 0x40, 0x96, 0x01, 0x00, 0x02, 0x20, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x66, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x67, 0x07,
- 0x01, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01,
- 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13,
- 0x00, 0x08, 0x68, 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00,
- 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x69, 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00,
- 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x40, 0x07, 0x06, 0x00, 0x00, 0x00,
- 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x3E, 0x07,
- 0x07, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01,
- 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13,
- 0x00, 0x08, 0x6A, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00,
- 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6B, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00,
- 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6C, 0x07, 0x0D, 0x00, 0x00, 0x00,
- 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6D, 0x07,
- 0x0E, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01,
- 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13,
- 0x00, 0x08, 0x6E, 0x07, 0x0F, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00,
- 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6F, 0x07, 0x10, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00,
- 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x70, 0x07, 0x11, 0x00, 0x00, 0x00,
- 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x71, 0x07,
- 0x12, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01,
- 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13,
- 0x00, 0x08, 0x72, 0x07, 0x13, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00,
- 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x73, 0x07, 0x14, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00,
- 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x74, 0x07, 0x15, 0x00, 0x00, 0x00,
- 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x75, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x07, 0x85, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01,
- 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13,
- 0x00, 0x08, 0x76, 0x07, 0xC8, 0x00, 0x00, 0x00, 0x07, 0x68, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00,
- 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x08, 0x77,
- 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00,
- 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x09, 0x00, 0x08, 0x78, 0x07, 0x85, 0x03, 0x00, 0x00, 0x08,
- 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00,
- 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x58, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05,
- 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x79, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x68, 0x00, 0x00,
- 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x7A, 0x07, 0x66, 0x00, 0x00, 0x00,
- 0x07, 0x68, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x7B, 0x07,
- 0x68, 0x00, 0x00, 0x00, 0x07, 0x68, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01,
- 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13,
- 0x00, 0x08, 0x7C, 0x07, 0x69, 0x00, 0x00, 0x00, 0x07, 0x68, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00,
- 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x13, 0x00, 0x08, 0x7D, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x07, 0x6E, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x02,
- 0x00, 0x08, 0x79, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x7E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x71,
- 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x7F, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x6F, 0x00, 0x67, 0x00, 0x96, 0x02, 0x00,
- 0x08, 0x13, 0x1C, 0x44, 0x96, 0x02, 0x00, 0x08, 0x80, 0x49, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x05,
- 0x00, 0x96, 0x01, 0x00, 0x02, 0x3E, 0x96, 0x07, 0x00, 0x08, 0x81, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x13, 0x46, 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x02,
- 0x49, 0x9D, 0x02, 0x00, 0x27, 0x00, 0x96, 0x04, 0x00, 0x08, 0x82, 0x04, 0x00, 0x3C, 0x96, 0x02,
- 0x00, 0x08, 0x81, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x82, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x82, 0x1C, 0x4E, 0x4F, 0x99, 0x02, 0x00, 0xCB, 0xFF, 0x96, 0x02, 0x00,
- 0x08, 0x81, 0x1C, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E,
- 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x83, 0x9B, 0x05, 0x00, 0x00,
- 0x00, 0x00, 0x24, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x84, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08,
- 0x85, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x86,
- 0x9B, 0x0A, 0x00, 0x00, 0x01, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x00, 0x25, 0x00, 0x96, 0x02, 0x00,
- 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x84, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x4E,
- 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7F,
- 0x52, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96,
- 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x88, 0x9B, 0x10, 0x00, 0x00, 0x02, 0x00,
- 0x6E, 0x61, 0x6D, 0x65, 0x00, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x67, 0x00, 0x96, 0x02, 0x00,
- 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x84, 0x4E, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x12, 0x00,
- 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x84, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x84, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
- 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7F, 0x52, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x87, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x8A, 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E,
- 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x8B, 0x9B, 0x05, 0x00, 0x00,
- 0x00, 0x00, 0x5B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x8C, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x84, 0x4E, 0x3C, 0x96, 0x07, 0x00, 0x08, 0x8D, 0x07, 0x00, 0x00, 0x00, 0x00, 0x42, 0x3C, 0x96,
- 0x02, 0x00, 0x08, 0x8C, 0x46, 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02,
- 0x00, 0x25, 0x00, 0x96, 0x04, 0x00, 0x08, 0x82, 0x04, 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x82,
- 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x0D, 0x52, 0x17, 0x99, 0x02, 0x00, 0xCD, 0xFF, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x3E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x8A, 0x9B, 0x0A, 0x00, 0x00, 0x01, 0x00, 0x6E, 0x61, 0x6D,
- 0x65, 0x00, 0x5C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x85, 0x4E,
- 0x12, 0x12, 0x9D, 0x02, 0x00, 0x12, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00,
- 0x08, 0x85, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x85, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09,
- 0x4E, 0x9A, 0x01, 0x00, 0x41, 0x99, 0x02, 0x00, 0x16, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0x40,
- 0x8B, 0x01, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30,
- 0x4E, 0x96, 0x13, 0x00, 0x08, 0x66, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00,
- 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x67, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07,
- 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x68, 0x07, 0x04,
- 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00,
- 0x08, 0x69, 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00,
- 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30,
- 0x4E, 0x96, 0x13, 0x00, 0x08, 0x40, 0x07, 0x06, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00,
- 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x3E, 0x07, 0x07, 0x00, 0x00, 0x00, 0x07,
- 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6A, 0x07, 0x0A,
- 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00,
- 0x08, 0x6B, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00,
- 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30,
- 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6C, 0x07, 0x0D, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00,
- 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6D, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x07,
- 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6E, 0x07, 0x0F,
- 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00,
- 0x08, 0x6F, 0x07, 0x10, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00,
- 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30,
- 0x4E, 0x96, 0x13, 0x00, 0x08, 0x70, 0x07, 0x11, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00,
- 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x71, 0x07, 0x12, 0x00, 0x00, 0x00, 0x07,
- 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x72, 0x07, 0x13,
- 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00,
- 0x08, 0x73, 0x07, 0x14, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00,
- 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30,
- 0x4E, 0x96, 0x13, 0x00, 0x08, 0x74, 0x07, 0x15, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00,
- 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x80, 0x00, 0x00,
- 0x00, 0x08, 0x6A, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07,
- 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x09, 0x00, 0x08, 0x75, 0x07, 0x85, 0x03,
- 0x00, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03,
- 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02,
- 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00,
- 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x07, 0x00, 0x08, 0x76, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43,
- 0x1D, 0x96, 0x13, 0x00, 0x08, 0x77, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x6E, 0x00, 0x00, 0x00,
- 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x76, 0x1C, 0x96,
- 0x13, 0x00, 0x08, 0x78, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x71, 0x00, 0x00, 0x00, 0x07, 0x02,
- 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x76, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x78, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x79, 0x9B, 0x07,
- 0x00, 0x00, 0x01, 0x00, 0x6F, 0x00, 0x67, 0x00, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x44, 0x96,
- 0x02, 0x00, 0x08, 0x7A, 0x49, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x05, 0x00, 0x96, 0x01, 0x00, 0x02,
- 0x3E, 0x96, 0x07, 0x00, 0x08, 0x7B, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x3C, 0x96, 0x02, 0x00,
- 0x08, 0x13, 0x46, 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x27,
- 0x00, 0x96, 0x04, 0x00, 0x08, 0x7C, 0x04, 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x7B, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x7C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7C,
- 0x1C, 0x4E, 0x4F, 0x99, 0x02, 0x00, 0xCB, 0xFF, 0x96, 0x02, 0x00, 0x08, 0x7B, 0x1C, 0x3E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x76, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x7D, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x96,
- 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x7E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x7F, 0x07, 0x00, 0x00, 0x00,
- 0x00, 0x43, 0x4F, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x76, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78, 0x4E,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x80, 0x9B, 0x0A, 0x00, 0x00, 0x01,
- 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x00, 0x25, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x81, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01,
- 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x79, 0x52, 0x3E, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x76, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
- 0x96, 0x02, 0x00, 0x08, 0x82, 0x9B, 0x10, 0x00, 0x00, 0x02, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x00,
- 0x73, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x67, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x7E, 0x4E, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x12, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09,
- 0x1C, 0x96, 0x07, 0x00, 0x08, 0x7E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x81, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x83, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x79, 0x52, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x81, 0x1C, 0x96, 0x07, 0x00,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x84, 0x52, 0x17, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x76, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x85, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x96,
- 0x04, 0x00, 0x08, 0x86, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x3C, 0x96, 0x07,
- 0x00, 0x08, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0x42, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x86, 0x46,
- 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x25, 0x00, 0x96, 0x04,
- 0x00, 0x08, 0x7C, 0x04, 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x1C, 0x96, 0x07, 0x00, 0x07,
- 0x01, 0x00, 0x00, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x52, 0x17, 0x99, 0x02,
- 0x00, 0xCD, 0xFF, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x76,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00,
- 0x08, 0x84, 0x9B, 0x0A, 0x00, 0x00, 0x01, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x00, 0x5C, 0x00, 0x96,
- 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7F, 0x4E, 0x12, 0x12, 0x9D, 0x02, 0x00,
- 0x12, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x7F, 0x07, 0x00, 0x00,
- 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7F, 0x4E,
- 0x96, 0x02, 0x00, 0x08, 0x81, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x81, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00,
- 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x88, 0x52, 0x4F, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x76, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x88, 0x9B, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x9D,
- 0x03, 0x96, 0x02, 0x00, 0x08, 0x83, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x9D, 0x02, 0x00,
- 0x05, 0x00, 0x96, 0x01, 0x00, 0x02, 0x3E, 0x96, 0x09, 0x00, 0x08, 0x89, 0x07, 0x00, 0x00, 0x00,
- 0x00, 0x08, 0x77, 0x40, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8A,
- 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x15, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x04, 0x00,
- 0x08, 0x8B, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8A, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x49, 0x9D, 0x02,
- 0x00, 0x2B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8C, 0x4E, 0x96,
- 0x02, 0x00, 0x08, 0x8E, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89,
- 0x1C, 0x96, 0x04, 0x00, 0x08, 0x8D, 0x05, 0x00, 0x4F, 0x99, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02,
- 0x00, 0x08, 0x89, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x8D, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x41, 0x00, 0x96, 0x04,
- 0x00, 0x08, 0x86, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x4E, 0x96, 0x07, 0x00, 0x07,
- 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x90, 0x52, 0x3C, 0x96, 0x02,
- 0x00, 0x08, 0x86, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x0F, 0x00,
- 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x8F, 0x08, 0x86, 0x1C, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x91, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x91, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x92, 0x4E,
- 0x12, 0x9D, 0x02, 0x00, 0x26, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x04, 0x00, 0x08,
- 0x93, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x92, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
- 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x94, 0x52, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x95, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02,
- 0x00, 0x08, 0x89, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x96, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x95, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x97, 0x3D, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x98, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x99, 0x49,
- 0x9D, 0x02, 0x00, 0x2B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x98,
- 0x4E, 0x96, 0x02, 0x00, 0x08, 0x8E, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00,
- 0x08, 0x89, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x99, 0x05, 0x00, 0x4F, 0x99, 0x02, 0x00, 0x0E, 0x00,
- 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x99, 0x05, 0x01, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9A, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x9B, 0x49,
- 0x9D, 0x02, 0x00, 0x4F, 0x00, 0x96, 0x02, 0x00, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9A,
- 0x4E, 0x96, 0x02, 0x00, 0x08, 0x9C, 0x49, 0x9D, 0x02, 0x00, 0x25, 0x00, 0x96, 0x02, 0x00, 0x08,
- 0x89, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9A, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9A, 0x4E,
- 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x97, 0x3D, 0x4F, 0x99, 0x02, 0x00, 0x0E,
- 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9A, 0x05, 0x00, 0x4F, 0x99,
- 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9A, 0x05,
- 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9D, 0x4E, 0x12, 0x9D,
- 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9D, 0x08,
- 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9D, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
- 0x08, 0x97, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9E, 0x4E,
- 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x04, 0x00, 0x08,
- 0x9F, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9E, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
- 0x00, 0x00, 0x08, 0x97, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0xA0, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x04,
- 0x00, 0x08, 0xA0, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA0, 0x4E, 0x96, 0x07, 0x00, 0x07,
- 0x01, 0x00, 0x00, 0x00, 0x08, 0x97, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x83, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0xA1, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C,
- 0x96, 0x04, 0x00, 0x08, 0xA2, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA1, 0x4E, 0x96, 0x07,
- 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x97, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x83, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0xA3, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x3B, 0x00, 0x96, 0x04, 0x00, 0x08,
- 0x86, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA3, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
- 0x00, 0x00, 0x08, 0x97, 0x3D, 0x3C, 0x96, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x86,
- 0x1C, 0x48, 0x12, 0x9D, 0x02, 0x00, 0x0F, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x04,
- 0x00, 0x08, 0xA4, 0x08, 0x86, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0xA5, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xA6, 0x49, 0x9D, 0x02, 0x00, 0x2B, 0x00, 0x96, 0x02,
- 0x00, 0x08, 0x83, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA5, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xA7, 0x49,
- 0x12, 0x9D, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x04, 0x00, 0x08,
- 0xA6, 0x05, 0x00, 0x4F, 0x99, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96,
- 0x04, 0x00, 0x08, 0xA6, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x3E, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x76, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30,
- 0x4E, 0x96, 0x02, 0x00, 0x08, 0xA8, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00, 0x63, 0x73, 0x73, 0x00,
- 0xC8, 0x00, 0x96, 0x04, 0x00, 0x08, 0xAB, 0x08, 0xA9, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
- 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xAA, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08,
- 0xAB, 0x1C, 0x44, 0x96, 0x02, 0x00, 0x08, 0xAC, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x06, 0x00, 0x96,
- 0x02, 0x00, 0x05, 0x00, 0x3E, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E,
- 0x4E, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x12, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07,
- 0x00, 0x08, 0x7E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0xAB, 0x46,
- 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x56, 0x00, 0x96, 0x04,
- 0x00, 0x08, 0x7C, 0x04, 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xAB, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x7C, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x79, 0x52, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x7C, 0x1C, 0x96, 0x07, 0x00,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x84, 0x52, 0x17, 0x99,
- 0x02, 0x00, 0x9C, 0xFF, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x76,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x04, 0x00,
- 0x08, 0xAD, 0x08, 0x76, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30,
- 0x4E, 0x96, 0x02, 0x00, 0x08, 0xA8, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x76, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x78, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x33, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01,
- 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x76, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x35, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x76, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x36, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00, 0x73,
- 0x72, 0x63, 0x00, 0x6B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49,
- 0x12, 0x9D, 0x02, 0x00, 0x19, 0x00, 0x96, 0x09, 0x00, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
- 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x52, 0x17, 0x99, 0x02, 0x00, 0x41, 0x00, 0x96,
- 0x04, 0x00, 0x08, 0xAB, 0x08, 0x38, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08,
- 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xAD, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96,
- 0x04, 0x00, 0x08, 0x37, 0x08, 0xAB, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0xAB, 0x1C, 0x96, 0x07,
- 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x52, 0x17,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x76, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78, 0x4E, 0x96, 0x02, 0x00,
- 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0xAA, 0x07, 0x65, 0x00, 0x00, 0x00, 0x07, 0x71, 0x00,
- 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x76,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00,
- 0x08, 0x94, 0x07, 0x66, 0x00, 0x00, 0x00, 0x07, 0x71, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00,
- 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x76, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78,
- 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x90, 0x07, 0x67, 0x00, 0x00,
- 0x00, 0x07, 0x71, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96,
- 0x08, 0x00, 0x07, 0x03, 0x04, 0x00, 0x00, 0x02, 0x08, 0x76, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x78,
- 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08,
- 0x05, 0x3D, 0x17, 0x96, 0x09, 0x00, 0x07, 0x03, 0x04, 0x00, 0x00, 0x08, 0x78, 0x08, 0x76, 0x1C,
- 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08,
- 0xAE, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFA, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0xAF, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0xFA,
- 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08,
- 0xB0, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, 0xFA, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x04, 0x00, 0x08, 0xB1, 0x08, 0xAF, 0x1C, 0x1D, 0x96, 0x03, 0x00,
- 0x08, 0x13, 0x02, 0x1D, 0x96, 0x0D, 0x00, 0x07, 0x06, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00,
- 0x00, 0x02, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D,
- 0x17, 0x00
++ 0x4E, 0x9A, 0x01, 0x00, 0xC0, 0x8B, 0x01, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C,
++ 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x65, 0x9B, 0x10, 0x00, 0x00, 0x02,
++ 0x00, 0x75, 0x72, 0x6C, 0x00, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x00, 0x99, 0x00, 0x96, 0x04,
++ 0x00, 0x08, 0x61, 0x08, 0x5A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09,
++ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x59, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x20, 0x96,
++ 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x49, 0x9D, 0x02,
++ 0x00, 0x4A, 0x00, 0x96, 0x02, 0x00, 0x08, 0x61, 0x1C, 0x96, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00,
++ 0x00, 0x49, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00,
++ 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0x42, 0x99, 0x02, 0x00,
++ 0x16, 0x00, 0x96, 0x02, 0x00, 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x64, 0x4E, 0x9A, 0x01, 0x00, 0x41, 0x99, 0x02, 0x00, 0x16, 0x00, 0x96, 0x02, 0x00,
++ 0x08, 0x62, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x64, 0x4E, 0x9A,
++ 0x01, 0x00, 0x40, 0x8B, 0x01, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x66, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x84,
++ 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
++ 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x67, 0x07, 0x01, 0x00,
++ 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
++ 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
++ 0x68, 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
++ 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
++ 0x96, 0x13, 0x00, 0x08, 0x69, 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07,
++ 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x40, 0x07, 0x06, 0x00, 0x00, 0x00, 0x07, 0x84,
++ 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
++ 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x3E, 0x07, 0x07, 0x00,
++ 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
++ 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
++ 0x6A, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
++ 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
++ 0x96, 0x13, 0x00, 0x08, 0x6B, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07,
++ 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6C, 0x07, 0x0D, 0x00, 0x00, 0x00, 0x07, 0x84,
++ 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
++ 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x6D, 0x07, 0x0E, 0x00,
++ 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
++ 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
++ 0x6E, 0x07, 0x0F, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
++ 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
++ 0x96, 0x13, 0x00, 0x08, 0x6F, 0x07, 0x10, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07,
++ 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x70, 0x07, 0x11, 0x00, 0x00, 0x00, 0x07, 0x84,
++ 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
++ 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x71, 0x07, 0x12, 0x00,
++ 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
++ 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
++ 0x72, 0x07, 0x13, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
++ 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
++ 0x96, 0x13, 0x00, 0x08, 0x73, 0x07, 0x14, 0x00, 0x00, 0x00, 0x07, 0x84, 0x03, 0x00, 0x00, 0x07,
++ 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x74, 0x07, 0x15, 0x00, 0x00, 0x00, 0x07, 0x84,
++ 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
++ 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x75, 0x07, 0x00, 0x00,
++ 0x00, 0x00, 0x07, 0x85, 0x03, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
++ 0x96, 0x02, 0x00, 0x08, 0x58, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
++ 0x76, 0x07, 0xC8, 0x00, 0x00, 0x00, 0x07, 0x68, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
++ 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x08, 0x77, 0x08, 0x58,
++ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08,
++ 0x05, 0x3D, 0x17, 0x96, 0x09, 0x00, 0x08, 0x78, 0x07, 0x85, 0x03, 0x00, 0x00, 0x08, 0x58, 0x1C,
++ 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00,
++ 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x58, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17,
++ 0x96, 0x13, 0x00, 0x08, 0x79, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x68, 0x00, 0x00, 0x00, 0x07,
++ 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x7A, 0x07, 0x66, 0x00, 0x00, 0x00, 0x07, 0x68,
++ 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08,
++ 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x7B, 0x07, 0x68, 0x00,
++ 0x00, 0x00, 0x07, 0x68, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
++ 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
++ 0x7C, 0x07, 0x69, 0x00, 0x00, 0x00, 0x07, 0x68, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
++ 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x13, 0x00, 0x08, 0x7D, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x6E,
++ 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08,
++ 0x79, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x7E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x71, 0x00, 0x00,
++ 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x43, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C,
++ 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08,
++ 0x7F, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x6F, 0x00, 0x67, 0x00, 0x96, 0x02, 0x00, 0x08, 0x13,
++ 0x1C, 0x44, 0x96, 0x02, 0x00, 0x08, 0x80, 0x49, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x05, 0x00, 0x96,
++ 0x01, 0x00, 0x02, 0x3E, 0x96, 0x07, 0x00, 0x08, 0x81, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x3C,
++ 0x96, 0x02, 0x00, 0x08, 0x13, 0x46, 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D,
++ 0x02, 0x00, 0x27, 0x00, 0x96, 0x04, 0x00, 0x08, 0x82, 0x04, 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08,
++ 0x81, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x82, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x82, 0x1C, 0x4E, 0x4F, 0x99, 0x02, 0x00, 0xCB, 0xFF, 0x96, 0x02, 0x00, 0x08, 0x81,
++ 0x1C, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96,
++ 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x83, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00,
++ 0x24, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x84, 0x07, 0x00, 0x00,
++ 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x85, 0x07,
++ 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00,
++ 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x86, 0x9B, 0x0A,
++ 0x00, 0x00, 0x01, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x00, 0x25, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x84, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x4E, 0x96, 0x07,
- 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8E, 0x52, 0x4F,
++ 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7F, 0x52, 0x3E,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00,
- 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x8E, 0x9B, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x73, 0x74,
- 0x79, 0x6C, 0x65, 0x00, 0x9D, 0x03, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x01, 0x00, 0x02,
- 0x49, 0x12, 0x9D, 0x02, 0x00, 0x05, 0x00, 0x96, 0x01, 0x00, 0x02, 0x3E, 0x96, 0x09, 0x00, 0x08,
- 0x8F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7D, 0x40, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x90, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x15, 0x00, 0x96, 0x02, 0x00, 0x08,
- 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x91, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x90, 0x4E,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x92, 0x4E, 0x96, 0x02, 0x00,
- 0x08, 0x93, 0x49, 0x9D, 0x02, 0x00, 0x2B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x92, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x94, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x0E, 0x00,
- 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x93, 0x05, 0x00, 0x4F, 0x99, 0x02,
- 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x93, 0x05, 0x01,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x95, 0x4E, 0x12, 0x9D, 0x02,
- 0x00, 0x41, 0x00, 0x96, 0x04, 0x00, 0x08, 0x8C, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x95,
- 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x96, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x8C, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x12,
- 0x9D, 0x02, 0x00, 0x0F, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x95,
- 0x08, 0x8C, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x97, 0x08,
- 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x97, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x98, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x26, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F,
- 0x1C, 0x96, 0x04, 0x00, 0x08, 0x99, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x98, 0x4E, 0x96,
- 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9A, 0x52,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9B, 0x4E, 0x12, 0x9D, 0x02,
- 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9C, 0x08, 0x89,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9B, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08,
- 0x9D, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9E, 0x4E, 0x96,
- 0x02, 0x00, 0x08, 0x9F, 0x49, 0x9D, 0x02, 0x00, 0x2B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x9E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x94, 0x49, 0x12, 0x9D, 0x02, 0x00,
- 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9F, 0x05, 0x00, 0x4F,
- 0x99, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9F,
- 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA0, 0x4E, 0x96,
- 0x02, 0x00, 0x08, 0xA1, 0x49, 0x9D, 0x02, 0x00, 0x4F, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0xA0, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xA2, 0x49, 0x9D, 0x02, 0x00, 0x25,
- 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA0, 0x08, 0x89, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0xA0, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D,
- 0x4F, 0x99, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08,
- 0xA0, 0x05, 0x00, 0x4F, 0x99, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96,
- 0x04, 0x00, 0x08, 0xA0, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0xA3, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96,
- 0x04, 0x00, 0x08, 0xA3, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA3, 0x4E, 0x96, 0x07, 0x00,
++ 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x88, 0x9B, 0x10, 0x00, 0x00, 0x02, 0x00, 0x6E, 0x61,
++ 0x6D, 0x65, 0x00, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x00, 0x67, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09,
++ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x84, 0x4E, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x12, 0x00, 0x96, 0x02,
++ 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x84, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F,
++ 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x84, 0x4E, 0x96, 0x02, 0x00, 0x08,
++ 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
++ 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7F, 0x52, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C,
++ 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8A,
++ 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96,
++ 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x8B, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00,
++ 0x5B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x8C, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x84, 0x4E,
++ 0x3C, 0x96, 0x07, 0x00, 0x08, 0x8D, 0x07, 0x00, 0x00, 0x00, 0x00, 0x42, 0x3C, 0x96, 0x02, 0x00,
++ 0x08, 0x8C, 0x46, 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x25,
++ 0x00, 0x96, 0x04, 0x00, 0x08, 0x82, 0x04, 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x82, 0x1C, 0x96,
++ 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x8D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x52,
++ 0x17, 0x99, 0x02, 0x00, 0xCD, 0xFF, 0x96, 0x02, 0x00, 0x08, 0x8D, 0x1C, 0x3E, 0x4F, 0x96, 0x02,
++ 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
++ 0x96, 0x02, 0x00, 0x08, 0x8A, 0x9B, 0x0A, 0x00, 0x00, 0x01, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x00,
++ 0x5C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x85, 0x4E, 0x12, 0x12,
++ 0x9D, 0x02, 0x00, 0x12, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x85,
++ 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00,
++ 0x08, 0x85, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96,
++ 0x02, 0x00, 0x08, 0x84, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x87, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07,
++ 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8E, 0x52, 0x4F, 0x4F, 0x96,
++ 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30,
++ 0x4E, 0x96, 0x02, 0x00, 0x08, 0x8E, 0x9B, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x73, 0x74, 0x79, 0x6C,
++ 0x65, 0x00, 0x9D, 0x03, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12,
++ 0x9D, 0x02, 0x00, 0x05, 0x00, 0x96, 0x01, 0x00, 0x02, 0x3E, 0x96, 0x09, 0x00, 0x08, 0x8F, 0x07,
++ 0x00, 0x00, 0x00, 0x00, 0x08, 0x7D, 0x40, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x90, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x15, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C,
++ 0x96, 0x04, 0x00, 0x08, 0x91, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x90, 0x4E, 0x4F, 0x96,
++ 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x92, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x93,
++ 0x49, 0x9D, 0x02, 0x00, 0x2B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08,
++ 0x92, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x94, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02,
++ 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x93, 0x05, 0x00, 0x4F, 0x99, 0x02, 0x00, 0x0E,
++ 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x93, 0x05, 0x01, 0x4F, 0x96,
++ 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x95, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x41,
++ 0x00, 0x96, 0x04, 0x00, 0x08, 0x8C, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x95, 0x4E, 0x96,
++ 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x96, 0x52,
++ 0x3C, 0x96, 0x02, 0x00, 0x08, 0x8C, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x12, 0x9D, 0x02,
++ 0x00, 0x0F, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x95, 0x08, 0x8C,
++ 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x97, 0x08, 0x89, 0x1C,
++ 0x96, 0x02, 0x00, 0x08, 0x97, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00,
++ 0x08, 0x98, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x26, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96,
++ 0x04, 0x00, 0x08, 0x99, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x98, 0x4E, 0x96, 0x07, 0x00,
++ 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9A, 0x52, 0x4F, 0x96,
++ 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9B, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20,
++ 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9C, 0x08, 0x89, 0x1C, 0x96,
++ 0x02, 0x00, 0x08, 0x9B, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D,
++ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x9E, 0x4E, 0x96, 0x02, 0x00,
++ 0x08, 0x9F, 0x49, 0x9D, 0x02, 0x00, 0x2B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x9E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x94, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x0E, 0x00,
++ 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9F, 0x05, 0x00, 0x4F, 0x99, 0x02,
++ 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x9F, 0x05, 0x01,
++ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA0, 0x4E, 0x96, 0x02, 0x00,
++ 0x08, 0xA1, 0x49, 0x9D, 0x02, 0x00, 0x4F, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0xA0, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xA2, 0x49, 0x9D, 0x02, 0x00, 0x25, 0x00, 0x96,
++ 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA0, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00,
++ 0x08, 0xA0, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D, 0x4F, 0x99,
++ 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA0, 0x05,
++ 0x00, 0x4F, 0x99, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00,
++ 0x08, 0xA0, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA3,
++ 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00,
++ 0x08, 0xA3, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA3, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01,
++ 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00,
++ 0x08, 0xA4, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96,
++ 0x04, 0x00, 0x08, 0xA5, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA4, 0x4E, 0x96, 0x07, 0x00,
+ 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0xA4, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F,
- 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA5, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA4, 0x4E, 0x96,
++ 0x02, 0x00, 0x08, 0xA6, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F,
++ 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA6, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA6, 0x4E, 0x96,
+ 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA6, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00,
- 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA6, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA6,
++ 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA7, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96, 0x02, 0x00,
++ 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA8, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA7,
+ 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA7, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x20, 0x00, 0x96,
- 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xA8, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0xA7, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA9, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x3B,
- 0x00, 0x96, 0x04, 0x00, 0x08, 0x8C, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA9, 0x4E, 0x96,
- 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D, 0x3C, 0x96, 0x07, 0x00, 0x07, 0x00,
- 0x00, 0x00, 0x00, 0x08, 0x8C, 0x1C, 0x48, 0x12, 0x9D, 0x02, 0x00, 0x0F, 0x00, 0x96, 0x02, 0x00,
- 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xAA, 0x08, 0x8C, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xAB, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xAC, 0x49, 0x9D, 0x02,
- 0x00, 0x2B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xAB, 0x4E, 0x96,
- 0x02, 0x00, 0x08, 0xAD, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F,
- 0x1C, 0x96, 0x04, 0x00, 0x08, 0xAC, 0x05, 0x00, 0x4F, 0x99, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02,
- 0x00, 0x08, 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xAC, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x8F, 0x1C, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xAE, 0x9B, 0x09, 0x00, 0x00, 0x01,
- 0x00, 0x63, 0x73, 0x73, 0x00, 0xC8, 0x00, 0x96, 0x04, 0x00, 0x08, 0xB1, 0x08, 0xAF, 0x1C, 0x96,
- 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xB0, 0x52,
- 0x3C, 0x96, 0x02, 0x00, 0x08, 0xB1, 0x1C, 0x44, 0x96, 0x02, 0x00, 0x08, 0xB2, 0x49, 0x12, 0x9D,
- 0x02, 0x00, 0x06, 0x00, 0x96, 0x02, 0x00, 0x05, 0x00, 0x3E, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x84, 0x4E, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x12, 0x00, 0x96, 0x02, 0x00,
- 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x84, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0xB1, 0x46, 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02,
- 0x00, 0x56, 0x00, 0x96, 0x04, 0x00, 0x08, 0x82, 0x04, 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x84, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x82, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0xB1, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x82, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
- 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7F, 0x52, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x82, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x8A, 0x52, 0x17, 0x99, 0x02, 0x00, 0x9C, 0xFF, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x30, 0x4E, 0x96, 0x04, 0x00, 0x08, 0xB3, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xAE, 0x4E, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96,
- 0x13, 0x00, 0x08, 0x33, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02,
- 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x35, 0x9B, 0x05,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x36, 0x9B, 0x09,
- 0x00, 0x00, 0x01, 0x00, 0x73, 0x72, 0x63, 0x00, 0x6B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C,
- 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x19, 0x00, 0x96, 0x09, 0x00, 0x05, 0x00,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x52, 0x17, 0x99,
- 0x02, 0x00, 0x41, 0x00, 0x96, 0x04, 0x00, 0x08, 0xB1, 0x08, 0x38, 0x1C, 0x96, 0x07, 0x00, 0x07,
- 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xB3, 0x52, 0x3C, 0x96, 0x02,
- 0x00, 0x08, 0x09, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x08, 0xB1, 0x1C, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0xB1, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x35, 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0xB0, 0x07, 0x65, 0x00,
- 0x00, 0x00, 0x07, 0x71, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x9A, 0x07, 0x66, 0x00, 0x00, 0x00, 0x07, 0x71, 0x00, 0x00,
- 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08,
- 0x96, 0x07, 0x67, 0x00, 0x00, 0x00, 0x07, 0x71, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x03, 0x04, 0x00, 0x00, 0x02, 0x08, 0x79, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07,
- 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x09, 0x00, 0x07, 0x03, 0x04, 0x00, 0x00,
- 0x08, 0x7E, 0x08, 0x79, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D,
- 0x17, 0x96, 0x13, 0x00, 0x08, 0xB4, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFA, 0x00, 0x00, 0x00,
- 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0xB5, 0x07, 0x01,
- 0x00, 0x00, 0x00, 0x07, 0xFA, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D,
- 0x1D, 0x96, 0x13, 0x00, 0x08, 0xB6, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, 0xFA, 0x00, 0x00, 0x00,
- 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x04, 0x00, 0x08, 0xB7, 0x08, 0xB5,
- 0x1C, 0x1D, 0x96, 0x03, 0x00, 0x08, 0x13, 0x02, 0x1D, 0x96, 0x0D, 0x00, 0x07, 0x06, 0x00, 0x00,
- 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x02, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00,
- 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x00
++ 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA9, 0x4E, 0x12, 0x9D, 0x02, 0x00, 0x3B, 0x00, 0x96,
++ 0x04, 0x00, 0x08, 0x8C, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xA9, 0x4E, 0x96, 0x07, 0x00,
++ 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x9D, 0x3D, 0x3C, 0x96, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00,
++ 0x00, 0x08, 0x8C, 0x1C, 0x48, 0x12, 0x9D, 0x02, 0x00, 0x0F, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F,
++ 0x1C, 0x96, 0x04, 0x00, 0x08, 0xAA, 0x08, 0x8C, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C,
++ 0x96, 0x02, 0x00, 0x08, 0xAB, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xAC, 0x49, 0x9D, 0x02, 0x00, 0x2B,
++ 0x00, 0x96, 0x02, 0x00, 0x08, 0x89, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xAB, 0x4E, 0x96, 0x02, 0x00,
++ 0x08, 0xAD, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C, 0x96,
++ 0x04, 0x00, 0x08, 0xAC, 0x05, 0x00, 0x4F, 0x99, 0x02, 0x00, 0x0E, 0x00, 0x96, 0x02, 0x00, 0x08,
++ 0x8F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0xAC, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x8F, 0x1C,
++ 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02,
++ 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xAE, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00, 0x63,
++ 0x73, 0x73, 0x00, 0xC8, 0x00, 0x96, 0x04, 0x00, 0x08, 0xB1, 0x08, 0xAF, 0x1C, 0x96, 0x07, 0x00,
++ 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xB0, 0x52, 0x3C, 0x96,
++ 0x02, 0x00, 0x08, 0xB1, 0x1C, 0x44, 0x96, 0x02, 0x00, 0x08, 0xB2, 0x49, 0x12, 0x9D, 0x02, 0x00,
++ 0x06, 0x00, 0x96, 0x02, 0x00, 0x05, 0x00, 0x3E, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x84, 0x4E, 0x12, 0x12, 0x9D, 0x02, 0x00, 0x12, 0x00, 0x96, 0x02, 0x00, 0x08, 0x09,
++ 0x1C, 0x96, 0x07, 0x00, 0x08, 0x84, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00,
++ 0x08, 0xB1, 0x46, 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x56,
++ 0x00, 0x96, 0x04, 0x00, 0x08, 0x82, 0x04, 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x1C, 0x96,
++ 0x02, 0x00, 0x08, 0x84, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x82, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xB1,
++ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x82, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
++ 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7F, 0x52, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x82, 0x1C,
++ 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x8A,
++ 0x52, 0x17, 0x99, 0x02, 0x00, 0x9C, 0xFF, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x4F, 0x96, 0x02,
++ 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
++ 0x96, 0x04, 0x00, 0x08, 0xB3, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02,
++ 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0xAE, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79,
++ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00,
++ 0x08, 0x33, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00,
++ 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E,
++ 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x35, 0x9B, 0x05, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E,
++ 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x36, 0x9B, 0x09, 0x00, 0x00,
++ 0x01, 0x00, 0x73, 0x72, 0x63, 0x00, 0x6B, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96, 0x01,
++ 0x00, 0x02, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x19, 0x00, 0x96, 0x09, 0x00, 0x05, 0x00, 0x07, 0x01,
++ 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x52, 0x17, 0x99, 0x02, 0x00,
++ 0x41, 0x00, 0x96, 0x04, 0x00, 0x08, 0xB1, 0x08, 0x38, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
++ 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0xB3, 0x52, 0x3C, 0x96, 0x02, 0x00, 0x08,
++ 0x09, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x08, 0xB1, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0xB1,
++ 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08,
++ 0x35, 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E,
++ 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0xB0, 0x07, 0x65, 0x00, 0x00, 0x00,
++ 0x07, 0x71, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02,
++ 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E,
++ 0x96, 0x13, 0x00, 0x08, 0x9A, 0x07, 0x66, 0x00, 0x00, 0x00, 0x07, 0x71, 0x00, 0x00, 0x00, 0x07,
++ 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x79, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x96, 0x07,
++ 0x67, 0x00, 0x00, 0x00, 0x07, 0x71, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01,
++ 0x3D, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x03, 0x04, 0x00, 0x00, 0x02, 0x08, 0x79, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x7E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00,
++ 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96, 0x09, 0x00, 0x07, 0x03, 0x04, 0x00, 0x00, 0x08, 0x7E,
++ 0x08, 0x79, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x3D, 0x17, 0x96,
++ 0x13, 0x00, 0x08, 0xB4, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFA, 0x00, 0x00, 0x00, 0x07, 0x02,
++ 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0xB5, 0x07, 0x01, 0x00, 0x00,
++ 0x00, 0x07, 0xFA, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96,
++ 0x13, 0x00, 0x08, 0xB6, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, 0xFA, 0x00, 0x00, 0x00, 0x07, 0x02,
++ 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x04, 0x00, 0x08, 0xB7, 0x08, 0xB5, 0x1C, 0x1D,
++ 0x96, 0x03, 0x00, 0x08, 0x13, 0x02, 0x1D, 0x96, 0x0D, 0x00, 0x07, 0x06, 0x00, 0x00, 0x00, 0x07,
++ 0x01, 0x00, 0x00, 0x00, 0x02, 0x08, 0x09, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00,
++ 0x08, 0x05, 0x3D, 0x17, 0x00
};
diff-tree 5bd4a248279cf4d905d39d66b985477939ad7859 (from 9542a905aae401da5667b41fe9dd1c72093b961c)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 02:33:13 2007 +0300
Fix scaling of tabStops units in TextField
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index 241829f..6276167 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -91,7 +91,7 @@ swfdec_text_paragraph_add_block_attribut
swfdec_as_array_get_value (format->tab_stops, i, &val);
g_assert (SWFDEC_AS_VALUE_IS_NUMBER (&val));
pango_tab_array_set_tab (block->tab_stops, i, PANGO_TAB_LEFT,
- SWFDEC_AS_VALUE_GET_NUMBER (&val));
+ SWFDEC_AS_VALUE_GET_NUMBER (&val) * 20);
}
paragraph->blocks = g_list_append (paragraph->blocks, block);
diff-tree 9542a905aae401da5667b41fe9dd1c72093b961c (from afd138a8056f50c386060bc011c24db4264b7110)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu Oct 11 00:00:27 2007 +0300
Remove the removing of trailing spaces in TextField since it didn't work right
diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index 03b015b..7950cfc 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -109,7 +109,7 @@ swfdec_edit_text_render (SwfdecEditText
for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
{
int height, width;
- guint length, trailing_space;
+ guint length;
SwfdecBlock *block;
PangoAttrList *attr_list;
@@ -200,13 +200,8 @@ swfdec_edit_text_render (SwfdecEditText
pango_attr_list_unref (attr_list);
attr_list = NULL;
- trailing_space = 0;
- while (g_ascii_isspace (*(paragraphs[i].text +
- paragraphs[i].text_length - trailing_space - 1))) {
- trailing_space++;
- }
pango_layout_set_text (layout, paragraphs[i].text + block->index_ + skip,
- paragraphs[i].text_length - block->index_ - skip - trailing_space);
+ paragraphs[i].text_length - block->index_ - skip);
if (iter->next != NULL)
{
@@ -218,19 +213,9 @@ swfdec_edit_text_render (SwfdecEditText
NULL);
line = pango_layout_get_line_readonly (layout, line_num);
skip_new = line->start_index + line->length - (length - skip);
- if ((guint)(line->start_index + line->length) ==
- paragraphs[i].text_length - block->index_ - skip) {
- skip_new += trailing_space;
- } else {
- trailing_space = 0;
- while (g_ascii_isspace (*(paragraphs[i].text + block->index_ + skip +
- (length - skip + skip_new) - trailing_space - 1))) {
- trailing_space++;
- }
- }
pango_layout_set_text (layout,
paragraphs[i].text + block->index_ + skip,
- length - skip + skip_new - trailing_space);
+ length - skip + skip_new);
skip = skip_new;
}
else
diff-tree afd138a8056f50c386060bc011c24db4264b7110 (from db84d1ca8f7e91c6cacefd8a5ec821a76bdb90be)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Wed Oct 10 23:57:11 2007 +0300
Don't allow smaller fontsizes than 1 in TextField
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index d124972..241829f 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -158,7 +158,8 @@ swfdec_edit_text_movie_generate_paragrap
format->letter_spacing * 20 * PANGO_SCALE); // FIXME: correct scaling?
attr_letter_spacing->start_index = 0;
- attr_size = pango_attr_size_new_absolute (format->size * 20 * PANGO_SCALE);
+ attr_size =
+ pango_attr_size_new_absolute (MAX (format->size, 1) * 20 * PANGO_SCALE);
attr_size->start_index = 0;
attr_underline = pango_attr_underline_new (
@@ -240,7 +241,7 @@ swfdec_edit_text_movie_generate_paragrap
swfdec_text_paragraph_add_attribute (paragraph, attr_size);
attr_size =
- pango_attr_size_new_absolute (format->size * 20 * PANGO_SCALE);
+ pango_attr_size_new_absolute (MAX (1, format->size) * 20 * PANGO_SCALE);
attr_size->start_index = index_ - start_index;
}
diff-tree db84d1ca8f7e91c6cacefd8a5ec821a76bdb90be (from f60d68fe3354e7686d2cfb781d10137bdc9299ee)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Wed Oct 10 23:50:09 2007 +0300
Support indent and leading correctly in TextField
diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index 0946292..03b015b 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -132,21 +132,31 @@ swfdec_edit_text_render (SwfdecEditText
SWFDEC_GRAPHIC (text)->extents.x0 - block->left_margin -
block->right_margin - block->block_indent;
+ if (block->index_ == 0 && paragraphs[i].indent < 0) {
+ cairo_rel_move_to (cr, paragraphs[i].indent / PANGO_SCALE, 0);
+ width += -paragraphs[i].indent / PANGO_SCALE;
+ }
+
pango_cairo_update_layout (cr, layout);
pango_layout_context_changed (layout);
pango_layout_set_width (layout, width * PANGO_SCALE);
// set paragraph styles
+ if (block->index_ == 0) {
+ pango_layout_set_indent (layout, paragraphs[i].indent);
+ // TODO: bullet
+ } else {
+ pango_layout_set_indent (layout, 0);
+ }
+
+ // set block styles
pango_layout_set_alignment (layout, block->align);
pango_layout_set_justify (layout, block->justify);
- pango_layout_set_indent (layout, block->indent);
pango_layout_set_spacing (layout, block->leading);
pango_layout_set_tabs (layout, block->tab_stops);
- // TODO: bullet
// set text attributes
- if (block->index_ + skip > 0 ||
- !swfdec_color_transform_is_identity (trans))
+ if (block->index_ > 0 || !swfdec_color_transform_is_identity (trans))
{
GList *iter_attrs;
@@ -208,7 +218,7 @@ swfdec_edit_text_render (SwfdecEditText
NULL);
line = pango_layout_get_line_readonly (layout, line_num);
skip_new = line->start_index + line->length - (length - skip);
- if (line->start_index + line->length ==
+ if ((guint)(line->start_index + line->length) ==
paragraphs[i].text_length - block->index_ - skip) {
skip_new += trailing_space;
} else {
@@ -232,7 +242,9 @@ swfdec_edit_text_render (SwfdecEditText
pango_layout_get_pixel_size (layout, NULL, &height);
cairo_rel_move_to (cr, -(block->left_margin + block->block_indent),
- height);
+ height + block->leading / PANGO_SCALE);
+ if (block->index_ == 0 && paragraphs[i].indent < 0)
+ cairo_rel_move_to (cr, -paragraphs[i].indent / PANGO_SCALE, 0);
}
}
diff --git a/libswfdec/swfdec_edittext.h b/libswfdec/swfdec_edittext.h
index 3b21d10..1d8f7e5 100644
--- a/libswfdec/swfdec_edittext.h
+++ b/libswfdec/swfdec_edittext.h
@@ -43,8 +43,6 @@ typedef struct {
PangoAlignment align;
gboolean justify;
- gboolean bullet;
- int indent;
int leading;
int block_indent;
int left_margin;
@@ -56,6 +54,9 @@ typedef struct {
const char *text;
guint text_length;
+ gboolean bullet;
+ int indent;
+
GList * blocks; // SwfdecBlock
GList * attrs; // PangoAttribute
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index 4eaaa76..d124972 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -80,8 +80,6 @@ swfdec_text_paragraph_add_block_attribut
block->justify = TRUE;
break;
}
- block->bullet = format->bullet;
- block->indent = format->indent * 20;
block->leading = format->leading * 20 * PANGO_SCALE;
block->block_indent = format->block_indent * 20;
block->left_margin = format->left_margin * 20;
@@ -130,6 +128,10 @@ swfdec_edit_text_movie_generate_paragrap
index_ = start_index;
format = ((SwfdecFormatIndex *)(iter->data))->format;
+ // Paragraph formats
+ paragraph->bullet = format->bullet;
+ paragraph->indent = format->indent * 20 * PANGO_SCALE;
+
// Add new block
swfdec_text_paragraph_add_block_attributes (paragraph, 0, format);
diff-tree f60d68fe3354e7686d2cfb781d10137bdc9299ee (from 70f2d6114399d0ef3cad61f25a334e869c67ac98)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Wed Oct 10 23:24:53 2007 +0300
Don't render trailing space in TextField
diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index c150b4a..0946292 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -109,7 +109,7 @@ swfdec_edit_text_render (SwfdecEditText
for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
{
int height, width;
- guint length;
+ guint length, trailing_space;
SwfdecBlock *block;
PangoAttrList *attr_list;
@@ -190,8 +190,13 @@ swfdec_edit_text_render (SwfdecEditText
pango_attr_list_unref (attr_list);
attr_list = NULL;
+ trailing_space = 0;
+ while (g_ascii_isspace (*(paragraphs[i].text +
+ paragraphs[i].text_length - trailing_space - 1))) {
+ trailing_space++;
+ }
pango_layout_set_text (layout, paragraphs[i].text + block->index_ + skip,
- paragraphs[i].text_length - block->index_ - skip);
+ paragraphs[i].text_length - block->index_ - skip - trailing_space);
if (iter->next != NULL)
{
@@ -203,9 +208,19 @@ swfdec_edit_text_render (SwfdecEditText
NULL);
line = pango_layout_get_line_readonly (layout, line_num);
skip_new = line->start_index + line->length - (length - skip);
+ if (line->start_index + line->length ==
+ paragraphs[i].text_length - block->index_ - skip) {
+ skip_new += trailing_space;
+ } else {
+ trailing_space = 0;
+ while (g_ascii_isspace (*(paragraphs[i].text + block->index_ + skip +
+ (length - skip + skip_new) - trailing_space - 1))) {
+ trailing_space++;
+ }
+ }
pango_layout_set_text (layout,
paragraphs[i].text + block->index_ + skip,
- length - skip + skip_new);
+ length - skip + skip_new - trailing_space);
skip = skip_new;
}
else
diff-tree 70f2d6114399d0ef3cad61f25a334e869c67ac98 (from 63c5d9d5f171aee080d1c3600f4b0e802c3a4d0f)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Wed Oct 10 22:53:12 2007 +0300
Fix setting of colors in TextField and apply color transforms
diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index 77de576..c150b4a 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -88,7 +88,6 @@ swfdec_edit_text_render (SwfdecEditText
{
PangoLayout *layout;
guint i;
- //SwfdecColor color;
g_return_if_fail (SWFDEC_IS_EDIT_TEXT (text));
g_return_if_fail (cr != NULL);
@@ -99,16 +98,12 @@ swfdec_edit_text_render (SwfdecEditText
cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
SWFDEC_GRAPHIC (text)->extents.y0);
- /*color = swfdec_color_apply_transform (text->color, trans);
- swfdec_color_set_source (cr, color);*/
-
layout = pango_cairo_create_layout (cr);
for (i = 0; paragraphs[i].text != NULL; i++)
{
GList *iter;
guint skip;
- int block_num = 0;
skip = 0;
for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
@@ -150,7 +145,9 @@ swfdec_edit_text_render (SwfdecEditText
// TODO: bullet
// set text attributes
- if (block->index_ + skip > 0) {
+ if (block->index_ + skip > 0 ||
+ !swfdec_color_transform_is_identity (trans))
+ {
GList *iter_attrs;
attr_list = pango_attr_list_new ();
@@ -166,9 +163,24 @@ swfdec_edit_text_render (SwfdecEditText
continue;
attr = pango_attribute_copy (attr);
+ if (attr->klass->type == PANGO_ATTR_FOREGROUND &&
+ !swfdec_color_transform_is_identity (trans))
+ {
+ PangoColor pcolor;
+ SwfdecColor color;
+
+ pcolor = ((PangoAttrColor *)attr)->color;
+ color = SWFDEC_COLOR_COMBINE (pcolor.red >> 8, pcolor.green >> 8,
+ pcolor.blue >> 8, 255);
+ color = swfdec_color_apply_transform (color, trans);
+ pcolor.red = SWFDEC_COLOR_R (color) << 8;
+ pcolor.green = SWFDEC_COLOR_G (color) << 8;
+ pcolor.blue = SWFDEC_COLOR_B (color) << 8;
+ ((PangoAttrColor *)attr)->color = pcolor;
+ }
attr->start_index = (attr->start_index > block->index_ + skip ?
- attr->start_index - block->index_ + skip : 0);
- attr->end_index = attr->end_index - block->index_ + skip;
+ attr->start_index - (block->index_ + skip) : 0);
+ attr->end_index = attr->end_index - (block->index_ + skip);
pango_attr_list_insert (attr_list, attr);
}
} else {
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index dd9484a..4eaaa76 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -138,8 +138,9 @@ swfdec_edit_text_movie_generate_paragrap
(format->bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL));
attr_bold->start_index = 0;
- attr_color = pango_attr_foreground_new (SWFDEC_COLOR_R (format->color),
- SWFDEC_COLOR_G (format->color), SWFDEC_COLOR_B (format->color));
+ attr_color = pango_attr_foreground_new (SWFDEC_COLOR_R (format->color) * 255,
+ SWFDEC_COLOR_G (format->color) * 255,
+ SWFDEC_COLOR_B (format->color) * 255);
attr_color->start_index = 0;
if (text->text->embed_fonts)
@@ -196,8 +197,10 @@ swfdec_edit_text_movie_generate_paragrap
attr_color->end_index = index_ - start_index;
swfdec_text_paragraph_add_attribute (paragraph, attr_color);
- attr_color = pango_attr_foreground_new (SWFDEC_COLOR_R (format->color),
- SWFDEC_COLOR_G (format->color), SWFDEC_COLOR_B (format->color));
+ attr_color = pango_attr_foreground_new (
+ SWFDEC_COLOR_R (format->color) * 255,
+ SWFDEC_COLOR_G (format->color) * 255,
+ SWFDEC_COLOR_B (format->color) * 255);
attr_color->start_index = index_ - start_index;
}
diff-tree 63c5d9d5f171aee080d1c3600f4b0e802c3a4d0f (from ab9704c5e59616aefc727d7e1bb91104b5e93375)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Wed Oct 10 21:21:54 2007 +0300
Rewrite some of TextField's rendering code again
diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index f8527d5..77de576 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -83,20 +83,16 @@ swfdec_edit_text_init (SwfdecEditText *
void
swfdec_edit_text_render (SwfdecEditText *text, cairo_t *cr,
- const SwfdecTextRenderBlock *blocks, const SwfdecColorTransform *trans,
+ const SwfdecParagraph *paragraphs, const SwfdecColorTransform *trans,
const SwfdecRect *inval)
{
- guint i, j;
PangoLayout *layout;
- PangoAttrList *attrs;
- guint width;
- int height, extra_chars, line_num;
- PangoLayoutLine *line;
+ guint i;
//SwfdecColor color;
g_return_if_fail (SWFDEC_IS_EDIT_TEXT (text));
g_return_if_fail (cr != NULL);
- g_return_if_fail (blocks != NULL);
+ g_return_if_fail (paragraphs != NULL);
g_return_if_fail (trans != NULL);
g_return_if_fail (inval != NULL);
@@ -108,57 +104,109 @@ swfdec_edit_text_render (SwfdecEditText
layout = pango_cairo_create_layout (cr);
- extra_chars = 0;
- for (i = 0; blocks[i].text != NULL; i++) {
- cairo_rel_move_to (cr, blocks[i].left_margin + blocks[i].block_indent, 0);
- width = SWFDEC_GRAPHIC (text)->extents.x1 -
- SWFDEC_GRAPHIC (text)->extents.x0 - blocks[i].left_margin -
- blocks[i].right_margin - blocks[i].block_indent;
-
- pango_cairo_update_layout (cr, layout);
- pango_layout_set_width (layout, width * PANGO_SCALE);
-
- // TODO: bullet
-
- pango_layout_set_alignment (layout, blocks[i].align);
- pango_layout_set_justify (layout, blocks[i].justify);
- pango_layout_set_indent (layout, blocks[i].indent);
- pango_layout_set_spacing (layout, blocks[i].leading);
- pango_layout_set_tabs (layout, blocks[i].tab_stops);
-
- if (!blocks[i].end_paragraph) {
- int prev_extra_chars = extra_chars;
- extra_chars = 0;
- attrs = pango_attr_list_copy (blocks[i].attrs);
- for (j = i + 1; blocks[j].text != NULL && !blocks[j-1].end_paragraph; j++)
+ for (i = 0; paragraphs[i].text != NULL; i++)
+ {
+ GList *iter;
+ guint skip;
+ int block_num = 0;
+
+ skip = 0;
+ for (iter = paragraphs[i].blocks; iter != NULL; iter = iter->next)
+ {
+ int height, width;
+ guint length;
+ SwfdecBlock *block;
+ PangoAttrList *attr_list;
+
+ block = (SwfdecBlock *)iter->data;
+ if (iter->next != NULL) {
+ length =
+ ((SwfdecBlock *)(iter->next->data))->index_ - block->index_;
+ } else {
+ length = paragraphs[i].text_length - block->index_;
+ }
+
+ if (skip > length) {
+ skip -= length;
+ continue;
+ }
+
+ // update position
+ cairo_rel_move_to (cr, block->left_margin + block->block_indent, 0);
+ width = SWFDEC_GRAPHIC (text)->extents.x1 -
+ SWFDEC_GRAPHIC (text)->extents.x0 - block->left_margin -
+ block->right_margin - block->block_indent;
+
+ pango_cairo_update_layout (cr, layout);
+ pango_layout_context_changed (layout);
+ pango_layout_set_width (layout, width * PANGO_SCALE);
+
+ // set paragraph styles
+ pango_layout_set_alignment (layout, block->align);
+ pango_layout_set_justify (layout, block->justify);
+ pango_layout_set_indent (layout, block->indent);
+ pango_layout_set_spacing (layout, block->leading);
+ pango_layout_set_tabs (layout, block->tab_stops);
+ // TODO: bullet
+
+ // set text attributes
+ if (block->index_ + skip > 0) {
+ GList *iter_attrs;
+
+ attr_list = pango_attr_list_new ();
+
+ for (iter_attrs = paragraphs[i].attrs; iter_attrs != NULL;
+ iter_attrs = iter_attrs->next)
+ {
+ PangoAttribute *attr;
+
+ attr = (PangoAttribute *)iter_attrs->data;
+
+ if (attr->end_index <= block->index_ + skip)
+ continue;
+
+ attr = pango_attribute_copy (attr);
+ attr->start_index = (attr->start_index > block->index_ + skip ?
+ attr->start_index - block->index_ + skip : 0);
+ attr->end_index = attr->end_index - block->index_ + skip;
+ pango_attr_list_insert (attr_list, attr);
+ }
+ } else {
+ attr_list = pango_attr_list_copy (paragraphs[i].attrs_list);
+ }
+ pango_layout_set_attributes (layout, attr_list);
+ pango_attr_list_unref (attr_list);
+ attr_list = NULL;
+
+ pango_layout_set_text (layout, paragraphs[i].text + block->index_ + skip,
+ paragraphs[i].text_length - block->index_ - skip);
+
+ if (iter->next != NULL)
{
- pango_attr_list_splice (attrs, blocks[j].attrs,
- blocks[i].text_length + extra_chars, blocks[j].text_length);
- extra_chars += blocks[j].text_length;
+ PangoLayoutLine *line;
+ int line_num;
+ guint skip_new;
+
+ pango_layout_index_to_line_x (layout, length - skip, FALSE, &line_num,
+ NULL);
+ line = pango_layout_get_line_readonly (layout, line_num);
+ skip_new = line->start_index + line->length - (length - skip);
+ pango_layout_set_text (layout,
+ paragraphs[i].text + block->index_ + skip,
+ length - skip + skip_new);
+ skip = skip_new;
+ }
+ else
+ {
+ skip = 0;
}
- pango_layout_set_text (layout, blocks[i].text + prev_extra_chars,
- blocks[i].text_length + extra_chars - prev_extra_chars);
- pango_layout_set_attributes (layout, attrs);
- pango_attr_list_unref (attrs);
- attrs = NULL;
-
- pango_layout_index_to_line_x (layout,
- blocks[i].text_length - prev_extra_chars, FALSE, &line_num, NULL);
- line = pango_layout_get_line_readonly (layout, line_num);
- extra_chars = line->start_index + line->length - (blocks[i].text_length - prev_extra_chars);
- pango_layout_set_text (layout, blocks[i].text + prev_extra_chars,
- blocks[i].text_length + extra_chars - prev_extra_chars);
- } else {
- pango_layout_set_text (layout, blocks[i].text + extra_chars, blocks[i].text_length - extra_chars);
- pango_layout_set_attributes (layout, blocks[i].attrs);
- extra_chars = 0;
- }
- pango_cairo_show_layout (cr, layout);
+ pango_cairo_show_layout (cr, layout);
- pango_layout_get_pixel_size (layout, NULL, &height);
- cairo_rel_move_to (cr, -(blocks[i].left_margin + blocks[i].block_indent),
- height);
+ pango_layout_get_pixel_size (layout, NULL, &height);
+ cairo_rel_move_to (cr, -(block->left_margin + block->block_indent),
+ height);
+ }
}
g_object_unref (layout);
diff --git a/libswfdec/swfdec_edittext.h b/libswfdec/swfdec_edittext.h
index 1419979..3b21d10 100644
--- a/libswfdec/swfdec_edittext.h
+++ b/libswfdec/swfdec_edittext.h
@@ -39,10 +39,7 @@ typedef struct _SwfdecEditTextClass Swfd
#define SWFDEC_EDIT_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_EDIT_TEXT, SwfdecEditTextClass))
typedef struct {
- const char *text;
- int text_length;
-
- gboolean end_paragraph;
+ guint index_;
PangoAlignment align;
gboolean justify;
@@ -53,9 +50,17 @@ typedef struct {
int left_margin;
int right_margin;
PangoTabArray * tab_stops;
+} SwfdecBlock;
+
+typedef struct {
+ const char *text;
+ guint text_length;
+
+ GList * blocks; // SwfdecBlock
- PangoAttrList * attrs;
-} SwfdecTextRenderBlock;
+ GList * attrs; // PangoAttribute
+ PangoAttrList * attrs_list;
+} SwfdecParagraph;
typedef enum {
SWFDEC_AUTO_SIZE_NONE,
@@ -108,7 +113,7 @@ int tag_func_define_edit_text (SwfdecS
void swfdec_edit_text_render (SwfdecEditText * text,
cairo_t * cr,
- const SwfdecTextRenderBlock * blocks,
+ const SwfdecParagraph * paragraphs,
const SwfdecColorTransform * trans,
const SwfdecRect * rect);
diff --git a/libswfdec/swfdec_edittext_movie.c b/libswfdec/swfdec_edittext_movie.c
index 0f21a26..dd9484a 100644
--- a/libswfdec/swfdec_edittext_movie.c
+++ b/libswfdec/swfdec_edittext_movie.c
@@ -42,33 +42,25 @@ swfdec_edit_text_movie_update_extents (S
}
static void
-swfdec_edit_text_movie_generate_render_block (SwfdecEditTextMovie *text,
- SwfdecTextRenderBlock *block, guint start_index, guint end_index)
+swfdec_text_paragraph_add_attribute (SwfdecParagraph *paragraph,
+ PangoAttribute *attr)
+{
+ paragraph->attrs = g_list_append (paragraph->attrs,
+ pango_attribute_copy (attr));
+ pango_attr_list_insert (paragraph->attrs_list, attr);
+}
+
+static void
+swfdec_text_paragraph_add_block_attributes (SwfdecParagraph *paragraph,
+ int index_, SwfdecTextFormat *format)
{
- SwfdecTextFormat *format, *format_prev;
- guint index_;
- GSList *iter;
gint32 length, i;
+ SwfdecBlock *block;
SwfdecAsValue val;
- PangoAttribute *attr_bold, *attr_color, *attr_font, *attr_italic,
- *attr_letter_spacing, *attr_size, *attr_underline;
- // TODO: kerning
-
- g_assert (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
- g_assert (block != NULL);
- g_assert (start_index < end_index);
- g_assert (end_index <= strlen (text->text_display));
- block->text = text->text_display + start_index;
- block->text_length = end_index - start_index;
+ block = g_new0 (SwfdecBlock, 1);
- g_assert (text->formats != NULL);
- for (iter = text->formats; iter->next != NULL &&
- ((SwfdecFormatIndex *)(iter->next->data))->index <= start_index;
- iter = iter->next);
-
- index_ = start_index;
- format = ((SwfdecFormatIndex *)(iter->data))->format;
+ block->index_ = index_;
switch (format->align) {
case SWFDEC_TEXT_ALIGN_LEFT:
@@ -104,7 +96,42 @@ swfdec_edit_text_movie_generate_render_b
SWFDEC_AS_VALUE_GET_NUMBER (&val));
}
- block->attrs = pango_attr_list_new ();
+ paragraph->blocks = g_list_append (paragraph->blocks, block);
+}
+
+static void
+swfdec_edit_text_movie_generate_paragraph (SwfdecEditTextMovie *text,
+ SwfdecParagraph *paragraph, guint start_index, guint end_index)
+{
+ SwfdecTextFormat *format, *format_prev;
+ guint index_;
+ GSList *iter;
+ PangoAttribute *attr_bold, *attr_color, *attr_font, *attr_italic,
+ *attr_letter_spacing, *attr_size, *attr_underline;
+ // TODO: kerning
+
+ g_assert (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
+ g_assert (paragraph != NULL);
+ g_assert (start_index < end_index);
+ g_assert (end_index <= strlen (text->text_display));
+
+ paragraph->text = text->text_display + start_index;
+ paragraph->text_length = end_index - start_index;
+
+ paragraph->blocks = NULL;
+ paragraph->attrs = NULL;
+ paragraph->attrs_list = pango_attr_list_new ();
+
+ g_assert (text->formats != NULL);
+ for (iter = text->formats; iter->next != NULL &&
+ ((SwfdecFormatIndex *)(iter->next->data))->index <= start_index;
+ iter = iter->next);
+
+ index_ = start_index;
+ format = ((SwfdecFormatIndex *)(iter->data))->format;
+
+ // Add new block
+ swfdec_text_paragraph_add_block_attributes (paragraph, 0, format);
// Open attributes
attr_bold = pango_attr_weight_new (
@@ -143,10 +170,22 @@ swfdec_edit_text_movie_generate_render_b
index_ = ((SwfdecFormatIndex *)(iter->data))->index;
format = ((SwfdecFormatIndex *)(iter->data))->format;
+ // Add new block if necessary
+ if (format_prev->align != format->align ||
+ format_prev->bullet != format->bullet ||
+ format_prev->indent != format->indent ||
+ format_prev->leading != format->leading ||
+ format_prev->block_indent != format->block_indent ||
+ format_prev->left_margin != format->left_margin)
+ {
+ swfdec_text_paragraph_add_block_attributes (paragraph,
+ index_ - start_index, format);
+ }
+
// Change attributes if necessary
if (format_prev->bold != format->bold) {
attr_bold->end_index = index_ - start_index;
- pango_attr_list_insert (block->attrs, attr_bold);
+ swfdec_text_paragraph_add_attribute (paragraph, attr_bold);
attr_bold = pango_attr_weight_new (
(format->bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL));
@@ -155,7 +194,7 @@ swfdec_edit_text_movie_generate_render_b
if (format_prev->color != format->color) {
attr_color->end_index = index_ - start_index;
- pango_attr_list_insert (block->attrs, attr_color);
+ swfdec_text_paragraph_add_attribute (paragraph, attr_color);
attr_color = pango_attr_foreground_new (SWFDEC_COLOR_R (format->color),
SWFDEC_COLOR_G (format->color), SWFDEC_COLOR_B (format->color));
@@ -164,7 +203,7 @@ swfdec_edit_text_movie_generate_render_b
if (format_prev->font != format->font) {
attr_font->end_index = index_ - start_index;
- pango_attr_list_insert (block->attrs, attr_font);
+ swfdec_text_paragraph_add_attribute (paragraph, attr_font);
if (text->text->embed_fonts)
SWFDEC_FIXME ("Using embed fonts in TextField not supported");
@@ -174,7 +213,7 @@ swfdec_edit_text_movie_generate_render_b
if (format_prev->italic != format->italic) {
attr_italic->end_index = index_ - start_index;
- pango_attr_list_insert (block->attrs, attr_italic);
+ swfdec_text_paragraph_add_attribute (paragraph, attr_italic);
attr_italic = pango_attr_style_new (
(format->italic ? PANGO_STYLE_ITALIC : PANGO_STYLE_NORMAL));
@@ -183,7 +222,7 @@ swfdec_edit_text_movie_generate_render_b
if (format_prev->letter_spacing != format->letter_spacing) {
attr_letter_spacing->end_index = index_ - start_index;
- pango_attr_list_insert (block->attrs, attr_letter_spacing);
+ swfdec_text_paragraph_add_attribute (paragraph, attr_letter_spacing);
// FIXME: correct scaling?
attr_letter_spacing = pango_attr_letter_spacing_new (
@@ -193,7 +232,7 @@ swfdec_edit_text_movie_generate_render_b
if (format_prev->size != format->size) {
attr_size->end_index = index_ - start_index;
- pango_attr_list_insert (block->attrs, attr_size);
+ swfdec_text_paragraph_add_attribute (paragraph, attr_size);
attr_size =
pango_attr_size_new_absolute (format->size * 20 * PANGO_SCALE);
@@ -202,7 +241,7 @@ swfdec_edit_text_movie_generate_render_b
if (format_prev->underline != format->underline) {
attr_underline->end_index = index_ - start_index;
- pango_attr_list_insert (block->attrs, attr_underline);
+ swfdec_text_paragraph_add_attribute (paragraph, attr_underline);
attr_underline = pango_attr_underline_new (
(format->underline ? PANGO_UNDERLINE_SINGLE : PANGO_UNDERLINE_NONE));
@@ -212,83 +251,53 @@ swfdec_edit_text_movie_generate_render_b
// Close attributes
attr_bold->end_index = end_index - start_index;
- pango_attr_list_insert (block->attrs, attr_bold);
+ swfdec_text_paragraph_add_attribute (paragraph, attr_bold);
attr_bold = NULL;
attr_color->end_index = end_index - start_index;
- pango_attr_list_insert (block->attrs, attr_color);
+ swfdec_text_paragraph_add_attribute (paragraph, attr_color);
attr_color = NULL;
attr_font->end_index = end_index - start_index;
- pango_attr_list_insert (block->attrs, attr_font);
+ swfdec_text_paragraph_add_attribute (paragraph, attr_font);
attr_font = NULL;
attr_italic->end_index = end_index - start_index;
- pango_attr_list_insert (block->attrs, attr_italic);
+ swfdec_text_paragraph_add_attribute (paragraph, attr_italic);
attr_italic = NULL;
attr_letter_spacing->end_index = end_index - start_index;
- pango_attr_list_insert (block->attrs, attr_letter_spacing);
+ swfdec_text_paragraph_add_attribute (paragraph, attr_letter_spacing);
attr_letter_spacing = NULL;
attr_size->end_index = end_index - start_index;
- pango_attr_list_insert (block->attrs, attr_size);
+ swfdec_text_paragraph_add_attribute (paragraph, attr_size);
attr_size = NULL;
attr_underline->end_index = end_index - start_index;
- pango_attr_list_insert (block->attrs, attr_underline);
+ swfdec_text_paragraph_add_attribute (paragraph, attr_underline);
attr_underline = NULL;
}
static void
-swfdec_edit_text_movie_generate_render_blocks (SwfdecEditTextMovie *text)
+swfdec_edit_text_movie_generate_paragraphs (SwfdecEditTextMovie *text)
{
const char *p, *end;
- SwfdecTextFormat *format, *format_prev;
- GSList *iter;
int num, i;
g_assert (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
num = 0;
- iter = text->formats;
- format = ((SwfdecFormatIndex *)(iter->data))->format;
p = text->text_display;
- while (p != NULL && *p != '\0') {
+ while (p != NULL) {
num++;
- end = strchr (p, '\r');
- if (end == NULL)
- end = strchr (p, '\0');
-
- while (iter != NULL &&
- ((SwfdecFormatIndex *)(iter->data))->index < end - text->text_display)
- {
- format_prev = format;
- format = ((SwfdecFormatIndex *)(iter->data))->format;
-
- if (format_prev->align != format->align ||
- format_prev->bullet != format->bullet ||
- format_prev->indent != format->indent ||
- format_prev->leading != format->leading ||
- format_prev->block_indent != format->block_indent ||
- format_prev->left_margin != format->left_margin)
- {
- end = text->text_display + ((SwfdecFormatIndex *)(iter->data))->index;
- break;
- }
-
- iter = iter->next;
- }
-
- p = end;
- if (*p == '\r') p++;
+ p = strchr (p, '\r');
+ if (p != NULL) p++;
}
- text->blocks = g_new0 (SwfdecTextRenderBlock, num + 1);
+ text->paragraphs = g_new0 (SwfdecParagraph, num + 1);
i = 0;
- iter = text->formats;
- format = ((SwfdecFormatIndex *)(iter->data))->format;
p = text->text_display;
while (*p != '\0') {
g_assert (i < num);
@@ -296,29 +305,8 @@ swfdec_edit_text_movie_generate_render_b
if (end == NULL)
end = strchr (p, '\0');
- while (iter != NULL &&
- ((SwfdecFormatIndex *)(iter->data))->index < end - text->text_display)
- {
- format_prev = format;
- format = ((SwfdecFormatIndex *)(iter->data))->format;
-
- if (format_prev->align != format->align ||
- format_prev->bullet != format->bullet ||
- format_prev->indent != format->indent ||
- format_prev->leading != format->leading ||
- format_prev->block_indent != format->block_indent ||
- format_prev->left_margin != format->left_margin)
- {
- end = text->text_display + ((SwfdecFormatIndex *)(iter->data))->index;
- break;
- }
-
- iter = iter->next;
- }
-
- swfdec_edit_text_movie_generate_render_block (text, &text->blocks[i],
+ swfdec_edit_text_movie_generate_paragraph (text, &text->paragraphs[i],
p - text->text_display, end - text->text_display);
- text->blocks[i].end_paragraph = (*end == '\r' || *end == '\0');
p = end;
if (*p == '\r') p++;
@@ -334,47 +322,44 @@ swfdec_edit_text_movie_render (SwfdecMov
{
SwfdecEditTextMovie *text = SWFDEC_EDIT_TEXT_MOVIE (movie);
- if (text->blocks == NULL)
- swfdec_edit_text_movie_generate_render_blocks (text);
+ if (text->paragraphs == NULL)
+ swfdec_edit_text_movie_generate_paragraphs (text);
- if (text->blocks[0].text == NULL)
+ if (text->paragraphs[0].text == NULL)
return;
- swfdec_edit_text_render (text->text, cr, text->blocks, trans, inval);
+ swfdec_edit_text_render (text->text, cr, text->paragraphs, trans, inval);
}
-void
-swfdec_edit_text_movie_format_changed (SwfdecEditTextMovie *text)
+static void
+swfdec_edit_text_movie_free_paragraphs (SwfdecEditTextMovie *text)
{
int i;
- if (text->blocks != NULL) {
- for (i = 0; text->blocks[i].text != NULL; i++) {
- // tabs
- pango_attr_list_unref (text->blocks[i].attrs);
+ if (text->paragraphs) {
+ for (i = 0; text->paragraphs[i].text != NULL; i++) {
+ // FIXME
+ /*if (text->paragraphs[i].tab_stops != NULL)
+ pango_tab_array_free (text->paragraphs[i].tab_stops);*/
+ if (text->paragraphs[i].attrs_list != NULL)
+ pango_attr_list_unref (text->paragraphs[i].attrs_list);
}
- g_free (text->blocks);
- text->blocks = NULL;
-
- swfdec_movie_invalidate (SWFDEC_MOVIE (text));
+ g_free (text->paragraphs);
+ text->paragraphs = NULL;
}
}
+void
+swfdec_edit_text_movie_format_changed (SwfdecEditTextMovie *text)
+{
+ swfdec_edit_text_movie_free_paragraphs (text);
+}
+
static void
swfdec_edit_text_movie_dispose (GObject *object)
{
- int i;
SwfdecEditTextMovie *text = SWFDEC_EDIT_TEXT_MOVIE (object);
- if (text->blocks) {
- for (i = 0; text->blocks[i].text != NULL; i++) {
- if (text->blocks[i].attrs != NULL)
- pango_attr_list_unref (text->blocks[i].attrs);
- if (text->blocks[i].tab_stops != NULL)
- pango_tab_array_free (text->blocks[i].tab_stops);
- }
- g_free (text->blocks);
- text->blocks = NULL;
- }
+ swfdec_edit_text_movie_free_paragraphs (text);
G_OBJECT_CLASS (swfdec_edit_text_movie_parent_class)->dispose (object);
}
diff --git a/libswfdec/swfdec_edittext_movie.h b/libswfdec/swfdec_edittext_movie.h
index b589cdb..9f0b6a9 100644
--- a/libswfdec/swfdec_edittext_movie.h
+++ b/libswfdec/swfdec_edittext_movie.h
@@ -81,7 +81,7 @@ struct _SwfdecEditTextMovie {
int thickness;
/* for rendering */
- SwfdecTextRenderBlock *blocks;
+ SwfdecParagraph * paragraphs;
};
struct _SwfdecEditTextMovieClass {
diff-tree ab9704c5e59616aefc727d7e1bb91104b5e93375 (from parents)
Merge: ca62a68fa3e8625d07e1b9281cff0fb2891516fa 94783c22d4b2b4c2afc98835db2a7333b4dd59a8
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Wed Oct 10 14:33:33 2007 +0300
Merge branch 'master' into textfield
Conflicts:
libswfdec/swfdec_edittext.h
libswfdec/swfdec_edittext_movie.c
libswfdec/swfdec_html_parser.c
libswfdec/swfdec_initialize.as
libswfdec/swfdec_initialize.h
diff --cc libswfdec/Makefile.am
index 1a80e27,428a3a9..19edb60
@@@ -60,9 -61,9 +61,10 @@@
swfdec_color_as.c \
swfdec_debug.c \
swfdec_decoder.c \
+ swfdec_draw.c \
swfdec_edittext.c \
swfdec_edittext_movie.c \
+ swfdec_edittext_movie_as.c \
swfdec_enums.c \
swfdec_event.c \
swfdec_file_loader.c \
diff --cc libswfdec/swfdec_edittext.c
index 8d915ce,ed641e8..f8527d5
@@@ -81,92 -82,6 +81,89 @@@
text->max_length = G_MAXUINT;
}
+void
+swfdec_edit_text_render (SwfdecEditText *text, cairo_t *cr,
+ const SwfdecTextRenderBlock *blocks, const SwfdecColorTransform *trans,
- const SwfdecRect *inval, gboolean fill)
++ const SwfdecRect *inval)
+{
+ guint i, j;
+ PangoLayout *layout;
+ PangoAttrList *attrs;
+ guint width;
+ int height, extra_chars, line_num;
+ PangoLayoutLine *line;
+ //SwfdecColor color;
+
+ g_return_if_fail (SWFDEC_IS_EDIT_TEXT (text));
+ g_return_if_fail (cr != NULL);
+ g_return_if_fail (blocks != NULL);
+ g_return_if_fail (trans != NULL);
+ g_return_if_fail (inval != NULL);
+
+ cairo_move_to (cr, SWFDEC_GRAPHIC (text)->extents.x0,
+ SWFDEC_GRAPHIC (text)->extents.y0);
+
+ /*color = swfdec_color_apply_transform (text->color, trans);
+ swfdec_color_set_source (cr, color);*/
+
+ layout = pango_cairo_create_layout (cr);
+
+ extra_chars = 0;
+ for (i = 0; blocks[i].text != NULL; i++) {
+ cairo_rel_move_to (cr, blocks[i].left_margin + blocks[i].block_indent, 0);
+ width = SWFDEC_GRAPHIC (text)->extents.x1 -
+ SWFDEC_GRAPHIC (text)->extents.x0 - blocks[i].left_margin -
+ blocks[i].right_margin - blocks[i].block_indent;
+
+ pango_cairo_update_layout (cr, layout);
+ pango_layout_set_width (layout, width * PANGO_SCALE);
+
+ // TODO: bullet
+
+ pango_layout_set_alignment (layout, blocks[i].align);
+ pango_layout_set_justify (layout, blocks[i].justify);
+ pango_layout_set_indent (layout, blocks[i].indent);
+ pango_layout_set_spacing (layout, blocks[i].leading);
+ pango_layout_set_tabs (layout, blocks[i].tab_stops);
+
+ if (!blocks[i].end_paragraph) {
+ int prev_extra_chars = extra_chars;
+ extra_chars = 0;
+ attrs = pango_attr_list_copy (blocks[i].attrs);
+ for (j = i + 1; blocks[j].text != NULL && !blocks[j-1].end_paragraph; j++)
+ {
+ pango_attr_list_splice (attrs, blocks[j].attrs,
+ blocks[i].text_length + extra_chars, blocks[j].text_length);
+ extra_chars += blocks[j].text_length;
+ }
+ pango_layout_set_text (layout, blocks[i].text + prev_extra_chars,
+ blocks[i].text_length + extra_chars - prev_extra_chars);
+ pango_layout_set_attributes (layout, attrs);
+ pango_attr_list_unref (attrs);
+ attrs = NULL;
+
+ pango_layout_index_to_line_x (layout,
+ blocks[i].text_length - prev_extra_chars, FALSE, &line_num, NULL);
+ line = pango_layout_get_line_readonly (layout, line_num);
+ extra_chars = line->start_index + line->length - (blocks[i].text_length - prev_extra_chars);
+ pango_layout_set_text (layout, blocks[i].text + prev_extra_chars,
+ blocks[i].text_length + extra_chars - prev_extra_chars);
+ } else {
+ pango_layout_set_text (layout, blocks[i].text + extra_chars, blocks[i].text_length - extra_chars);
+ pango_layout_set_attributes (layout, blocks[i].attrs);
+ extra_chars = 0;
+ }
+
- if (fill)
- pango_cairo_show_layout (cr, layout);
- else
- pango_cairo_layout_path (cr, layout);
++ pango_cairo_show_layout (cr, layout);
+
+ pango_layout_get_pixel_size (layout, NULL, &height);
+ cairo_rel_move_to (cr, -(blocks[i].left_margin + blocks[i].block_indent),
+ height);
+ }
+
+ g_object_unref (layout);
+}
+
int
tag_func_define_edit_text (SwfdecSwfDecoder * s, guint tag)
{
diff --cc libswfdec/swfdec_edittext.h
index 795d5bc,23405c2..1419979
@@@ -106,12 -80,18 +106,11 @@@
int tag_func_define_edit_text (SwfdecSwfDecoder * s,
guint tag);
-/* implemented in swfdec_html_parser.c */
-SwfdecParagraph * swfdec_paragraph_html_parse (SwfdecEditText * text,
- const char * str);
-SwfdecParagraph * swfdec_paragraph_text_parse (SwfdecEditText * text,
- const char * str);
-void swfdec_paragraph_free (SwfdecParagraph * paragraphs);
void swfdec_edit_text_render (SwfdecEditText * text,
cairo_t * cr,
- const SwfdecParagraph * paragraph,
+ const SwfdecTextRenderBlock * blocks,
const SwfdecColorTransform * trans,
- const SwfdecRect * rect,
- gboolean fill);
+ const SwfdecRect * rect);
-
G_END_DECLS
#endif
diff --cc libswfdec/swfdec_edittext_movie.c
index e481a86,e3b1ba5..0f21a26
@@@ -42,328 -38,19 +42,321 @@@
}
static void
-swfdec_edit_text_movie_render (SwfdecMovie *movie, cairo_t *cr,
+swfdec_edit_text_movie_generate_render_block (SwfdecEditTextMovie *text,
+ SwfdecTextRenderBlock *block, guint start_index, guint end_index)
+{
+ SwfdecTextFormat *format, *format_prev;
+ guint index_;
+ GSList *iter;
+ gint32 length, i;
+ SwfdecAsValue val;
+ PangoAttribute *attr_bold, *attr_color, *attr_font, *attr_italic,
+ *attr_letter_spacing, *attr_size, *attr_underline;
+ // TODO: kerning
+
+ g_assert (SWFDEC_IS_EDIT_TEXT_MOVIE (text));
+ g_assert (block != NULL);
+ g_assert (start_index < end_index);
+ g_assert (end_index <= strlen (text->text_display));
+
+ block->text = text->text_display + start_index;
+ block->text_length = end_index - start_index;
+
+ g_assert (text->formats != NULL);
+ for (iter = text->formats; iter->next != NULL &&
+ ((SwfdecFormatIndex *)(iter->next->data))->index <= start_index;
+ iter = iter->next);
+
+ index_ = start_index;
+ format = ((SwfdecFormatIndex *)(iter->data))->format;
+
+ switch (format->align) {
+ case SWFDEC_TEXT_ALIGN_LEFT:
+ block->align = PANGO_ALIGN_LEFT;
+ block->justify = FALSE;
+ break;
+ case SWFDEC_TEXT_ALIGN_RIGHT:
+ block->align = PANGO_ALIGN_RIGHT;
+ block->justify = FALSE;
+ break;
+ case SWFDEC_TEXT_ALIGN_CENTER:
+ block->align = PANGO_ALIGN_CENTER;
+ block->justify = FALSE;
+ break;
+ case SWFDEC_TEXT_ALIGN_JUSTIFY:
+ block->align = PANGO_ALIGN_LEFT;
+ block->justify = TRUE;
+ break;
+ }
+ block->bullet = format->bullet;
+ block->indent = format->indent * 20;
+ block->leading = format->leading * 20 * PANGO_SCALE;
+ block->block_indent = format->block_indent * 20;
+ block->left_margin = format->left_margin * 20;
+ block->right_margin = format->right_margin * 20;
+
+ length = swfdec_as_array_get_length (format->tab_stops);
+ block->tab_stops = pango_tab_array_new (length, TRUE);
+ for (i = 0; i