Pekka Lampila
2007-Sep-12 19:46 UTC
[Swfdec] 9 commits - libswfdec/swfdec_as_function.c libswfdec/swfdec_as_initialize.as libswfdec/swfdec_as_initialize.h libswfdec/swfdec_as_object.c libswfdec/swfdec_as_strings.c libswfdec/swfdec_player_as.c test/trace
libswfdec/swfdec_as_function.c | 11 libswfdec/swfdec_as_initialize.as | 4 libswfdec/swfdec_as_initialize.h | 311 ++++++++++++++-------------- libswfdec/swfdec_as_object.c | 73 ++++-- libswfdec/swfdec_as_strings.c | 1 libswfdec/swfdec_player_as.c | 15 + test/trace/Makefile.am | 14 + test/trace/assetnative-5.swf |binary test/trace/assetnative-5.swf.trace | 28 ++ test/trace/assetnative-6.swf |binary test/trace/assetnative-6.swf.trace | 40 +++ test/trace/assetnative-7.swf |binary test/trace/assetnative-7.swf.trace | 39 +++ test/trace/assetnative.as | 17 + test/trace/object-isprototypeof-5.swf |binary test/trace/object-isprototypeof-5.swf.trace | 154 +++++++++++++ test/trace/object-isprototypeof-6.swf |binary test/trace/object-isprototypeof-6.swf.trace | 155 +++++++++++++ test/trace/object-isprototypeof-7.swf |binary test/trace/object-isprototypeof-7.swf.trace | 155 +++++++++++++ test/trace/object-isprototypeof.as | 39 +++ test/trace/values.as | 10 22 files changed, 880 insertions(+), 186 deletions(-) New commits: diff-tree 03eac76520edd164d555bbf7c050752f84179d82 (from 0b03c9ee20bed5b6ef2089e706655f1382c1b535) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Wed Sep 12 22:44:29 2007 +0300 Fix a problem with watch when unwatched inside the watching function diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c index e7086e6..db4119a 100644 --- a/libswfdec/swfdec_as_object.c +++ b/libswfdec/swfdec_as_object.c @@ -293,6 +293,7 @@ swfdec_as_object_do_set (SwfdecAsObject const SwfdecAsValue *val, guint flags) { SwfdecAsVariable *var; + SwfdecAsWatch *watch; if (!swfdec_as_variable_name_is_valid (variable)) return; @@ -335,7 +336,7 @@ swfdec_as_object_do_set (SwfdecAsObject } if (object->watches) { SwfdecAsValue ret = *val; - SwfdecAsWatch *watch = g_hash_table_lookup (object->watches, variable); + watch = g_hash_table_lookup (object->watches, variable); /* FIXME: figure out if this limit here is correct. Add a watch in Flash 7 * and set a variable using Flash 6 */ if (watch && swfdec_as_watch_can_recurse (watch)) { @@ -354,6 +355,8 @@ swfdec_as_object_do_set (SwfdecAsObject } var->value = ret; + } else { + watch = NULL; } if (var->get) { if (var->set) { @@ -361,7 +364,7 @@ swfdec_as_object_do_set (SwfdecAsObject swfdec_as_function_call (var->set, object, 1, val, &tmp); swfdec_as_context_run (object->context); } - } else if (!object->watches) { + } else if (watch == NULL) { var->value = *val; } if (variable == SWFDEC_AS_STR___proto__) { diff-tree 0b03c9ee20bed5b6ef2089e706655f1382c1b535 (from 421999f93c864a84497d9a37496c3788c966cadb) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Wed Sep 12 22:15:07 2007 +0300 Initialize Function's methods in swfdec_as_initialize.as diff --git a/libswfdec/swfdec_as_function.c b/libswfdec/swfdec_as_function.c index c8f4fbe..2bf731e 100644 --- a/libswfdec/swfdec_as_function.c +++ b/libswfdec/swfdec_as_function.c @@ -147,7 +147,8 @@ swfdec_as_function_call (SwfdecAsFunctio /*** AS CODE ***/ -static void +SWFDEC_AS_NATIVE (101, 10, swfdec_as_function_do_call) +void swfdec_as_function_do_call (SwfdecAsContext *context, SwfdecAsObject *fun, guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) { @@ -166,7 +167,8 @@ swfdec_as_function_do_call (SwfdecAsCont swfdec_as_context_run (context); } -static void +SWFDEC_AS_NATIVE (101, 11, swfdec_as_function_apply) +void swfdec_as_function_apply (SwfdecAsContext *cx, SwfdecAsObject *fun, guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) { @@ -250,11 +252,6 @@ swfdec_as_function_init_context (SwfdecA SWFDEC_AS_VALUE_SET_OBJECT (&val, function); swfdec_as_object_set_variable_and_flags (proto, SWFDEC_AS_STR_constructor, &val, SWFDEC_AS_VARIABLE_HIDDEN | SWFDEC_AS_VARIABLE_PERMANENT); - /* prototype functions */ - swfdec_as_object_add_function (proto, SWFDEC_AS_STR_call, - SWFDEC_TYPE_AS_FUNCTION, swfdec_as_function_do_call, 0); - swfdec_as_object_add_function (proto, SWFDEC_AS_STR_apply, - SWFDEC_TYPE_AS_FUNCTION, swfdec_as_function_apply, 0); } } diff --git a/libswfdec/swfdec_as_initialize.as b/libswfdec/swfdec_as_initialize.as index d5321df..ddd1394 100644 --- a/libswfdec/swfdec_as_initialize.as +++ b/libswfdec/swfdec_as_initialize.as @@ -24,6 +24,9 @@ ASSetNativeAccessor = ASnative (4, 1); /*** BASE OBJECTS ***/ +ASSetNative (Function.prototype, 101, "6call,6apply", 10); +ASSetPropFlags(o, null, 3); + ASSetNative(Object.prototype, 101, "6watch,6unwatch,6addProperty,valueOf,toString,6hasOwnProperty,6isPrototypeOf,6isPropertyEnumerable"); Object.prototype.toLocaleString = function () { return this.toString (); diff --git a/libswfdec/swfdec_as_initialize.h b/libswfdec/swfdec_as_initialize.h index 82b1a36..77a8d0c 100644 --- a/libswfdec/swfdec_as_initialize.h +++ b/libswfdec/swfdec_as_initialize.h @@ -2,163 +2,168 @@ /* compiled from swfdec_as_initialize.as */ const unsigned char swfdec_as_initialize[] = { - 0x88, 0xCF, 0x04, 0x33, 0x00, 0x41, 0x53, 0x53, 0x65, 0x74, 0x4E, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x88, 0xE7, 0x04, 0x36, 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, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x36, - 0x77, 0x61, 0x74, 0x63, 0x68, 0x2C, 0x36, 0x75, 0x6E, 0x77, 0x61, 0x74, 0x63, 0x68, 0x2C, 0x36, - 0x61, 0x64, 0x64, 0x50, 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2C, 0x76, 0x61, 0x6C, 0x75, - 0x65, 0x4F, 0x66, 0x2C, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x2C, 0x36, 0x68, 0x61, - 0x73, 0x4F, 0x77, 0x6E, 0x50, 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2C, 0x36, 0x69, 0x73, - 0x50, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x4F, 0x66, 0x2C, 0x36, 0x69, 0x73, 0x50, - 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6E, 0x75, 0x6D, 0x65, 0x72, 0x61, 0x62, 0x6C, - 0x65, 0x00, 0x74, 0x6F, 0x4C, 0x6F, 0x63, 0x61, 0x6C, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, - 0x00, 0x74, 0x68, 0x69, 0x73, 0x00, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x41, - 0x53, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6F, 0x70, 0x46, 0x6C, 0x61, 0x67, 0x73, 0x00, 0x42, 0x6F, - 0x6F, 0x6C, 0x65, 0x61, 0x6E, 0x00, 0x41, 0x53, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x6F, 0x72, 0x00, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x4F, 0x66, 0x2C, 0x74, 0x6F, 0x53, 0x74, - 0x72, 0x69, 0x6E, 0x67, 0x00, 0x4E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x4E, 0x00, - 0x50, 0x4F, 0x53, 0x49, 0x54, 0x49, 0x56, 0x45, 0x5F, 0x49, 0x4E, 0x46, 0x49, 0x4E, 0x49, 0x54, - 0x59, 0x00, 0x49, 0x6E, 0x66, 0x69, 0x6E, 0x69, 0x74, 0x79, 0x00, 0x4E, 0x45, 0x47, 0x41, 0x54, - 0x49, 0x56, 0x45, 0x5F, 0x49, 0x4E, 0x46, 0x49, 0x4E, 0x49, 0x54, 0x59, 0x00, 0x4D, 0x49, 0x4E, - 0x5F, 0x56, 0x41, 0x4C, 0x55, 0x45, 0x00, 0x4D, 0x41, 0x58, 0x5F, 0x56, 0x41, 0x4C, 0x55, 0x45, - 0x00, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x4F, 0x66, 0x2C, - 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x2C, 0x74, 0x6F, 0x55, 0x70, 0x70, 0x65, 0x72, - 0x43, 0x61, 0x73, 0x65, 0x2C, 0x74, 0x6F, 0x4C, 0x6F, 0x77, 0x65, 0x72, 0x43, 0x61, 0x73, 0x65, - 0x2C, 0x63, 0x68, 0x61, 0x72, 0x41, 0x74, 0x2C, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6F, 0x64, 0x65, - 0x41, 0x74, 0x2C, 0x63, 0x6F, 0x6E, 0x63, 0x61, 0x74, 0x2C, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x4F, - 0x66, 0x2C, 0x6C, 0x61, 0x73, 0x74, 0x49, 0x6E, 0x64, 0x65, 0x78, 0x4F, 0x66, 0x2C, 0x73, 0x6C, - 0x69, 0x63, 0x65, 0x2C, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x2C, 0x73, 0x70, - 0x6C, 0x69, 0x74, 0x2C, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x00, 0x66, 0x72, 0x6F, 0x6D, 0x43, - 0x68, 0x61, 0x72, 0x43, 0x6F, 0x64, 0x65, 0x00, 0x4D, 0x61, 0x74, 0x68, 0x00, 0x45, 0x00, 0x4C, - 0x4E, 0x31, 0x30, 0x00, 0x4C, 0x4E, 0x32, 0x00, 0x4C, 0x4F, 0x47, 0x31, 0x30, 0x45, 0x00, 0x4C, - 0x4F, 0x47, 0x32, 0x45, 0x00, 0x50, 0x49, 0x00, 0x53, 0x51, 0x52, 0x54, 0x31, 0x5F, 0x32, 0x00, - 0x53, 0x51, 0x52, 0x54, 0x32, 0x00, 0x61, 0x62, 0x73, 0x2C, 0x6D, 0x69, 0x6E, 0x2C, 0x6D, 0x61, - 0x78, 0x2C, 0x73, 0x69, 0x6E, 0x2C, 0x63, 0x6F, 0x73, 0x2C, 0x61, 0x74, 0x61, 0x6E, 0x32, 0x2C, - 0x74, 0x61, 0x6E, 0x2C, 0x65, 0x78, 0x70, 0x2C, 0x6C, 0x6F, 0x67, 0x2C, 0x73, 0x71, 0x72, 0x74, - 0x2C, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2C, 0x72, 0x61, 0x6E, 0x64, 0x6F, 0x6D, 0x2C, 0x66, 0x6C, - 0x6F, 0x6F, 0x72, 0x2C, 0x63, 0x65, 0x69, 0x6C, 0x2C, 0x61, 0x74, 0x61, 0x6E, 0x2C, 0x61, 0x73, - 0x69, 0x6E, 0x2C, 0x61, 0x63, 0x6F, 0x73, 0x2C, 0x70, 0x6F, 0x77, 0x00, 0x44, 0x61, 0x74, 0x65, - 0x00, 0x67, 0x65, 0x74, 0x46, 0x75, 0x6C, 0x6C, 0x59, 0x65, 0x61, 0x72, 0x2C, 0x67, 0x65, 0x74, - 0x59, 0x65, 0x61, 0x72, 0x2C, 0x67, 0x65, 0x74, 0x4D, 0x6F, 0x6E, 0x74, 0x68, 0x2C, 0x67, 0x65, - 0x74, 0x44, 0x61, 0x74, 0x65, 0x2C, 0x67, 0x65, 0x74, 0x44, 0x61, 0x79, 0x2C, 0x67, 0x65, 0x74, - 0x48, 0x6F, 0x75, 0x72, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, - 0x2C, 0x67, 0x65, 0x74, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x4D, - 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x46, - 0x75, 0x6C, 0x6C, 0x59, 0x65, 0x61, 0x72, 0x2C, 0x73, 0x65, 0x74, 0x4D, 0x6F, 0x6E, 0x74, 0x68, - 0x2C, 0x73, 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, 0x2C, 0x73, 0x65, 0x74, 0x48, 0x6F, 0x75, 0x72, - 0x73, 0x2C, 0x73, 0x65, 0x74, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, 0x2C, 0x73, 0x65, 0x74, - 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x4D, 0x69, 0x6C, 0x6C, 0x69, - 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x2C, - 0x73, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x2C, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x7A, - 0x6F, 0x6E, 0x65, 0x4F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2C, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, - 0x6E, 0x67, 0x2C, 0x73, 0x65, 0x74, 0x59, 0x65, 0x61, 0x72, 0x00, 0x67, 0x65, 0x74, 0x55, 0x54, - 0x43, 0x46, 0x75, 0x6C, 0x6C, 0x59, 0x65, 0x61, 0x72, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, - 0x59, 0x65, 0x61, 0x72, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x6F, 0x6E, 0x74, 0x68, - 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x44, 0x61, 0x74, 0x65, 0x2C, 0x67, 0x65, 0x74, 0x55, - 0x54, 0x43, 0x44, 0x61, 0x79, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x48, 0x6F, 0x75, 0x72, - 0x73, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, 0x2C, - 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x67, 0x65, - 0x74, 0x55, 0x54, 0x43, 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, - 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x46, 0x75, 0x6C, 0x6C, 0x59, 0x65, 0x61, 0x72, 0x2C, - 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x6F, 0x6E, 0x74, 0x68, 0x2C, 0x73, 0x65, 0x74, 0x55, - 0x54, 0x43, 0x44, 0x61, 0x74, 0x65, 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x48, 0x6F, 0x75, - 0x72, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, - 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x73, - 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, - 0x73, 0x00, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x4F, 0x66, 0x00, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6D, - 0x65, 0x00, 0x55, 0x54, 0x43, 0x00, 0x41, 0x72, 0x72, 0x61, 0x79, 0x00, 0x70, 0x75, 0x73, 0x68, - 0x2C, 0x70, 0x6F, 0x70, 0x2C, 0x63, 0x6F, 0x6E, 0x63, 0x61, 0x74, 0x2C, 0x73, 0x68, 0x69, 0x66, - 0x74, 0x2C, 0x75, 0x6E, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2C, 0x73, 0x6C, 0x69, 0x63, 0x65, 0x2C, - 0x6A, 0x6F, 0x69, 0x6E, 0x2C, 0x73, 0x70, 0x6C, 0x69, 0x63, 0x65, 0x2C, 0x74, 0x6F, 0x53, 0x74, - 0x72, 0x69, 0x6E, 0x67, 0x2C, 0x73, 0x6F, 0x72, 0x74, 0x2C, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, - 0x65, 0x2C, 0x73, 0x6F, 0x72, 0x74, 0x4F, 0x6E, 0x00, 0x43, 0x41, 0x53, 0x45, 0x49, 0x4E, 0x53, - 0x45, 0x4E, 0x53, 0x49, 0x54, 0x49, 0x56, 0x45, 0x00, 0x44, 0x45, 0x53, 0x43, 0x45, 0x4E, 0x44, - 0x49, 0x4E, 0x47, 0x00, 0x55, 0x4E, 0x49, 0x51, 0x55, 0x45, 0x53, 0x4F, 0x52, 0x54, 0x00, 0x52, - 0x45, 0x54, 0x55, 0x52, 0x4E, 0x49, 0x4E, 0x44, 0x45, 0x58, 0x45, 0x44, 0x41, 0x52, 0x52, 0x41, - 0x59, 0x00, 0x4E, 0x55, 0x4D, 0x45, 0x52, 0x49, 0x43, 0x00, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, - 0x00, 0x75, 0x6E, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, - 0x6E, 0x74, 0x00, 0x69, 0x73, 0x4E, 0x61, 0x4E, 0x00, 0x69, 0x73, 0x46, 0x69, 0x6E, 0x69, 0x74, - 0x65, 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, 0x09, 0x00, 0x08, 0x05, 0x07, 0x65, 0x00, 0x00, 0x00, 0x08, 0x03, 0x1C, 0x96, - 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, - 0x17, 0x96, 0x02, 0x00, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, - 0x08, 0x06, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x96, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x52, 0x3E, 0x4F, 0x96, 0x08, 0x00, - 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, - 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x07, - 0x00, 0x00, 0x00, 0x02, 0x08, 0x03, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, - 0x09, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x0A, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, 0x6B, 0x00, - 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x3D, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x0C, - 0x07, 0x6B, 0x00, 0x00, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, - 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, - 0x00, 0x00, 0x02, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, - 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x0D, 0x07, 0x02, 0x00, - 0x00, 0x00, 0x07, 0x6A, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x3D, 0x1D, - 0x96, 0x09, 0x00, 0x08, 0x0C, 0x07, 0x6A, 0x00, 0x00, 0x00, 0x08, 0x0D, 0x1C, 0x96, 0x02, 0x00, - 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, - 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x0D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, - 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x96, 0x02, 0x00, - 0x08, 0x0D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x0E, 0x08, 0x0E, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, - 0x0D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x0F, 0x08, 0x10, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0D, - 0x1C, 0x96, 0x04, 0x00, 0x08, 0x11, 0x08, 0x10, 0x1C, 0x96, 0x05, 0x00, 0x07, 0xFF, 0xFF, 0xFF, - 0xFF, 0x0C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x12, 0x07, 0x00, - 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x1C, 0x96, 0x0B, 0x00, 0x08, 0x13, 0x06, - 0xFF, 0xFF, 0xEF, 0x7F, 0xE2, 0xFF, 0xFF, 0xFF, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, - 0x00, 0x02, 0x08, 0x0D, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, - 0x17, 0x96, 0x13, 0x00, 0x08, 0x14, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFB, 0x00, 0x00, 0x00, - 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x3D, 0x1D, 0x96, 0x0E, 0x00, 0x07, 0x01, 0x00, 0x00, - 0x00, 0x08, 0x15, 0x07, 0xFB, 0x00, 0x00, 0x00, 0x08, 0x14, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, - 0x4E, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, - 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x14, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, - 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x14, - 0x1C, 0x96, 0x13, 0x00, 0x08, 0x16, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x07, 0xFB, 0x00, 0x00, 0x00, - 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x02, 0x08, 0x14, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, - 0x17, 0x96, 0x5F, 0x00, 0x08, 0x17, 0x08, 0x18, 0x06, 0x0A, 0xBF, 0x05, 0x40, 0x74, 0x57, 0x14, - 0x8B, 0x08, 0x19, 0x06, 0xB1, 0x6B, 0x02, 0x40, 0x1F, 0x55, 0xB5, 0xBB, 0x08, 0x1A, 0x06, 0x42, - 0x2E, 0xE6, 0x3F, 0xEC, 0x39, 0xFA, 0xFE, 0x08, 0x1B, 0x06, 0x7B, 0xCB, 0xDB, 0x3F, 0x11, 0xE5, - 0x26, 0x15, 0x08, 0x1C, 0x06, 0x47, 0x15, 0xF7, 0x3F, 0xEF, 0x82, 0x2B, 0x65, 0x08, 0x1D, 0x06, - 0xFB, 0x21, 0x09, 0x40, 0x11, 0x2D, 0x44, 0x54, 0x08, 0x1E, 0x06, 0x9E, 0xA0, 0xE6, 0x3F, 0xD1, - 0x3B, 0x7F, 0x66, 0x08, 0x1F, 0x06, 0x9E, 0xA0, 0xF6, 0x3F, 0xE3, 0x3B, 0x7F, 0x66, 0x07, 0x08, - 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x20, 0x07, 0xC8, 0x00, 0x00, 0x00, 0x08, - 0x17, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, - 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x17, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, - 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x21, 0x07, 0x00, 0x01, 0x00, 0x00, - 0x07, 0x67, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x3D, 0x1D, 0x96, 0x09, - 0x00, 0x08, 0x22, 0x07, 0x67, 0x00, 0x00, 0x00, 0x08, 0x21, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, - 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x0E, 0x00, - 0x07, 0x80, 0x00, 0x00, 0x00, 0x08, 0x23, 0x07, 0x67, 0x00, 0x00, 0x00, 0x08, 0x21, 0x1C, 0x96, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6F, 0x72, 0x00, 0x46, 0x75, + 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, + 0x00, 0x36, 0x63, 0x61, 0x6C, 0x6C, 0x2C, 0x36, 0x61, 0x70, 0x70, 0x6C, 0x79, 0x00, 0x6F, 0x00, + 0x41, 0x53, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6F, 0x70, 0x46, 0x6C, 0x61, 0x67, 0x73, 0x00, 0x4F, + 0x62, 0x6A, 0x65, 0x63, 0x74, 0x00, 0x36, 0x77, 0x61, 0x74, 0x63, 0x68, 0x2C, 0x36, 0x75, 0x6E, + 0x77, 0x61, 0x74, 0x63, 0x68, 0x2C, 0x36, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6F, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x2C, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x4F, 0x66, 0x2C, 0x74, 0x6F, 0x53, 0x74, 0x72, + 0x69, 0x6E, 0x67, 0x2C, 0x36, 0x68, 0x61, 0x73, 0x4F, 0x77, 0x6E, 0x50, 0x72, 0x6F, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x2C, 0x36, 0x69, 0x73, 0x50, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, + 0x4F, 0x66, 0x2C, 0x36, 0x69, 0x73, 0x50, 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6E, + 0x75, 0x6D, 0x65, 0x72, 0x61, 0x62, 0x6C, 0x65, 0x00, 0x74, 0x6F, 0x4C, 0x6F, 0x63, 0x61, 0x6C, + 0x65, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x74, 0x68, 0x69, 0x73, 0x00, 0x74, 0x6F, 0x53, + 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x42, 0x6F, 0x6F, 0x6C, 0x65, 0x61, 0x6E, 0x00, 0x41, 0x53, + 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6F, 0x72, 0x00, 0x76, 0x61, 0x6C, 0x75, + 0x65, 0x4F, 0x66, 0x2C, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x4E, 0x75, 0x6D, + 0x62, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x4E, 0x00, 0x50, 0x4F, 0x53, 0x49, 0x54, 0x49, 0x56, 0x45, + 0x5F, 0x49, 0x4E, 0x46, 0x49, 0x4E, 0x49, 0x54, 0x59, 0x00, 0x49, 0x6E, 0x66, 0x69, 0x6E, 0x69, + 0x74, 0x79, 0x00, 0x4E, 0x45, 0x47, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5F, 0x49, 0x4E, 0x46, 0x49, + 0x4E, 0x49, 0x54, 0x59, 0x00, 0x4D, 0x49, 0x4E, 0x5F, 0x56, 0x41, 0x4C, 0x55, 0x45, 0x00, 0x4D, + 0x41, 0x58, 0x5F, 0x56, 0x41, 0x4C, 0x55, 0x45, 0x00, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, + 0x76, 0x61, 0x6C, 0x75, 0x65, 0x4F, 0x66, 0x2C, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, + 0x2C, 0x74, 0x6F, 0x55, 0x70, 0x70, 0x65, 0x72, 0x43, 0x61, 0x73, 0x65, 0x2C, 0x74, 0x6F, 0x4C, + 0x6F, 0x77, 0x65, 0x72, 0x43, 0x61, 0x73, 0x65, 0x2C, 0x63, 0x68, 0x61, 0x72, 0x41, 0x74, 0x2C, + 0x63, 0x68, 0x61, 0x72, 0x43, 0x6F, 0x64, 0x65, 0x41, 0x74, 0x2C, 0x63, 0x6F, 0x6E, 0x63, 0x61, + 0x74, 0x2C, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x4F, 0x66, 0x2C, 0x6C, 0x61, 0x73, 0x74, 0x49, 0x6E, + 0x64, 0x65, 0x78, 0x4F, 0x66, 0x2C, 0x73, 0x6C, 0x69, 0x63, 0x65, 0x2C, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x69, 0x6E, 0x67, 0x2C, 0x73, 0x70, 0x6C, 0x69, 0x74, 0x2C, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x00, 0x66, 0x72, 0x6F, 0x6D, 0x43, 0x68, 0x61, 0x72, 0x43, 0x6F, 0x64, 0x65, 0x00, + 0x4D, 0x61, 0x74, 0x68, 0x00, 0x45, 0x00, 0x4C, 0x4E, 0x31, 0x30, 0x00, 0x4C, 0x4E, 0x32, 0x00, + 0x4C, 0x4F, 0x47, 0x31, 0x30, 0x45, 0x00, 0x4C, 0x4F, 0x47, 0x32, 0x45, 0x00, 0x50, 0x49, 0x00, + 0x53, 0x51, 0x52, 0x54, 0x31, 0x5F, 0x32, 0x00, 0x53, 0x51, 0x52, 0x54, 0x32, 0x00, 0x61, 0x62, + 0x73, 0x2C, 0x6D, 0x69, 0x6E, 0x2C, 0x6D, 0x61, 0x78, 0x2C, 0x73, 0x69, 0x6E, 0x2C, 0x63, 0x6F, + 0x73, 0x2C, 0x61, 0x74, 0x61, 0x6E, 0x32, 0x2C, 0x74, 0x61, 0x6E, 0x2C, 0x65, 0x78, 0x70, 0x2C, + 0x6C, 0x6F, 0x67, 0x2C, 0x73, 0x71, 0x72, 0x74, 0x2C, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2C, 0x72, + 0x61, 0x6E, 0x64, 0x6F, 0x6D, 0x2C, 0x66, 0x6C, 0x6F, 0x6F, 0x72, 0x2C, 0x63, 0x65, 0x69, 0x6C, + 0x2C, 0x61, 0x74, 0x61, 0x6E, 0x2C, 0x61, 0x73, 0x69, 0x6E, 0x2C, 0x61, 0x63, 0x6F, 0x73, 0x2C, + 0x70, 0x6F, 0x77, 0x00, 0x44, 0x61, 0x74, 0x65, 0x00, 0x67, 0x65, 0x74, 0x46, 0x75, 0x6C, 0x6C, + 0x59, 0x65, 0x61, 0x72, 0x2C, 0x67, 0x65, 0x74, 0x59, 0x65, 0x61, 0x72, 0x2C, 0x67, 0x65, 0x74, + 0x4D, 0x6F, 0x6E, 0x74, 0x68, 0x2C, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, 0x2C, 0x67, 0x65, + 0x74, 0x44, 0x61, 0x79, 0x2C, 0x67, 0x65, 0x74, 0x48, 0x6F, 0x75, 0x72, 0x73, 0x2C, 0x67, 0x65, + 0x74, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x53, 0x65, 0x63, 0x6F, + 0x6E, 0x64, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x65, 0x63, 0x6F, + 0x6E, 0x64, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x46, 0x75, 0x6C, 0x6C, 0x59, 0x65, 0x61, 0x72, 0x2C, + 0x73, 0x65, 0x74, 0x4D, 0x6F, 0x6E, 0x74, 0x68, 0x2C, 0x73, 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, + 0x2C, 0x73, 0x65, 0x74, 0x48, 0x6F, 0x75, 0x72, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x4D, 0x69, 0x6E, + 0x75, 0x74, 0x65, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, + 0x73, 0x65, 0x74, 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, + 0x67, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x2C, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x2C, + 0x67, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x7A, 0x6F, 0x6E, 0x65, 0x4F, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x2C, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x2C, 0x73, 0x65, 0x74, 0x59, 0x65, + 0x61, 0x72, 0x00, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x46, 0x75, 0x6C, 0x6C, 0x59, 0x65, 0x61, + 0x72, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x59, 0x65, 0x61, 0x72, 0x2C, 0x67, 0x65, 0x74, + 0x55, 0x54, 0x43, 0x4D, 0x6F, 0x6E, 0x74, 0x68, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x44, + 0x61, 0x74, 0x65, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x44, 0x61, 0x79, 0x2C, 0x67, 0x65, + 0x74, 0x55, 0x54, 0x43, 0x48, 0x6F, 0x75, 0x72, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, + 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x53, 0x65, + 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x69, 0x6C, 0x6C, + 0x69, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x46, + 0x75, 0x6C, 0x6C, 0x59, 0x65, 0x61, 0x72, 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x6F, + 0x6E, 0x74, 0x68, 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x44, 0x61, 0x74, 0x65, 0x2C, 0x73, + 0x65, 0x74, 0x55, 0x54, 0x43, 0x48, 0x6F, 0x75, 0x72, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, + 0x43, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x53, + 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x69, 0x6C, + 0x6C, 0x69, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x00, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x4F, + 0x66, 0x00, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x00, 0x55, 0x54, 0x43, 0x00, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x00, 0x70, 0x75, 0x73, 0x68, 0x2C, 0x70, 0x6F, 0x70, 0x2C, 0x63, 0x6F, 0x6E, + 0x63, 0x61, 0x74, 0x2C, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2C, 0x75, 0x6E, 0x73, 0x68, 0x69, 0x66, + 0x74, 0x2C, 0x73, 0x6C, 0x69, 0x63, 0x65, 0x2C, 0x6A, 0x6F, 0x69, 0x6E, 0x2C, 0x73, 0x70, 0x6C, + 0x69, 0x63, 0x65, 0x2C, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x2C, 0x73, 0x6F, 0x72, + 0x74, 0x2C, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x2C, 0x73, 0x6F, 0x72, 0x74, 0x4F, 0x6E, + 0x00, 0x43, 0x41, 0x53, 0x45, 0x49, 0x4E, 0x53, 0x45, 0x4E, 0x53, 0x49, 0x54, 0x49, 0x56, 0x45, + 0x00, 0x44, 0x45, 0x53, 0x43, 0x45, 0x4E, 0x44, 0x49, 0x4E, 0x47, 0x00, 0x55, 0x4E, 0x49, 0x51, + 0x55, 0x45, 0x53, 0x4F, 0x52, 0x54, 0x00, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4E, 0x49, 0x4E, 0x44, + 0x45, 0x58, 0x45, 0x44, 0x41, 0x52, 0x52, 0x41, 0x59, 0x00, 0x4E, 0x55, 0x4D, 0x45, 0x52, 0x49, + 0x43, 0x00, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x00, 0x75, 0x6E, 0x65, 0x73, 0x63, 0x61, 0x70, + 0x65, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, 0x6E, 0x74, 0x00, 0x69, 0x73, 0x4E, 0x61, 0x4E, + 0x00, 0x69, 0x73, 0x46, 0x69, 0x6E, 0x69, 0x74, 0x65, 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, 0x0E, 0x00, 0x07, 0x0A, 0x00, + 0x00, 0x00, 0x08, 0x05, 0x07, 0x65, 0x00, 0x00, 0x00, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, + 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, + 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x06, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, + 0x00, 0x00, 0x08, 0x07, 0x3D, 0x17, 0x96, 0x09, 0x00, 0x08, 0x09, 0x07, 0x65, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x08, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, + 0x4E, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x96, 0x07, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x52, 0x3E, + 0x4F, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x08, 0x1C, 0x96, 0x02, 0x00, + 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x07, 0x3D, 0x17, 0x96, + 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x08, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, + 0x00, 0x00, 0x00, 0x08, 0x07, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x0D, 0x07, 0x02, 0x00, 0x00, + 0x00, 0x07, 0x6B, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0E, 0x3D, 0x1D, 0x96, + 0x09, 0x00, 0x08, 0x0F, 0x07, 0x6B, 0x00, 0x00, 0x00, 0x08, 0x0D, 0x1C, 0x96, 0x02, 0x00, 0x08, + 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, + 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x0D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, + 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x07, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, + 0x10, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, 0x6A, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, + 0x08, 0x0E, 0x3D, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x0F, 0x07, 0x6A, 0x00, 0x00, 0x00, 0x08, 0x10, + 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x10, 0x1C, 0x96, + 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x07, 0x3D, + 0x17, 0x96, 0x02, 0x00, 0x08, 0x10, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x11, 0x08, 0x11, 0x1C, 0x4F, + 0x96, 0x02, 0x00, 0x08, 0x10, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x12, 0x08, 0x13, 0x1C, 0x4F, 0x96, + 0x02, 0x00, 0x08, 0x10, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x14, 0x08, 0x13, 0x1C, 0x96, 0x05, 0x00, + 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x0C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x10, 0x1C, 0x96, 0x07, 0x00, + 0x08, 0x15, 0x07, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x10, 0x1C, 0x96, 0x0B, + 0x00, 0x08, 0x16, 0x06, 0xFF, 0xFF, 0xEF, 0x7F, 0xE2, 0xFF, 0xFF, 0xFF, 0x4F, 0x96, 0x08, 0x00, + 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x10, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x08, 0x07, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x17, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, + 0xFB, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0E, 0x3D, 0x1D, 0x96, 0x0E, 0x00, + 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x18, 0x07, 0xFB, 0x00, 0x00, 0x00, 0x08, 0x17, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, - 0x17, 0x96, 0x02, 0x00, 0x08, 0x21, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, - 0x08, 0x24, 0x08, 0x21, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x25, - 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x21, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x26, 0x07, 0x01, 0x01, - 0x00, 0x00, 0x07, 0x67, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, - 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x21, 0x1C, 0x96, 0x02, 0x00, 0x08, - 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x96, 0x08, - 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x21, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, - 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x27, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x07, 0xFC, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x3D, 0x1D, 0x96, 0x0E, - 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x28, 0x07, 0xFC, 0x00, 0x00, 0x00, 0x08, 0x27, 0x1C, - 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x27, 0x1C, 0x96, 0x02, - 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, - 0x96, 0x02, 0x00, 0x08, 0x27, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x29, 0x07, 0x01, 0x00, 0x00, 0x00, - 0x4F, 0x96, 0x02, 0x00, 0x08, 0x27, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x2A, 0x07, 0x02, 0x00, 0x00, - 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x27, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x2B, 0x07, 0x04, 0x00, - 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x27, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x2C, 0x07, 0x08, - 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x27, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x2D, 0x07, - 0x10, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x13, 0x00, 0x08, 0x2E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, - 0x64, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, - 0x08, 0x2F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x64, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, - 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x30, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, - 0x64, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, - 0x08, 0x31, 0x07, 0x12, 0x00, 0x00, 0x00, 0x07, 0xC8, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, - 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x32, 0x07, 0x13, 0x00, 0x00, 0x00, 0x07, - 0xC8, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x0D, 0x00, - 0x07, 0x06, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x02, 0x08, 0x07, 0x1C, 0x96, 0x07, - 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x00 + 0x17, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x17, 0x1C, 0x96, 0x02, 0x00, + 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x07, 0x3D, 0x17, 0x96, + 0x02, 0x00, 0x08, 0x17, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x19, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x07, + 0xFB, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x08, 0x00, + 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x17, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x08, 0x07, 0x3D, 0x17, 0x96, 0x5F, 0x00, 0x08, 0x1A, 0x08, 0x1B, 0x06, 0x0A, 0xBF, 0x05, + 0x40, 0x74, 0x57, 0x14, 0x8B, 0x08, 0x1C, 0x06, 0xB1, 0x6B, 0x02, 0x40, 0x1F, 0x55, 0xB5, 0xBB, + 0x08, 0x1D, 0x06, 0x42, 0x2E, 0xE6, 0x3F, 0xEC, 0x39, 0xFA, 0xFE, 0x08, 0x1E, 0x06, 0x7B, 0xCB, + 0xDB, 0x3F, 0x11, 0xE5, 0x26, 0x15, 0x08, 0x1F, 0x06, 0x47, 0x15, 0xF7, 0x3F, 0xEF, 0x82, 0x2B, + 0x65, 0x08, 0x20, 0x06, 0xFB, 0x21, 0x09, 0x40, 0x11, 0x2D, 0x44, 0x54, 0x08, 0x21, 0x06, 0x9E, + 0xA0, 0xE6, 0x3F, 0xD1, 0x3B, 0x7F, 0x66, 0x08, 0x22, 0x06, 0x9E, 0xA0, 0xF6, 0x3F, 0xE3, 0x3B, + 0x7F, 0x66, 0x07, 0x08, 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x23, 0x07, 0xC8, + 0x00, 0x00, 0x00, 0x08, 0x1A, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x1A, 0x1C, 0x96, 0x07, + 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x07, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x24, 0x07, + 0x00, 0x01, 0x00, 0x00, 0x07, 0x67, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0E, + 0x3D, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x25, 0x07, 0x67, 0x00, 0x00, 0x00, 0x08, 0x24, 0x1C, 0x96, + 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, + 0x17, 0x96, 0x0E, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x08, 0x26, 0x07, 0x67, 0x00, 0x00, 0x00, + 0x08, 0x24, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x24, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, + 0x4E, 0x96, 0x04, 0x00, 0x08, 0x27, 0x08, 0x24, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, + 0x02, 0x00, 0x08, 0x28, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x24, 0x1C, 0x96, 0x13, 0x00, 0x08, + 0x29, 0x07, 0x01, 0x01, 0x00, 0x00, 0x07, 0x67, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, + 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x24, 0x1C, + 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x07, + 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x24, 0x1C, 0x96, 0x07, + 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x07, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x2A, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0E, + 0x3D, 0x1D, 0x96, 0x0E, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x2B, 0x07, 0xFC, 0x00, 0x00, + 0x00, 0x08, 0x2A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, + 0x2A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, + 0x08, 0x07, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x2A, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x2C, 0x07, + 0x01, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2A, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x2D, + 0x07, 0x02, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2A, 0x1C, 0x96, 0x07, 0x00, 0x08, + 0x2E, 0x07, 0x04, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2A, 0x1C, 0x96, 0x07, 0x00, + 0x08, 0x2F, 0x07, 0x08, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2A, 0x1C, 0x96, 0x07, + 0x00, 0x08, 0x30, 0x07, 0x10, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x13, 0x00, 0x08, 0x31, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x64, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, + 0x1D, 0x96, 0x13, 0x00, 0x08, 0x32, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x64, 0x00, 0x00, 0x00, + 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x33, 0x07, 0x02, + 0x00, 0x00, 0x00, 0x07, 0x64, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, + 0x1D, 0x96, 0x13, 0x00, 0x08, 0x34, 0x07, 0x12, 0x00, 0x00, 0x00, 0x07, 0xC8, 0x00, 0x00, 0x00, + 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x35, 0x07, 0x13, + 0x00, 0x00, 0x00, 0x07, 0xC8, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, + 0x1D, 0x96, 0x0D, 0x00, 0x07, 0x06, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x02, 0x08, + 0x0B, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x07, 0x3D, 0x17, 0x00 }; diff-tree 421999f93c864a84497d9a37496c3788c966cadb (from 1e1deb870ea4ab1608bf0f30db8cdd321cc517bd) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Wed Sep 12 21:59:20 2007 +0300 Add a test for assetnative's prefixes diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 967e505..fb81cde 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -161,6 +161,13 @@ EXTRA_DIST = \ asnative-create-7.swf.trace \ asnative-create-8.swf \ asnative-create-8.swf.trace \ + assetnative.as \ + assetnative-5.swf \ + assetnative-5.swf.trace \ + assetnative-6.swf \ + assetnative-6.swf.trace \ + assetnative-7.swf \ + assetnative-7.swf.trace \ ASSetPropFlags-extended.as \ ASSetPropFlags-extended-5.swf \ ASSetPropFlags-extended-5.swf.trace \ diff --git a/test/trace/assetnative-5.swf b/test/trace/assetnative-5.swf new file mode 100644 index 0000000..b4f87d4 Binary files /dev/null and b/test/trace/assetnative-5.swf differ diff --git a/test/trace/assetnative-5.swf.trace b/test/trace/assetnative-5.swf.trace new file mode 100644 index 0000000..1a6fe5e --- /dev/null +++ b/test/trace/assetnative-5.swf.trace @@ -0,0 +1,28 @@ +local.o = object + 0a = function + constructor (hp) = _global.Object.constructor + 10k = function + constructor (hp) = _global.Object.constructor + 11l = function + constructor (hp) = _global.Object.constructor + 1b = function + constructor (hp) = _global.Object.constructor + 2c = function + constructor (hp) = _global.Object.constructor + 3d = function + constructor (hp) = _global.Object.constructor + 4e = function + constructor (hp) = _global.Object.constructor + 5f = function + constructor (hp) = _global.Object.constructor + 9j = function + constructor (hp) = _global.Object.constructor + __constructor__ (hn) = _global.Object + __proto__ (hp) = _global.Object.prototype + constructor (h) = _global.Object + g (n) = function + constructor (hp) = _global.Object.constructor + h (n) = function + constructor (hp) = _global.Object.constructor + i (n) = function + constructor (hp) = _global.Object.constructor diff --git a/test/trace/assetnative-6.swf b/test/trace/assetnative-6.swf new file mode 100644 index 0000000..74ab4b3 Binary files /dev/null and b/test/trace/assetnative-6.swf differ diff --git a/test/trace/assetnative-6.swf.trace b/test/trace/assetnative-6.swf.trace new file mode 100644 index 0000000..5b3ae70 --- /dev/null +++ b/test/trace/assetnative-6.swf.trace @@ -0,0 +1,40 @@ +local.o = object + 0a = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 10k = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 11l = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 1b = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 2c = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 3d = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 4e = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 5f = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 9j = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + __constructor__ (h) = _global.Object + __proto__ (hp) = _global.Object.prototype + constructor (h) = _global.Object + g = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + h (n) = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + i (n) = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function diff --git a/test/trace/assetnative-7.swf b/test/trace/assetnative-7.swf new file mode 100644 index 0000000..472722a Binary files /dev/null and b/test/trace/assetnative-7.swf differ diff --git a/test/trace/assetnative-7.swf.trace b/test/trace/assetnative-7.swf.trace new file mode 100644 index 0000000..22939f2 --- /dev/null +++ b/test/trace/assetnative-7.swf.trace @@ -0,0 +1,39 @@ +local.o = object + 0a = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 10k = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 11l = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 1b = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 2c = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 3d = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 4e = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 5f = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + 9j = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + __constructor__ (h) = _global.Object + __proto__ (hp) = _global.Object.prototype + g = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + h = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function + i (n) = function + __proto__ (hp) = _global.Function.prototype + constructor (hp) = _global.Function diff --git a/test/trace/assetnative.as b/test/trace/assetnative.as new file mode 100644 index 0000000..80a9fc4 --- /dev/null +++ b/test/trace/assetnative.as @@ -0,0 +1,17 @@ +// makeswf -v 7 -r 1 -o assetnative-7.swf assetnative.as + +#include "trace_properties.as" + +var o = new Object (); +var empty = new Object (); +ASSetPropFlags (empty, null, 0, 7); +for (var prop in empty) { + empty[prop] = "to-be-deleted"; + delete empty[prop]; +} + +ASSetNative (o, 103, "0a,1b,2c,3d,4e,5f,6g,7h,8i,9j,10k,11l"); + +trace_properties (o, "local", "o"); + +loadMovie ("FSCommand:quit", ""); diff-tree 1e1deb870ea4ab1608bf0f30db8cdd321cc517bd (from baa87dfb79b344b02bf296b9a245a5fd994e4bad) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Wed Sep 12 21:57:27 2007 +0300 Fix typo in ASSetNative's prefix parsing that made 7 prefix act like 6 diff --git a/libswfdec/swfdec_player_as.c b/libswfdec/swfdec_player_as.c index 790655e..de7d507 100644 --- a/libswfdec/swfdec_player_as.c +++ b/libswfdec/swfdec_player_as.c @@ -192,7 +192,7 @@ ASSetNative (SwfdecAsContext *cx, Swfdec flags |= SWFDEC_AS_VARIABLE_VERSION_6_UP; s++; } else if (s[0] == '7') { - flags |= SWFDEC_AS_VARIABLE_VERSION_6_UP; + flags |= SWFDEC_AS_VARIABLE_VERSION_7_UP; s++; } else if (s[0] == '8') { flags |= SWFDEC_AS_VARIABLE_VERSION_8_UP; diff-tree baa87dfb79b344b02bf296b9a245a5fd994e4bad (from c8aa28f218da7807757b58226325fa1c26ed0bf7) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Wed Sep 12 21:52:38 2007 +0300 Initialize Object's method in swfdec_as_initialize.as diff --git a/libswfdec/swfdec_as_initialize.as b/libswfdec/swfdec_as_initialize.as index bf283c5..d5321df 100644 --- a/libswfdec/swfdec_as_initialize.as +++ b/libswfdec/swfdec_as_initialize.as @@ -24,6 +24,7 @@ ASSetNativeAccessor = ASnative (4, 1); /*** BASE OBJECTS ***/ +ASSetNative(Object.prototype, 101, "6watch,6unwatch,6addProperty,valueOf,toString,6hasOwnProperty,6isPrototypeOf,6isPropertyEnumerable"); Object.prototype.toLocaleString = function () { return this.toString (); }; diff --git a/libswfdec/swfdec_as_initialize.h b/libswfdec/swfdec_as_initialize.h index 2a752dc..82b1a36 100644 --- a/libswfdec/swfdec_as_initialize.h +++ b/libswfdec/swfdec_as_initialize.h @@ -2,155 +2,163 @@ /* compiled from swfdec_as_initialize.as */ const unsigned char swfdec_as_initialize[] = { - 0x88, 0x6C, 0x04, 0x32, 0x00, 0x41, 0x53, 0x53, 0x65, 0x74, 0x4E, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x88, 0xCF, 0x04, 0x33, 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, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x74, - 0x6F, 0x4C, 0x6F, 0x63, 0x61, 0x6C, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x74, 0x68, - 0x69, 0x73, 0x00, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x41, 0x53, 0x53, 0x65, - 0x74, 0x50, 0x72, 0x6F, 0x70, 0x46, 0x6C, 0x61, 0x67, 0x73, 0x00, 0x42, 0x6F, 0x6F, 0x6C, 0x65, - 0x61, 0x6E, 0x00, 0x41, 0x53, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6F, 0x72, - 0x00, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x4F, 0x66, 0x2C, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, - 0x67, 0x00, 0x4E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x4E, 0x00, 0x50, 0x4F, 0x53, - 0x49, 0x54, 0x49, 0x56, 0x45, 0x5F, 0x49, 0x4E, 0x46, 0x49, 0x4E, 0x49, 0x54, 0x59, 0x00, 0x49, - 0x6E, 0x66, 0x69, 0x6E, 0x69, 0x74, 0x79, 0x00, 0x4E, 0x45, 0x47, 0x41, 0x54, 0x49, 0x56, 0x45, - 0x5F, 0x49, 0x4E, 0x46, 0x49, 0x4E, 0x49, 0x54, 0x59, 0x00, 0x4D, 0x49, 0x4E, 0x5F, 0x56, 0x41, - 0x4C, 0x55, 0x45, 0x00, 0x4D, 0x41, 0x58, 0x5F, 0x56, 0x41, 0x4C, 0x55, 0x45, 0x00, 0x53, 0x74, - 0x72, 0x69, 0x6E, 0x67, 0x00, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x4F, 0x66, 0x2C, 0x74, 0x6F, 0x53, - 0x74, 0x72, 0x69, 0x6E, 0x67, 0x2C, 0x74, 0x6F, 0x55, 0x70, 0x70, 0x65, 0x72, 0x43, 0x61, 0x73, - 0x65, 0x2C, 0x74, 0x6F, 0x4C, 0x6F, 0x77, 0x65, 0x72, 0x43, 0x61, 0x73, 0x65, 0x2C, 0x63, 0x68, - 0x61, 0x72, 0x41, 0x74, 0x2C, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6F, 0x64, 0x65, 0x41, 0x74, 0x2C, - 0x63, 0x6F, 0x6E, 0x63, 0x61, 0x74, 0x2C, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x4F, 0x66, 0x2C, 0x6C, - 0x61, 0x73, 0x74, 0x49, 0x6E, 0x64, 0x65, 0x78, 0x4F, 0x66, 0x2C, 0x73, 0x6C, 0x69, 0x63, 0x65, - 0x2C, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x2C, 0x73, 0x70, 0x6C, 0x69, 0x74, - 0x2C, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x00, 0x66, 0x72, 0x6F, 0x6D, 0x43, 0x68, 0x61, 0x72, - 0x43, 0x6F, 0x64, 0x65, 0x00, 0x4D, 0x61, 0x74, 0x68, 0x00, 0x45, 0x00, 0x4C, 0x4E, 0x31, 0x30, - 0x00, 0x4C, 0x4E, 0x32, 0x00, 0x4C, 0x4F, 0x47, 0x31, 0x30, 0x45, 0x00, 0x4C, 0x4F, 0x47, 0x32, - 0x45, 0x00, 0x50, 0x49, 0x00, 0x53, 0x51, 0x52, 0x54, 0x31, 0x5F, 0x32, 0x00, 0x53, 0x51, 0x52, - 0x54, 0x32, 0x00, 0x61, 0x62, 0x73, 0x2C, 0x6D, 0x69, 0x6E, 0x2C, 0x6D, 0x61, 0x78, 0x2C, 0x73, - 0x69, 0x6E, 0x2C, 0x63, 0x6F, 0x73, 0x2C, 0x61, 0x74, 0x61, 0x6E, 0x32, 0x2C, 0x74, 0x61, 0x6E, - 0x2C, 0x65, 0x78, 0x70, 0x2C, 0x6C, 0x6F, 0x67, 0x2C, 0x73, 0x71, 0x72, 0x74, 0x2C, 0x72, 0x6F, - 0x75, 0x6E, 0x64, 0x2C, 0x72, 0x61, 0x6E, 0x64, 0x6F, 0x6D, 0x2C, 0x66, 0x6C, 0x6F, 0x6F, 0x72, - 0x2C, 0x63, 0x65, 0x69, 0x6C, 0x2C, 0x61, 0x74, 0x61, 0x6E, 0x2C, 0x61, 0x73, 0x69, 0x6E, 0x2C, - 0x61, 0x63, 0x6F, 0x73, 0x2C, 0x70, 0x6F, 0x77, 0x00, 0x44, 0x61, 0x74, 0x65, 0x00, 0x67, 0x65, - 0x74, 0x46, 0x75, 0x6C, 0x6C, 0x59, 0x65, 0x61, 0x72, 0x2C, 0x67, 0x65, 0x74, 0x59, 0x65, 0x61, - 0x72, 0x2C, 0x67, 0x65, 0x74, 0x4D, 0x6F, 0x6E, 0x74, 0x68, 0x2C, 0x67, 0x65, 0x74, 0x44, 0x61, - 0x74, 0x65, 0x2C, 0x67, 0x65, 0x74, 0x44, 0x61, 0x79, 0x2C, 0x67, 0x65, 0x74, 0x48, 0x6F, 0x75, - 0x72, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, 0x2C, 0x67, 0x65, - 0x74, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x4D, 0x69, 0x6C, 0x6C, - 0x69, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x46, 0x75, 0x6C, 0x6C, - 0x59, 0x65, 0x61, 0x72, 0x2C, 0x73, 0x65, 0x74, 0x4D, 0x6F, 0x6E, 0x74, 0x68, 0x2C, 0x73, 0x65, - 0x74, 0x44, 0x61, 0x74, 0x65, 0x2C, 0x73, 0x65, 0x74, 0x48, 0x6F, 0x75, 0x72, 0x73, 0x2C, 0x73, - 0x65, 0x74, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x53, 0x65, 0x63, - 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x65, 0x63, - 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x2C, 0x73, 0x65, 0x74, - 0x54, 0x69, 0x6D, 0x65, 0x2C, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x7A, 0x6F, 0x6E, 0x65, - 0x4F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2C, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x2C, - 0x73, 0x65, 0x74, 0x59, 0x65, 0x61, 0x72, 0x00, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x46, 0x75, - 0x6C, 0x6C, 0x59, 0x65, 0x61, 0x72, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x59, 0x65, 0x61, - 0x72, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x6F, 0x6E, 0x74, 0x68, 0x2C, 0x67, 0x65, - 0x74, 0x55, 0x54, 0x43, 0x44, 0x61, 0x74, 0x65, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x44, - 0x61, 0x79, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x48, 0x6F, 0x75, 0x72, 0x73, 0x2C, 0x67, - 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, 0x2C, 0x67, 0x65, 0x74, - 0x55, 0x54, 0x43, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, - 0x43, 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x73, 0x65, - 0x74, 0x55, 0x54, 0x43, 0x46, 0x75, 0x6C, 0x6C, 0x59, 0x65, 0x61, 0x72, 0x2C, 0x73, 0x65, 0x74, - 0x55, 0x54, 0x43, 0x4D, 0x6F, 0x6E, 0x74, 0x68, 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x44, - 0x61, 0x74, 0x65, 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x48, 0x6F, 0x75, 0x72, 0x73, 0x2C, - 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, 0x2C, 0x73, 0x65, - 0x74, 0x55, 0x54, 0x43, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x55, - 0x54, 0x43, 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x00, 0x76, - 0x61, 0x6C, 0x75, 0x65, 0x4F, 0x66, 0x00, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x00, 0x55, - 0x54, 0x43, 0x00, 0x41, 0x72, 0x72, 0x61, 0x79, 0x00, 0x70, 0x75, 0x73, 0x68, 0x2C, 0x70, 0x6F, - 0x70, 0x2C, 0x63, 0x6F, 0x6E, 0x63, 0x61, 0x74, 0x2C, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2C, 0x75, - 0x6E, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2C, 0x73, 0x6C, 0x69, 0x63, 0x65, 0x2C, 0x6A, 0x6F, 0x69, - 0x6E, 0x2C, 0x73, 0x70, 0x6C, 0x69, 0x63, 0x65, 0x2C, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, - 0x67, 0x2C, 0x73, 0x6F, 0x72, 0x74, 0x2C, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x2C, 0x73, - 0x6F, 0x72, 0x74, 0x4F, 0x6E, 0x00, 0x43, 0x41, 0x53, 0x45, 0x49, 0x4E, 0x53, 0x45, 0x4E, 0x53, - 0x49, 0x54, 0x49, 0x56, 0x45, 0x00, 0x44, 0x45, 0x53, 0x43, 0x45, 0x4E, 0x44, 0x49, 0x4E, 0x47, - 0x00, 0x55, 0x4E, 0x49, 0x51, 0x55, 0x45, 0x53, 0x4F, 0x52, 0x54, 0x00, 0x52, 0x45, 0x54, 0x55, - 0x52, 0x4E, 0x49, 0x4E, 0x44, 0x45, 0x58, 0x45, 0x44, 0x41, 0x52, 0x52, 0x41, 0x59, 0x00, 0x4E, - 0x55, 0x4D, 0x45, 0x52, 0x49, 0x43, 0x00, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x00, 0x75, 0x6E, - 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, 0x6E, 0x74, 0x00, - 0x69, 0x73, 0x4E, 0x61, 0x4E, 0x00, 0x69, 0x73, 0x46, 0x69, 0x6E, 0x69, 0x74, 0x65, 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, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x05, - 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x96, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x52, 0x3E, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x03, - 0x00, 0x00, 0x00, 0x02, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, - 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x08, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, - 0x00, 0x02, 0x08, 0x03, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x08, 0x3D, - 0x17, 0x96, 0x13, 0x00, 0x08, 0x09, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, 0x6B, 0x00, 0x00, 0x00, - 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0A, 0x3D, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x0B, 0x07, 0x6B, - 0x00, 0x00, 0x00, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, - 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x08, 0x09, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, - 0x00, 0x00, 0x08, 0x08, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x0C, 0x07, 0x02, 0x00, 0x00, 0x00, - 0x07, 0x6A, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0A, 0x3D, 0x1D, 0x96, 0x09, - 0x00, 0x08, 0x0B, 0x07, 0x6A, 0x00, 0x00, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, - 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, - 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, - 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x08, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x0C, - 0x1C, 0x96, 0x04, 0x00, 0x08, 0x0D, 0x08, 0x0D, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, - 0x96, 0x04, 0x00, 0x08, 0x0E, 0x08, 0x0F, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, - 0x04, 0x00, 0x08, 0x10, 0x08, 0x0F, 0x1C, 0x96, 0x05, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x0C, - 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x11, 0x07, 0x00, 0x00, 0x00, - 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x0B, 0x00, 0x08, 0x12, 0x06, 0xFF, 0xFF, - 0xEF, 0x7F, 0xE2, 0xFF, 0xFF, 0xFF, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, - 0x08, 0x0C, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x08, 0x3D, 0x17, 0x96, - 0x13, 0x00, 0x08, 0x13, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFB, 0x00, 0x00, 0x00, 0x07, 0x02, - 0x00, 0x00, 0x00, 0x08, 0x0A, 0x3D, 0x1D, 0x96, 0x0E, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, - 0x14, 0x07, 0xFB, 0x00, 0x00, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, - 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x03, - 0x00, 0x00, 0x00, 0x02, 0x08, 0x13, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, - 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x08, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, - 0x13, 0x00, 0x08, 0x15, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x07, 0xFB, 0x00, 0x00, 0x00, 0x07, 0x02, - 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, - 0x08, 0x13, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x08, 0x3D, 0x17, 0x96, - 0x5F, 0x00, 0x08, 0x16, 0x08, 0x17, 0x06, 0x0A, 0xBF, 0x05, 0x40, 0x74, 0x57, 0x14, 0x8B, 0x08, - 0x18, 0x06, 0xB1, 0x6B, 0x02, 0x40, 0x1F, 0x55, 0xB5, 0xBB, 0x08, 0x19, 0x06, 0x42, 0x2E, 0xE6, - 0x3F, 0xEC, 0x39, 0xFA, 0xFE, 0x08, 0x1A, 0x06, 0x7B, 0xCB, 0xDB, 0x3F, 0x11, 0xE5, 0x26, 0x15, - 0x08, 0x1B, 0x06, 0x47, 0x15, 0xF7, 0x3F, 0xEF, 0x82, 0x2B, 0x65, 0x08, 0x1C, 0x06, 0xFB, 0x21, - 0x09, 0x40, 0x11, 0x2D, 0x44, 0x54, 0x08, 0x1D, 0x06, 0x9E, 0xA0, 0xE6, 0x3F, 0xD1, 0x3B, 0x7F, - 0x66, 0x08, 0x1E, 0x06, 0x9E, 0xA0, 0xF6, 0x3F, 0xE3, 0x3B, 0x7F, 0x66, 0x07, 0x08, 0x00, 0x00, - 0x00, 0x43, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x1F, 0x07, 0xC8, 0x00, 0x00, 0x00, 0x08, 0x16, 0x1C, - 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, - 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x16, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, - 0x08, 0x08, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x20, 0x07, 0x00, 0x01, 0x00, 0x00, 0x07, 0x67, - 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0A, 0x3D, 0x1D, 0x96, 0x09, 0x00, 0x08, - 0x21, 0x07, 0x67, 0x00, 0x00, 0x00, 0x08, 0x20, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, - 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x0E, 0x00, 0x07, 0x80, - 0x00, 0x00, 0x00, 0x08, 0x22, 0x07, 0x67, 0x00, 0x00, 0x00, 0x08, 0x20, 0x1C, 0x96, 0x02, 0x00, - 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, - 0x02, 0x00, 0x08, 0x20, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x23, - 0x08, 0x20, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x24, 0x4E, 0x4F, - 0x96, 0x02, 0x00, 0x08, 0x20, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x25, 0x07, 0x01, 0x01, 0x00, 0x00, - 0x07, 0x67, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x08, - 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x20, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, - 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x08, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, - 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x20, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, - 0x08, 0x08, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x26, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFC, - 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0A, 0x3D, 0x1D, 0x96, 0x0E, 0x00, 0x07, - 0x01, 0x00, 0x00, 0x00, 0x08, 0x27, 0x07, 0xFC, 0x00, 0x00, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x02, - 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, - 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00, 0x08, - 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x08, 0x3D, 0x17, 0x96, 0x02, - 0x00, 0x08, 0x26, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x28, 0x07, 0x01, 0x00, 0x00, 0x00, 0x4F, 0x96, - 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x29, 0x07, 0x02, 0x00, 0x00, 0x00, 0x4F, - 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x2A, 0x07, 0x04, 0x00, 0x00, 0x00, - 0x4F, 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x2B, 0x07, 0x08, 0x00, 0x00, - 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x2C, 0x07, 0x10, 0x00, - 0x00, 0x00, 0x4F, 0x96, 0x13, 0x00, 0x08, 0x2D, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x64, 0x00, - 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x2E, - 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x64, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, - 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x2F, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, 0x64, 0x00, - 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x30, - 0x07, 0x12, 0x00, 0x00, 0x00, 0x07, 0xC8, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, - 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x31, 0x07, 0x13, 0x00, 0x00, 0x00, 0x07, 0xC8, 0x00, - 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x0D, 0x00, 0x07, 0x06, - 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x02, 0x08, 0x06, 0x1C, 0x96, 0x07, 0x00, 0x07, - 0x04, 0x00, 0x00, 0x00, 0x08, 0x08, 0x3D, 0x17, 0x00 + 0x6A, 0x65, 0x63, 0x74, 0x00, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x36, + 0x77, 0x61, 0x74, 0x63, 0x68, 0x2C, 0x36, 0x75, 0x6E, 0x77, 0x61, 0x74, 0x63, 0x68, 0x2C, 0x36, + 0x61, 0x64, 0x64, 0x50, 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2C, 0x76, 0x61, 0x6C, 0x75, + 0x65, 0x4F, 0x66, 0x2C, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x2C, 0x36, 0x68, 0x61, + 0x73, 0x4F, 0x77, 0x6E, 0x50, 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2C, 0x36, 0x69, 0x73, + 0x50, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x4F, 0x66, 0x2C, 0x36, 0x69, 0x73, 0x50, + 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6E, 0x75, 0x6D, 0x65, 0x72, 0x61, 0x62, 0x6C, + 0x65, 0x00, 0x74, 0x6F, 0x4C, 0x6F, 0x63, 0x61, 0x6C, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, + 0x00, 0x74, 0x68, 0x69, 0x73, 0x00, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x41, + 0x53, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6F, 0x70, 0x46, 0x6C, 0x61, 0x67, 0x73, 0x00, 0x42, 0x6F, + 0x6F, 0x6C, 0x65, 0x61, 0x6E, 0x00, 0x41, 0x53, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x6F, 0x72, 0x00, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x4F, 0x66, 0x2C, 0x74, 0x6F, 0x53, 0x74, + 0x72, 0x69, 0x6E, 0x67, 0x00, 0x4E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x4E, 0x00, + 0x50, 0x4F, 0x53, 0x49, 0x54, 0x49, 0x56, 0x45, 0x5F, 0x49, 0x4E, 0x46, 0x49, 0x4E, 0x49, 0x54, + 0x59, 0x00, 0x49, 0x6E, 0x66, 0x69, 0x6E, 0x69, 0x74, 0x79, 0x00, 0x4E, 0x45, 0x47, 0x41, 0x54, + 0x49, 0x56, 0x45, 0x5F, 0x49, 0x4E, 0x46, 0x49, 0x4E, 0x49, 0x54, 0x59, 0x00, 0x4D, 0x49, 0x4E, + 0x5F, 0x56, 0x41, 0x4C, 0x55, 0x45, 0x00, 0x4D, 0x41, 0x58, 0x5F, 0x56, 0x41, 0x4C, 0x55, 0x45, + 0x00, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x4F, 0x66, 0x2C, + 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x2C, 0x74, 0x6F, 0x55, 0x70, 0x70, 0x65, 0x72, + 0x43, 0x61, 0x73, 0x65, 0x2C, 0x74, 0x6F, 0x4C, 0x6F, 0x77, 0x65, 0x72, 0x43, 0x61, 0x73, 0x65, + 0x2C, 0x63, 0x68, 0x61, 0x72, 0x41, 0x74, 0x2C, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6F, 0x64, 0x65, + 0x41, 0x74, 0x2C, 0x63, 0x6F, 0x6E, 0x63, 0x61, 0x74, 0x2C, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x4F, + 0x66, 0x2C, 0x6C, 0x61, 0x73, 0x74, 0x49, 0x6E, 0x64, 0x65, 0x78, 0x4F, 0x66, 0x2C, 0x73, 0x6C, + 0x69, 0x63, 0x65, 0x2C, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x2C, 0x73, 0x70, + 0x6C, 0x69, 0x74, 0x2C, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x00, 0x66, 0x72, 0x6F, 0x6D, 0x43, + 0x68, 0x61, 0x72, 0x43, 0x6F, 0x64, 0x65, 0x00, 0x4D, 0x61, 0x74, 0x68, 0x00, 0x45, 0x00, 0x4C, + 0x4E, 0x31, 0x30, 0x00, 0x4C, 0x4E, 0x32, 0x00, 0x4C, 0x4F, 0x47, 0x31, 0x30, 0x45, 0x00, 0x4C, + 0x4F, 0x47, 0x32, 0x45, 0x00, 0x50, 0x49, 0x00, 0x53, 0x51, 0x52, 0x54, 0x31, 0x5F, 0x32, 0x00, + 0x53, 0x51, 0x52, 0x54, 0x32, 0x00, 0x61, 0x62, 0x73, 0x2C, 0x6D, 0x69, 0x6E, 0x2C, 0x6D, 0x61, + 0x78, 0x2C, 0x73, 0x69, 0x6E, 0x2C, 0x63, 0x6F, 0x73, 0x2C, 0x61, 0x74, 0x61, 0x6E, 0x32, 0x2C, + 0x74, 0x61, 0x6E, 0x2C, 0x65, 0x78, 0x70, 0x2C, 0x6C, 0x6F, 0x67, 0x2C, 0x73, 0x71, 0x72, 0x74, + 0x2C, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2C, 0x72, 0x61, 0x6E, 0x64, 0x6F, 0x6D, 0x2C, 0x66, 0x6C, + 0x6F, 0x6F, 0x72, 0x2C, 0x63, 0x65, 0x69, 0x6C, 0x2C, 0x61, 0x74, 0x61, 0x6E, 0x2C, 0x61, 0x73, + 0x69, 0x6E, 0x2C, 0x61, 0x63, 0x6F, 0x73, 0x2C, 0x70, 0x6F, 0x77, 0x00, 0x44, 0x61, 0x74, 0x65, + 0x00, 0x67, 0x65, 0x74, 0x46, 0x75, 0x6C, 0x6C, 0x59, 0x65, 0x61, 0x72, 0x2C, 0x67, 0x65, 0x74, + 0x59, 0x65, 0x61, 0x72, 0x2C, 0x67, 0x65, 0x74, 0x4D, 0x6F, 0x6E, 0x74, 0x68, 0x2C, 0x67, 0x65, + 0x74, 0x44, 0x61, 0x74, 0x65, 0x2C, 0x67, 0x65, 0x74, 0x44, 0x61, 0x79, 0x2C, 0x67, 0x65, 0x74, + 0x48, 0x6F, 0x75, 0x72, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, + 0x2C, 0x67, 0x65, 0x74, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x4D, + 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x46, + 0x75, 0x6C, 0x6C, 0x59, 0x65, 0x61, 0x72, 0x2C, 0x73, 0x65, 0x74, 0x4D, 0x6F, 0x6E, 0x74, 0x68, + 0x2C, 0x73, 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, 0x2C, 0x73, 0x65, 0x74, 0x48, 0x6F, 0x75, 0x72, + 0x73, 0x2C, 0x73, 0x65, 0x74, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, 0x2C, 0x73, 0x65, 0x74, + 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x4D, 0x69, 0x6C, 0x6C, 0x69, + 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x2C, + 0x73, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x2C, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x7A, + 0x6F, 0x6E, 0x65, 0x4F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2C, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, + 0x6E, 0x67, 0x2C, 0x73, 0x65, 0x74, 0x59, 0x65, 0x61, 0x72, 0x00, 0x67, 0x65, 0x74, 0x55, 0x54, + 0x43, 0x46, 0x75, 0x6C, 0x6C, 0x59, 0x65, 0x61, 0x72, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, + 0x59, 0x65, 0x61, 0x72, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x6F, 0x6E, 0x74, 0x68, + 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x44, 0x61, 0x74, 0x65, 0x2C, 0x67, 0x65, 0x74, 0x55, + 0x54, 0x43, 0x44, 0x61, 0x79, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x48, 0x6F, 0x75, 0x72, + 0x73, 0x2C, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, 0x2C, + 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x67, 0x65, + 0x74, 0x55, 0x54, 0x43, 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, + 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x46, 0x75, 0x6C, 0x6C, 0x59, 0x65, 0x61, 0x72, 0x2C, + 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x6F, 0x6E, 0x74, 0x68, 0x2C, 0x73, 0x65, 0x74, 0x55, + 0x54, 0x43, 0x44, 0x61, 0x74, 0x65, 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x48, 0x6F, 0x75, + 0x72, 0x73, 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, + 0x2C, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x2C, 0x73, + 0x65, 0x74, 0x55, 0x54, 0x43, 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, + 0x73, 0x00, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x4F, 0x66, 0x00, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6D, + 0x65, 0x00, 0x55, 0x54, 0x43, 0x00, 0x41, 0x72, 0x72, 0x61, 0x79, 0x00, 0x70, 0x75, 0x73, 0x68, + 0x2C, 0x70, 0x6F, 0x70, 0x2C, 0x63, 0x6F, 0x6E, 0x63, 0x61, 0x74, 0x2C, 0x73, 0x68, 0x69, 0x66, + 0x74, 0x2C, 0x75, 0x6E, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2C, 0x73, 0x6C, 0x69, 0x63, 0x65, 0x2C, + 0x6A, 0x6F, 0x69, 0x6E, 0x2C, 0x73, 0x70, 0x6C, 0x69, 0x63, 0x65, 0x2C, 0x74, 0x6F, 0x53, 0x74, + 0x72, 0x69, 0x6E, 0x67, 0x2C, 0x73, 0x6F, 0x72, 0x74, 0x2C, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, + 0x65, 0x2C, 0x73, 0x6F, 0x72, 0x74, 0x4F, 0x6E, 0x00, 0x43, 0x41, 0x53, 0x45, 0x49, 0x4E, 0x53, + 0x45, 0x4E, 0x53, 0x49, 0x54, 0x49, 0x56, 0x45, 0x00, 0x44, 0x45, 0x53, 0x43, 0x45, 0x4E, 0x44, + 0x49, 0x4E, 0x47, 0x00, 0x55, 0x4E, 0x49, 0x51, 0x55, 0x45, 0x53, 0x4F, 0x52, 0x54, 0x00, 0x52, + 0x45, 0x54, 0x55, 0x52, 0x4E, 0x49, 0x4E, 0x44, 0x45, 0x58, 0x45, 0x44, 0x41, 0x52, 0x52, 0x41, + 0x59, 0x00, 0x4E, 0x55, 0x4D, 0x45, 0x52, 0x49, 0x43, 0x00, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, + 0x00, 0x75, 0x6E, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x00, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, + 0x6E, 0x74, 0x00, 0x69, 0x73, 0x4E, 0x61, 0x4E, 0x00, 0x69, 0x73, 0x46, 0x69, 0x6E, 0x69, 0x74, + 0x65, 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, 0x09, 0x00, 0x08, 0x05, 0x07, 0x65, 0x00, 0x00, 0x00, 0x08, 0x03, 0x1C, 0x96, + 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, + 0x17, 0x96, 0x02, 0x00, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, + 0x08, 0x06, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x96, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x52, 0x3E, 0x4F, 0x96, 0x08, 0x00, + 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, + 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x07, + 0x00, 0x00, 0x00, 0x02, 0x08, 0x03, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, + 0x09, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x0A, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, 0x6B, 0x00, + 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x3D, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x0C, + 0x07, 0x6B, 0x00, 0x00, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, + 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, + 0x00, 0x00, 0x02, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, + 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x0D, 0x07, 0x02, 0x00, + 0x00, 0x00, 0x07, 0x6A, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x3D, 0x1D, + 0x96, 0x09, 0x00, 0x08, 0x0C, 0x07, 0x6A, 0x00, 0x00, 0x00, 0x08, 0x0D, 0x1C, 0x96, 0x02, 0x00, + 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, + 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x0D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, + 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x96, 0x02, 0x00, + 0x08, 0x0D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x0E, 0x08, 0x0E, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, + 0x0D, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x0F, 0x08, 0x10, 0x1C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0D, + 0x1C, 0x96, 0x04, 0x00, 0x08, 0x11, 0x08, 0x10, 0x1C, 0x96, 0x05, 0x00, 0x07, 0xFF, 0xFF, 0xFF, + 0xFF, 0x0C, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x12, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x1C, 0x96, 0x0B, 0x00, 0x08, 0x13, 0x06, + 0xFF, 0xFF, 0xEF, 0x7F, 0xE2, 0xFF, 0xFF, 0xFF, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, + 0x00, 0x02, 0x08, 0x0D, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, + 0x17, 0x96, 0x13, 0x00, 0x08, 0x14, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFB, 0x00, 0x00, 0x00, + 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x3D, 0x1D, 0x96, 0x0E, 0x00, 0x07, 0x01, 0x00, 0x00, + 0x00, 0x08, 0x15, 0x07, 0xFB, 0x00, 0x00, 0x00, 0x08, 0x14, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, + 0x4E, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, 0x00, + 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x14, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, + 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x14, + 0x1C, 0x96, 0x13, 0x00, 0x08, 0x16, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x07, 0xFB, 0x00, 0x00, 0x00, + 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x02, 0x08, 0x14, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, + 0x17, 0x96, 0x5F, 0x00, 0x08, 0x17, 0x08, 0x18, 0x06, 0x0A, 0xBF, 0x05, 0x40, 0x74, 0x57, 0x14, + 0x8B, 0x08, 0x19, 0x06, 0xB1, 0x6B, 0x02, 0x40, 0x1F, 0x55, 0xB5, 0xBB, 0x08, 0x1A, 0x06, 0x42, + 0x2E, 0xE6, 0x3F, 0xEC, 0x39, 0xFA, 0xFE, 0x08, 0x1B, 0x06, 0x7B, 0xCB, 0xDB, 0x3F, 0x11, 0xE5, + 0x26, 0x15, 0x08, 0x1C, 0x06, 0x47, 0x15, 0xF7, 0x3F, 0xEF, 0x82, 0x2B, 0x65, 0x08, 0x1D, 0x06, + 0xFB, 0x21, 0x09, 0x40, 0x11, 0x2D, 0x44, 0x54, 0x08, 0x1E, 0x06, 0x9E, 0xA0, 0xE6, 0x3F, 0xD1, + 0x3B, 0x7F, 0x66, 0x08, 0x1F, 0x06, 0x9E, 0xA0, 0xF6, 0x3F, 0xE3, 0x3B, 0x7F, 0x66, 0x07, 0x08, + 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x20, 0x07, 0xC8, 0x00, 0x00, 0x00, 0x08, + 0x17, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x08, + 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x17, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, + 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x21, 0x07, 0x00, 0x01, 0x00, 0x00, + 0x07, 0x67, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x3D, 0x1D, 0x96, 0x09, + 0x00, 0x08, 0x22, 0x07, 0x67, 0x00, 0x00, 0x00, 0x08, 0x21, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, + 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x0E, 0x00, + 0x07, 0x80, 0x00, 0x00, 0x00, 0x08, 0x23, 0x07, 0x67, 0x00, 0x00, 0x00, 0x08, 0x21, 0x1C, 0x96, + 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, + 0x17, 0x96, 0x02, 0x00, 0x08, 0x21, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, + 0x08, 0x24, 0x08, 0x21, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x25, + 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x21, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x26, 0x07, 0x01, 0x01, + 0x00, 0x00, 0x07, 0x67, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, + 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x21, 0x1C, 0x96, 0x02, 0x00, 0x08, + 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x96, 0x08, + 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x21, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, + 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x96, 0x13, 0x00, 0x08, 0x27, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x07, 0xFC, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x3D, 0x1D, 0x96, 0x0E, + 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x28, 0x07, 0xFC, 0x00, 0x00, 0x00, 0x08, 0x27, 0x1C, + 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x3D, 0x17, 0x96, 0x08, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x02, 0x08, 0x27, 0x1C, 0x96, 0x02, + 0x00, 0x08, 0x04, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, + 0x96, 0x02, 0x00, 0x08, 0x27, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x29, 0x07, 0x01, 0x00, 0x00, 0x00, + 0x4F, 0x96, 0x02, 0x00, 0x08, 0x27, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x2A, 0x07, 0x02, 0x00, 0x00, + 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x27, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x2B, 0x07, 0x04, 0x00, + 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x27, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x2C, 0x07, 0x08, + 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x27, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x2D, 0x07, + 0x10, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x13, 0x00, 0x08, 0x2E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x64, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, + 0x08, 0x2F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x64, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, + 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x30, 0x07, 0x02, 0x00, 0x00, 0x00, 0x07, + 0x64, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, + 0x08, 0x31, 0x07, 0x12, 0x00, 0x00, 0x00, 0x07, 0xC8, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, + 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x32, 0x07, 0x13, 0x00, 0x00, 0x00, 0x07, + 0xC8, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x0D, 0x00, + 0x07, 0x06, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x02, 0x08, 0x07, 0x1C, 0x96, 0x07, + 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x09, 0x3D, 0x17, 0x00 }; diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c index 658336c..e7086e6 100644 --- a/libswfdec/swfdec_as_object.c +++ b/libswfdec/swfdec_as_object.c @@ -1206,7 +1206,8 @@ swfdec_as_object_add_variable (SwfdecAsO /*** AS CODE ***/ -static void +SWFDEC_AS_NATIVE (101, 2, swfdec_as_object_addProperty) +void swfdec_as_object_addProperty (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, SwfdecAsValue *retval) { @@ -1298,7 +1299,7 @@ swfdec_as_object_get_prototype (SwfdecAs return SWFDEC_AS_VALUE_GET_OBJECT (&val); } -SWFDEC_AS_NATIVE (101, 7, swfdec_as_object_isPrototypeOf) +SWFDEC_AS_NATIVE (101, 6, swfdec_as_object_isPrototypeOf) void swfdec_as_object_isPrototypeOf (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, @@ -1403,14 +1404,16 @@ swfdec_as_object_unwatch (SwfdecAsContex } } -static void +SWFDEC_AS_NATIVE (101, 3, swfdec_as_object_valueOf) +void swfdec_as_object_valueOf (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, SwfdecAsValue *retval) { SWFDEC_AS_VALUE_SET_OBJECT (retval, object); } -static void +SWFDEC_AS_NATIVE (101, 4, swfdec_as_object_toString) +void swfdec_as_object_toString (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, SwfdecAsValue *retval) { @@ -1451,25 +1454,6 @@ swfdec_as_object_init_context (SwfdecAsC SWFDEC_AS_VALUE_SET_OBJECT (&val, object); swfdec_as_object_set_variable_and_flags (proto, SWFDEC_AS_STR_constructor, &val, SWFDEC_AS_VARIABLE_HIDDEN | SWFDEC_AS_VARIABLE_PERMANENT); - - if (version > 5) { - swfdec_as_object_add_function (proto, SWFDEC_AS_STR_addProperty, - SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_addProperty, 0); - swfdec_as_object_add_function (proto, SWFDEC_AS_STR_hasOwnProperty, - SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_hasOwnProperty, 0); - swfdec_as_object_add_function (proto, SWFDEC_AS_STR_isPropertyEnumerable, - SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_isPropertyEnumerable, 0); - swfdec_as_object_add_function (proto, SWFDEC_AS_STR_isPrototypeOf, - SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_isPrototypeOf, 0); - swfdec_as_object_add_function (proto, SWFDEC_AS_STR_watch, - SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_watch, 0); - swfdec_as_object_add_function (proto, SWFDEC_AS_STR_unwatch, - SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_unwatch, 0); - } - swfdec_as_object_add_function (proto, SWFDEC_AS_STR_valueOf, - SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_valueOf, 0); - swfdec_as_object_add_function (proto, SWFDEC_AS_STR_toString, - SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_toString, 0); } /** diff-tree c8aa28f218da7807757b58226325fa1c26ed0bf7 (from 0432397927e47c6f2a0a02b8c95dec097ee79891) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Wed Sep 12 21:52:00 2007 +0300 Implement turning 6, 7 and 8 prefixes to propflags in ASSetNative function diff --git a/libswfdec/swfdec_player_as.c b/libswfdec/swfdec_player_as.c index 5d17a31..790655e 100644 --- a/libswfdec/swfdec_player_as.c +++ b/libswfdec/swfdec_player_as.c @@ -173,6 +173,7 @@ ASSetNative (SwfdecAsContext *cx, Swfdec SwfdecAsFunction *function; SwfdecAsObject *target; SwfdecAsValue val; + SwfdecAsVariableFlag flags; const char *s; char **names; guint i, x, y; @@ -186,8 +187,15 @@ ASSetNative (SwfdecAsContext *cx, Swfdec names = g_strsplit (s, ",", -1); for (i = 0; names[i]; i++) { s = names[i]; - if (s[0] >= '0' && s[0] <= '9') { - SWFDEC_FIXME ("implement the weird numbers"); + flags = 0; + if (s[0] == '6') { + flags |= SWFDEC_AS_VARIABLE_VERSION_6_UP; + s++; + } else if (s[0] == '7') { + flags |= SWFDEC_AS_VARIABLE_VERSION_6_UP; + s++; + } else if (s[0] == '8') { + flags |= SWFDEC_AS_VARIABLE_VERSION_8_UP; s++; } function = swfdec_get_asnative (cx, x, y); @@ -196,7 +204,8 @@ ASSetNative (SwfdecAsContext *cx, Swfdec break; } SWFDEC_AS_VALUE_SET_OBJECT (&val, SWFDEC_AS_OBJECT (function)); - swfdec_as_object_set_variable (target, swfdec_as_context_get_string (cx, s), &val); + swfdec_as_object_set_variable_and_flags (target, + swfdec_as_context_get_string (cx, s), &val, flags); y++; } g_strfreev (names); diff-tree 0432397927e47c6f2a0a02b8c95dec097ee79891 (from 9caf080ddff5b1337674d6fae84e49b6fb5a9d72) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Wed Sep 12 21:40:13 2007 +0300 Add a test for Object's isPrototypeOf method diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index c0a12e0..967e505 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -748,6 +748,13 @@ EXTRA_DIST = \ object-ispropertyenumerable-6.swf.trace \ object-ispropertyenumerable-7.swf \ object-ispropertyenumerable-7.swf.trace \ + object-isprototypeof.as \ + object-isprototypeof-5.swf \ + object-isprototypeof-5.swf.trace \ + object-isprototypeof-6.swf \ + object-isprototypeof-6.swf.trace \ + object-isprototypeof-7.swf \ + object-isprototypeof-7.swf.trace \ object-math-5.swf \ object-math-5.swf.trace \ object-math-6.swf \ diff --git a/test/trace/object-isprototypeof-5.swf b/test/trace/object-isprototypeof-5.swf new file mode 100644 index 0000000..5223310 Binary files /dev/null and b/test/trace/object-isprototypeof-5.swf differ diff --git a/test/trace/object-isprototypeof-5.swf.trace b/test/trace/object-isprototypeof-5.swf.trace new file mode 100644 index 0000000..1b54a8a --- /dev/null +++ b/test/trace/object-isprototypeof-5.swf.trace @@ -0,0 +1,154 @@ +valueOf called +toString called +toString called with +valueOf called with +0: valueOf! +1: valueOf! +2: valueOf! +3: valueOf! +4: valueOf! +5: valueOf! +6: valueOf! +7: valueOf! +8: valueOf! +9: valueOf! +10: valueOf! +11: valueOf! +12: valueOf! +13: valueOf! +14: valueOf! +15: valueOf! +16: valueOf! +17: valueOf! +18: valueOf! +19: valueOf! +20: valueOf! +21: valueOf! +21: toString! +22: valueOf! +23: valueOf! +23: toString! +24: valueOf! +24: toString! +25: valueOf! +25: toString! +26: valueOf! +26: toString! +undefined +undefined +undefined +undefined +undefined +undefined +undefined +undefined +undefined +undefined +Testing: (0) (undefined) + +Testing: (1) null (null) + +Testing: (2) true (boolean) + +Testing: (3) false (boolean) + +Testing: (4) 0 (number) + +Testing: (5) 1 (number) + +Testing: (6) 0.5 (number) + +Testing: (7) -1 (number) + +Testing: (8) -0.5 (number) + +Testing: (9) Infinity (number) + +Testing: (10) -Infinity (number) + +Testing: (11) NaN (number) + +Testing: (12) (string) + +Testing: (13) 0 (string) + +Testing: (14) -0 (string) + +Testing: (15) 0.0 (string) + +Testing: (16) 1 (string) + +Testing: (17) Hello World! (string) + +Testing: (18) true (string) + +Testing: (19) _level0 (string) + +Testing: (20) _level0 (movieclip) + +Testing: (21) [object Object] (object) + +Testing: (22) (undefined) + +Testing: (23) [type Object] (object) + +Testing: (24) [type Object] (object) + +Testing: (25) [object Object] (object) + +Testing: (26) (object) + +Testing: (27) (object) + +Testing: (28) null (object) + +Testing: (29) true (object) + +Testing: (30) false (object) + +Testing: (31) 0 (object) + +Testing: (32) 1 (object) + +Testing: (33) 0.5 (object) + +Testing: (34) -1 (object) + +Testing: (35) -0.5 (object) + +Testing: (36) Infinity (object) + +Testing: (37) -Infinity (object) + +Testing: (38) NaN (object) + +Testing: (39) (object) + +Testing: (40) 0 (object) + +Testing: (41) -0 (object) + +Testing: (42) 0.0 (object) + +Testing: (43) 1 (object) + +Testing: (44) Hello World! (object) + +Testing: (45) true (object) + +Testing: (46) _level0 (object) + +Testing: (47) _level0 (object) + +Testing: (48) [type Object] (object) + +Testing: (49) (object) + +Testing: (50) [type Object] (object) + +Testing: (51) [type Object] (object) + +Testing: (52) [type Object] (object) + +Testing: (53) [type Object] (object) + diff --git a/test/trace/object-isprototypeof-6.swf b/test/trace/object-isprototypeof-6.swf new file mode 100644 index 0000000..56d1c1e Binary files /dev/null and b/test/trace/object-isprototypeof-6.swf differ diff --git a/test/trace/object-isprototypeof-6.swf.trace b/test/trace/object-isprototypeof-6.swf.trace new file mode 100644 index 0000000..e0126c0 --- /dev/null +++ b/test/trace/object-isprototypeof-6.swf.trace @@ -0,0 +1,155 @@ +valueOf called +toString called +toString called with +valueOf called with +0: valueOf! +1: valueOf! +2: valueOf! +3: valueOf! +4: valueOf! +5: valueOf! +6: valueOf! +7: valueOf! +8: valueOf! +9: valueOf! +10: valueOf! +11: valueOf! +12: valueOf! +13: valueOf! +14: valueOf! +15: valueOf! +16: valueOf! +17: valueOf! +18: valueOf! +19: valueOf! +20: valueOf! +21: valueOf! +21: toString! +22: valueOf! +22: toString! +23: valueOf! +23: toString! +24: valueOf! +24: toString! +25: valueOf! +25: toString! +26: valueOf! +26: toString! +true +true +false +false +true +true +false +false +false +true +Testing: (0) (undefined) +false false false false false +Testing: (1) null (null) +false false false false false +Testing: (2) true (boolean) +true false false true false +Testing: (3) false (boolean) +true false false true false +Testing: (4) 0 (number) +true false true false false +Testing: (5) 1 (number) +true false true false false +Testing: (6) 0.5 (number) +true false true false false +Testing: (7) -1 (number) +true false true false false +Testing: (8) -0.5 (number) +true false true false false +Testing: (9) Infinity (number) +true false true false false +Testing: (10) -Infinity (number) +true false true false false +Testing: (11) NaN (number) +true false true false false +Testing: (12) (string) +true true false false false +Testing: (13) 0 (string) +true true false false false +Testing: (14) -0 (string) +true true false false false +Testing: (15) 0.0 (string) +true true false false false +Testing: (16) 1 (string) +true true false false false +Testing: (17) Hello World! (string) +true true false false false +Testing: (18) true (string) +true true false false false +Testing: (19) _level0 (string) +true true false false false +Testing: (20) _level0 (movieclip) +true false false false false +Testing: (21) [object Object] (object) +true false false false false +Testing: (22) [type Function] (function) +true false false false false +Testing: (23) [type Object] (object) +true false false false false +Testing: (24) [type Object] (object) +true false false false false +Testing: (25) [object Object] (object) +true false false false false +Testing: (26) (object) +false false false false false +Testing: (27) (object) +true false false false false +Testing: (28) null (object) +true false false false false +Testing: (29) true (object) +true false false false false +Testing: (30) false (object) +true false false false false +Testing: (31) 0 (object) +true false false false false +Testing: (32) 1 (object) +true false false false false +Testing: (33) 0.5 (object) +true false false false false +Testing: (34) -1 (object) +true false false false false +Testing: (35) -0.5 (object) +true false false false false +Testing: (36) Infinity (object) +true false false false false +Testing: (37) -Infinity (object) +true false false false false +Testing: (38) NaN (object) +true false false false false +Testing: (39) (object) +true false false false false +Testing: (40) 0 (object) +true false false false false +Testing: (41) -0 (object) +true false false false false +Testing: (42) 0.0 (object) +true false false false false +Testing: (43) 1 (object) +true false false false false +Testing: (44) Hello World! (object) +true false false false false +Testing: (45) true (object) +true false false false false +Testing: (46) _level0 (object) +true false false false false +Testing: (47) _level0 (object) +true false false false false +Testing: (48) [type Object] (object) +true false false false false +Testing: (49) [type Object] (object) +true false false false false +Testing: (50) [type Object] (object) +true false false false false +Testing: (51) [type Object] (object) +true false false false false +Testing: (52) [type Object] (object) +true false false false false +Testing: (53) [type Object] (object) +true false false false false diff --git a/test/trace/object-isprototypeof-7.swf b/test/trace/object-isprototypeof-7.swf new file mode 100644 index 0000000..40972a7 Binary files /dev/null and b/test/trace/object-isprototypeof-7.swf differ diff --git a/test/trace/object-isprototypeof-7.swf.trace b/test/trace/object-isprototypeof-7.swf.trace new file mode 100644 index 0000000..15e52ef --- /dev/null +++ b/test/trace/object-isprototypeof-7.swf.trace @@ -0,0 +1,155 @@ +valueOf called +toString called +toString called with +valueOf called with +0: valueOf! +1: valueOf! +2: valueOf! +3: valueOf! +4: valueOf! +5: valueOf! +6: valueOf! +7: valueOf! +8: valueOf! +9: valueOf! +10: valueOf! +11: valueOf! +12: valueOf! +13: valueOf! +14: valueOf! +15: valueOf! +16: valueOf! +17: valueOf! +18: valueOf! +19: valueOf! +20: valueOf! +21: valueOf! +21: toString! +22: valueOf! +22: toString! +23: valueOf! +23: toString! +24: valueOf! +24: toString! +25: valueOf! +25: toString! +26: valueOf! +26: toString! +true +true +false +false +true +true +false +false +false +true +Testing: (0) undefined (undefined) +false false false false false +Testing: (1) null (null) +false false false false false +Testing: (2) true (boolean) +true false false true false +Testing: (3) false (boolean) +true false false true false +Testing: (4) 0 (number) +true false true false false +Testing: (5) 1 (number) +true false true false false +Testing: (6) 0.5 (number) +true false true false false +Testing: (7) -1 (number) +true false true false false +Testing: (8) -0.5 (number) +true false true false false +Testing: (9) Infinity (number) +true false true false false +Testing: (10) -Infinity (number) +true false true false false +Testing: (11) NaN (number) +true false true false false +Testing: (12) (string) +true true false false false +Testing: (13) 0 (string) +true true false false false +Testing: (14) -0 (string) +true true false false false +Testing: (15) 0.0 (string) +true true false false false +Testing: (16) 1 (string) +true true false false false +Testing: (17) Hello World! (string) +true true false false false +Testing: (18) true (string) +true true false false false +Testing: (19) _level0 (string) +true true false false false +Testing: (20) _level0 (movieclip) +true false false false false +Testing: (21) [object Object] (object) +true false false false false +Testing: (22) [type Function] (function) +true false false false false +Testing: (23) [type Object] (object) +true false false false false +Testing: (24) [type Object] (object) +true false false false false +Testing: (25) [object Object] (object) +true false false false false +Testing: (26) undefined (object) +false false false false false +Testing: (27) undefined (object) +true false false false false +Testing: (28) null (object) +true false false false false +Testing: (29) true (object) +true false false false false +Testing: (30) false (object) +true false false false false +Testing: (31) 0 (object) +true false false false false +Testing: (32) 1 (object) +true false false false false +Testing: (33) 0.5 (object) +true false false false false +Testing: (34) -1 (object) +true false false false false +Testing: (35) -0.5 (object) +true false false false false +Testing: (36) Infinity (object) +true false false false false +Testing: (37) -Infinity (object) +true false false false false +Testing: (38) NaN (object) +true false false false false +Testing: (39) (object) +true false false false false +Testing: (40) 0 (object) +true false false false false +Testing: (41) -0 (object) +true false false false false +Testing: (42) 0.0 (object) +true false false false false +Testing: (43) 1 (object) +true false false false false +Testing: (44) Hello World! (object) +true false false false false +Testing: (45) true (object) +true false false false false +Testing: (46) _level0 (object) +true false false false false +Testing: (47) _level0 (object) +true false false false false +Testing: (48) [type Object] (object) +true false false false false +Testing: (49) [type Object] (object) +true false false false false +Testing: (50) [type Object] (object) +true false false false false +Testing: (51) [type Object] (object) +true false false false false +Testing: (52) [type Object] (object) +true false false false false +Testing: (53) [type Object] (object) +true false false false false diff --git a/test/trace/object-isprototypeof.as b/test/trace/object-isprototypeof.as new file mode 100644 index 0000000..599366e --- /dev/null +++ b/test/trace/object-isprototypeof.as @@ -0,0 +1,39 @@ +// makeswf -v 7 -r 1 -o test-7.swf test.as + +#include "values.as" + +var o = new Object (); +var empty = new Object (); +ASSetPropFlags (empty, null, 0, 7); +for (var prop in empty) { + empty[prop] = "to-be-deleted"; + delete empty[prop]; +} + +trace (Object.prototype.isPrototypeOf (Object)); +trace (Object.prototype.isPrototypeOf (o)); +trace (Object.isPrototypeOf (o)); + +trace (Object.prototype.isPrototypeOf ()); +trace (Object.prototype.isPrototypeOf (Object, o)); +trace (String.prototype.isPrototypeOf ("test", o)); +trace (String.prototype.isPrototypeOf (o, "test")); + +trace (o.isPrototypeOf (empty)); +empty.prototype = o; +trace (o.isPrototypeOf (empty)); +delete empty.prototype; +empty.__proto__ = o; +trace (o.isPrototypeOf (empty)); + +for (var i = 0; i < values.length; i++) { + trace ("Testing: " + names[i]); + trace (Object.prototype.isPrototypeOf (values[i]) + " " + + String.prototype.isPrototypeOf (values[i]) + " " + + Number.prototype.isPrototypeOf (values[i]) + " " + + Boolean.prototype.isPrototypeOf (values[i]) + " " + + Array.prototype.isPrototypeOf (values[i])); +} + + +loadMovie ("FSCommand:quit", ""); diff-tree 9caf080ddff5b1337674d6fae84e49b6fb5a9d72 (from 894adaeac00bc31c847d85f279d872886a32751e) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Wed Sep 12 21:36:47 2007 +0300 Implement Object's isPrototypeOf method diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c index d6831f2..658336c 100644 --- a/libswfdec/swfdec_as_object.c +++ b/libswfdec/swfdec_as_object.c @@ -1286,6 +1286,46 @@ swfdec_as_object_isPropertyEnumerable (S SWFDEC_AS_VALUE_SET_BOOLEAN (retval, TRUE); } +static SwfdecAsObject * +swfdec_as_object_get_prototype (SwfdecAsObject *object) +{ + SwfdecAsValue val; + + swfdec_as_object_get_variable (object, SWFDEC_AS_STR___proto__, &val); + if (!SWFDEC_AS_VALUE_IS_OBJECT (&val)) + return NULL; + + return SWFDEC_AS_VALUE_GET_OBJECT (&val); +} + +SWFDEC_AS_NATIVE (101, 7, swfdec_as_object_isPrototypeOf) +void +swfdec_as_object_isPrototypeOf (SwfdecAsContext *cx, + SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, + SwfdecAsValue *retval) +{ + SwfdecAsObject *class; + + SWFDEC_AS_VALUE_SET_BOOLEAN (retval, FALSE); + + // return false even if no params + if (argc < 1) + return; + + class = swfdec_as_value_to_object (cx, &argv[0]); + if (class == NULL) + return; + + while ((class = swfdec_as_object_get_prototype (class)) != NULL) { + if (object == class) { + SWFDEC_AS_VALUE_SET_BOOLEAN (retval, TRUE); + return; + } + } + + // not found, nothing to do +} + SWFDEC_AS_NATIVE (101, 0, swfdec_as_object_watch) void swfdec_as_object_watch (SwfdecAsContext *cx, SwfdecAsObject *object, @@ -1419,6 +1459,8 @@ swfdec_as_object_init_context (SwfdecAsC SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_hasOwnProperty, 0); swfdec_as_object_add_function (proto, SWFDEC_AS_STR_isPropertyEnumerable, SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_isPropertyEnumerable, 0); + swfdec_as_object_add_function (proto, SWFDEC_AS_STR_isPrototypeOf, + SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_isPrototypeOf, 0); swfdec_as_object_add_function (proto, SWFDEC_AS_STR_watch, SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_watch, 0); swfdec_as_object_add_function (proto, SWFDEC_AS_STR_unwatch, diff --git a/libswfdec/swfdec_as_strings.c b/libswfdec/swfdec_as_strings.c index ba00073..1beeb46 100644 --- a/libswfdec/swfdec_as_strings.c +++ b/libswfdec/swfdec_as_strings.c @@ -354,6 +354,7 @@ const char swfdec_as_strings[] = SWFDEC_AS_CONSTANT_STRING ("watch") SWFDEC_AS_CONSTANT_STRING ("unwatch") SWFDEC_AS_CONSTANT_STRING ("apply") + SWFDEC_AS_CONSTANT_STRING ("isPrototypeOf") /* add more here */ ; diff-tree 894adaeac00bc31c847d85f279d872886a32751e (from e1c72a42832cf84d1b7c491fefe2879313415805) Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Tue Sep 11 21:38:41 2007 +0300 Rename valueof and tostring to printvalueof and printtostring in values.as To avoid non-determinism with having multiple variables using different case diff --git a/test/trace/values.as b/test/trace/values.as index 25afaea..b7759c7 100644 --- a/test/trace/values.as +++ b/test/trace/values.as @@ -16,14 +16,14 @@ printall.toString = function () { return this; }; -tostring = new Object (); -tostring.toString = function () { +printtostring = new Object (); +printtostring.toString = function () { trace ("toString called with " + arguments); return this; }; -valueof = new Object (); -valueof.valueOf = function () { +printvalueof = new Object (); +printvalueof.valueOf = function () { trace ("valueOf called with " + arguments); return this; }; @@ -36,7 +36,7 @@ values = [ true, false, 0, 1, 0.5, -1, -0.5, Infinity, -Infinity, NaN, "", "0", "-0", "0.0", "1", "Hello World!", "true", "_level0", - this, new Object (), Function, printall, tostring, valueof, nothing ]; + this, new Object (), Function, printall, printtostring, printvalueof, nothing ]; var l = values.length; var v = function () {
Maybe Matching Threads
- 8 commits - libswfdec/swfdec_as_function.c libswfdec/swfdec_as_initialize.as libswfdec/swfdec_as_initialize.h libswfdec/swfdec_as_object.c libswfdec/swfdec_as_strings.c test/trace
- 3 commits - libswfdec/swfdec_as_function.c libswfdec/swfdec_as_initialize.as libswfdec/swfdec_as_initialize.h libswfdec/swfdec_as_object.c
- 36 commits - libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_date.c libswfdec/swfdec_as_initialize.as libswfdec/swfdec_as_initialize.h libswfdec/swfdec_as_strings.c libswfdec/swfdec_flash_security.c
- 4 commits - libswfdec/swfdec_as_boolean.c libswfdec/swfdec_as_boolean.h libswfdec/swfdec_as_context.c libswfdec/swfdec_as_initialize.as libswfdec/swfdec_as_initialize.h libswfdec/swfdec_as_interpret.c test/trace
- 11 commits - libswfdec/swfdec_as_internal.h libswfdec/swfdec_as_object.c libswfdec/swfdec_html_parser.c libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h libswfdec/swfdec_style_sheet.c libswfdec/swfdec_style_sheet.h