Browse Source

* problem with read access to properties solved
* correct handling of hidding methods via virtual (COM)
* correct result type of constructor calls (COM), the resulttype
depends now on the type of the class reference

florian 27 years ago
parent
commit
c2ca131926
6 changed files with 817 additions and 769 deletions
  1. 9 3
      compiler/cgi386.pas
  2. 1 1
      compiler/msgidx.inc
  3. 710 712
      compiler/msgtxt.inc
  4. 13 3
      compiler/pass_1.pas
  5. 10 7
      compiler/todo.txt
  6. 74 43
      compiler/types.pas

+ 9 - 3
compiler/cgi386.pas

@@ -3050,11 +3050,11 @@ implementation
               if (p^.procdefinition^.options and pomethodpointer)<>0 then
                 begin
                    { method pointer can't be in a register }
-                   inc(p^.right^.location.reference^.offset,4);
+                   inc(p^.right^.location.reference.offset,4);
                    { push self pointer }
                    exprasmlist^.concat(new(pai386,op_ref(A_PUSH,S_L,newreference(p^.right^.location.reference))));
                    del_reference(p^.right^.location.reference);
-                   dec(p^.right^.location.reference^.offset,4);
+                   dec(p^.right^.location.reference.offset,4);
                 end;
               case p^.right^.location.loc of
                  LOC_REGISTER,LOC_CREGISTER:
@@ -5725,7 +5725,13 @@ do_jmp:
 end.
 {
   $Log$
-  Revision 1.9  1998-04-10 21:36:55  florian
+  Revision 1.10  1998-04-12 22:39:43  florian
+    * problem with read access to properties solved
+    * correct handling of hidding methods via virtual (COM)
+    * correct result type of constructor calls (COM), the resulttype
+      depends now on the type of the class reference
+
+  Revision 1.9  1998/04/10 21:36:55  florian
     + some stuff to support method pointers (procedure of object) added
       (declaration, parameter handling)
 

+ 1 - 1
compiler/msgidx.inc

@@ -151,7 +151,7 @@ parser_e_only_class_methods_via_class_ref,
 parser_e_only_class_methods,
 parser_e_case_mismatch,
 parser_e_illegal_symbol_exported,
-parser_e_must_use_override,
+parser_w_should_use_override,
 parser_e_nothing_to_be_overridden,
 parser_e_no_procedure_to_access_property,
 parser_e_ill_property_access_sym,

+ 710 - 712
compiler/msgtxt.inc

@@ -1,4 +1,4 @@
-const msgtxt : array[1..13995] of char=(
+const msgtxt : array[1..13961] of char=(
   'I','_','$','1',' ','k','B',' ','f','r','e','e',#000,'L','_',
   '$','1',' ','l','i','n','e','s',' ','$','2',' ','k','B',' ',
   'f','r','e','e',#000,'I','_','$','1',' ','s','t','r','e','a',
@@ -214,721 +214,719 @@ const msgtxt : array[1..13995] of char=(
   ' ','n','o','t',' ','m','a','t','c','h',#000,'E','_','T','h',
   'e',' ','s','y','m','b','o','l',' ','c','a','n',#039,'t',' ',
   'b','e',' ','e','x','p','o','r','t','e','d',' ','f','r','o',
-  'm',' ','a',' ','l','i','b','r','a','r','y',#000,'E','_','A',
-  ' ','v','i','r','t','u','a','l',' ','m','e','t','h','o','d',
-  ' ','m','u','s','t',' ','b','e',' ','o','v','e','r','r','i',
-  'd','d','e','n',' ','u','s','i','n','g',' ','t','h','e',' ',
-  'O','V','E','R','R','I','D','E',' ','d','i','r','e','c','t',
-  'i','v','e',':',' ','$','1',#000,'E','_','T','h','e','r','e',
-  ' ','i','s',' ','n','o',' ','m','e','t','h','o','d',' ','i',
-  'n',' ','a','n',' ','a','n','c','e','s','t','o','r',' ','c',
-  'l','a','s','s',' ','t','o',' ','b','e',' ','o','v','e','r',
-  'r','i','d','d','e','n',':',' ','$','1',#000,'E','_','N','o',
-  ' ','m','e','m','b','e','r',' ','i','s',' ','p','r','o','v',
-  'i','d','e','d',' ','t','o',' ','a','c','c','e','s','s',' ',
-  'p','r','o','p','e','r','t','y',#000,'E','_','I','l','l','e',
-  'g','a','l',' ','s','y','m','b','o','l',' ','f','o','r',' ',
-  'p','r','o','p','e','r','t','y',' ','a','c','c','e','s','s',
-  #000,'E','_','C','a','n','n','o','t',' ','w','r','i','t','e',
-  ' ','a',' ','p','r','o','t','e','c','t','e','d',' ','f','i',
-  'e','l','d',' ','o','f',' ','a','n',' ','o','b','j','e','c',
-  't',#000,'E','_','a','l','l',' ','o','v','e','r','l','o','a',
-  'd','e','d',' ','m','e','t','h','o','d','s',' ','m','u','s',
-  't',' ','b','e',' ','v','i','r','t','u','a','l',' ','i','f',
-  ' ','o','n','e',' ','i','s',' ','v','i','r','t','u','a','l',
-  ':',' ','$','1',#000,'E','_','o','v','e','r','l','o','a','d',
-  'e','d',' ','m','e','t','h','o','d','s',' ','w','h','i','c',
-  'h',' ','a','r','e',' ','v','i','r','t','u','a','l',' ','m',
-  'u','s','t',' ','h','a','v','e',' ','t','h','e',' ','s','a',
-  'm','e',' ','r','e','t','u','r','n',' ','t','y','p','e',':',
-  ' ','$','1',#000,'E','_','E','X','P','O','R','T',' ','d','e',
-  'c','l','a','r','e','d',' ','f','u','n','c','t','i','o','n',
-  's',' ','c','a','n',#039,'t',' ','b','e',' ','n','e','s','t',
-  'e','d',#000,'E','_','m','e','t','h','o','d','s',' ','c','a',
-  'n',#039,'t',' ','b','e',' ','E','X','P','O','R','T','e','d',
-  #000,'E','_','c','a','l','l',' ','b','y',' ','v','a','r',' ',
-  'p','a','r','a','m','e','t','e','r','s',' ','h','a','v','e',
-  ' ','t','o',' ','m','a','t','c','h',' ','e','x','a','c','t',
-  'l','y',#000,'E','_','C','l','a','s','s',' ','i','s','n',#039,
-  't',' ','a',' ','s','u','p','e','r',' ','c','l','a','s','s',
-  ' ','o','f',' ','t','h','e',' ','c','u','r','r','e','n','t',
-  ' ','c','l','a','s','s',#000,'E','_','S','E','L','F',' ','i',
-  's',' ','o','n','l','y',' ','a','l','l','o','w','e','d',' ',
-  'i','n',' ','m','e','t','h','o','d','s',#000,'E','_','m','e',
-  't','h','o','d','s',' ','c','a','n',' ','b','e',' ','o','n',
-  'l','y',' ','i','n',' ','o','t','h','e','r',' ','m','e','t',
-  'h','o','d','s',' ','c','a','l','l','e','d',' ','d','i','r',
-  'e','c','t',' ','w','i','t','h',' ','t','y','p','e',' ','i',
-  'd','e','n','t','i','f','i','e','r',' ','o','f',' ','t','h',
-  'e',' ','c','l','a','s','s',#000,'E','_','I','l','l','e','g',
-  'a','l',' ','u','s','e',' ','o','f',' ',#039,':',#039,#000,'E',
-  '_','r','a','n','g','e',' ','c','h','e','c','k',' ','e','r',
-  'r','o','r',' ','i','n',' ','s','e','t',' ','c','o','n','s',
-  't','r','u','c','t','o','r',' ','o','r',' ','d','u','p','l',
-  'i','c','a','t','e',' ','s','e','t',' ','e','l','e','m','e',
-  'n','t',#000,'E','_','P','o','i','n','t','e','r',' ','t','o',
-  ' ','c','l','a','s','s',' ','e','x','p','e','c','t','e','d',
-  #000,'E','_','E','x','p','r','e','s','s','i','o','n',' ','m',
-  'u','s','t',' ','b','e',' ','c','o','n','s','t','r','u','c',
-  't','o','r',' ','c','a','l','l',#000,'E','_','E','x','p','r',
-  'e','s','s','i','o','n',' ','m','u','s','t',' ','b','e',' ',
-  'd','e','s','t','r','u','c','t','o','r',' ','c','a','l','l',
-  #000,'E','_','T','y','p','e',' ','c','o','n','f','l','i','c',
-  't',' ','b','e','t','w','e','e','n',' ','s','e','t',' ','e',
-  'l','e','m','e','n','t','s',#000,'W','_','T','h','e',' ','o',
-  'p','e','r','a','t','o','r',' ','/',' ','i','s','n',#039,'t',
-  ' ','d','e','f','i','n','e','d',' ','f','o','r',' ','i','n',
-  't','e','g','e','r',',',' ','t','h','e',' ','r','e','s','u',
-  'l','t',' ','w','i','l','l',' ','b','e',' ','r','e','a','l',
-  ',',' ','u','s','e',' ','D','I','V',' ','i','n','s','t','e',
-  'a','d',#000,'E','_','I','l','l','e','g','a','l',' ','o','r',
-  'd','e','r',' ','o','f',' ','r','e','c','o','r','d',' ','e',
-  'l','e','m','e','n','t','s',#000,'E','_','E','x','p','r','e',
-  's','s','i','o','n',' ','t','y','p','e',' ','m','u','s','t',
-  ' ','b','y',' ','c','l','a','s','s',' ','o','r',' ','r','e',
-  'c','o','r','d',' ','t','y','p','e',#000,'E','_','F','u','n',
-  'c','t','i','o','n','s',' ','w','i','t','h',' ','v','o','i',
-  'd',' ','r','e','t','u','r','n',' ','v','a','l','u','e',' ',
-  'c','a','n',#039,'t',' ','r','e','t','u','r','n',' ','a','n',
-  'y',' ','v','a','l','u','e',#000,'E','_','c','o','n','s','t',
-  'r','u','c','t','o','r','s',' ','a','n','d',' ','d','e','s',
-  't','r','u','c','t','o','r','s',' ','m','u','s','t',' ','b',
-  'e',' ','m','e','t','h','o','d','s',#000,'W','_','A','u','t',
-  'o','m','a','t','i','c',' ','t','y','p','e',' ','c','o','n',
-  'v','e','r','s','i','o','n',' ','f','r','o','m',' ','f','l',
-  'o','a','t','i','n','g',' ','t','y','p','e',' ','t','o',' ',
-  'C','O','M','P',' ','w','h','i','c','h',' ','i','s',' ','a',
-  'n',' ','i','n','t','e','g','e','r',' ','t','y','p','e',#000,
-  'E','_','O','p','e','r','a','t','o','r',' ','i','s',' ','n',
-  'o','t',' ','o','v','e','r','l','o','a','d','e','d',#000,'E',
-  '_','V','a','r','i','a','b','l','e',' ','o','r',' ','t','y',
-  'p','e',' ','i','n','d','e','n','t','i','f','i','e','r',' ',
-  'e','x','p','e','c','t','e','d',#000,'E','_','R','e','-','r',
-  'a','i','s','e',' ','i','s','n',#039,'t',' ','p','o','s','s',
-  'i','b','l','e',' ','t','h','e','r','e',#000,'E','_','T','h',
-  'e',' ','e','x','t','e','n','d','e','d',' ','s','y','n','t',
-  'a','x',' ','o','f',' ','n','e','w',' ','o','r',' ','d','i',
-  's','p','o','s','e',' ','i','s','n',#039,'t',' ','a','l','l',
-  'o','w','e','d',' ','f','o','r',' ','a',' ','c','l','a','s',
-  's',#000,'E','_','A','s','s','e','m','b','l','e','r',' ','i',
-  'n','c','o','m','p','a','t','i','b','l','e',' ','w','i','t',
-  'h',' ','f','u','n','c','t','i','o','n',' ','r','e','t','u',
-  'r','n',' ','v','a','l','u','e',#000,'E','_','P','r','o','c',
-  'e','d','u','r','e',' ','o','v','e','r','l','o','a','d','i',
-  'n','g',' ','i','s',' ','s','w','i','t','c','h','e','d',' ',
-  'o','f','f',#000,'E','_','I','t',' ','i','s',' ','n','o','t',
-  ' ','p','o','s','s','i','b','l','e',' ','t','o',' ','o','v',
-  'e','r','l','o','a','d',' ','t','h','i','s',' ','o','p','e',
-  'r','a','t','o','r',' ','(','o','v','e','r','l','o','a','d',
-  ' ','=',' ','i','n','s','t','e','a','d',')',#000,'E','_','C',
-  'o','m','p','a','r','a','t','i','v','e',' ','o','p','e','r',
-  'a','t','o','r',' ','m','u','s','t',' ','r','e','t','u','r',
-  'n',' ','a',' ','b','o','o','l','e','a','n',' ','v','a','l',
-  'u','e',#000,'E','_','O','n','l','y',' ','v','i','r','t','u',
-  'a','l',' ','m','e','t','h','o','d','s',' ','c','a','n',' ',
-  'b','e',' ','a','b','s','t','r','a','c','t',#000,'F','_','U',
-  's','e',' ','o','f',' ','u','n','s','u','p','p','o','r','t',
-  'e','d',' ','f','e','a','t','u','r','e','!',#000,'E','_','T',
-  'h','e',' ','m','i','x',' ','o','f',' ','C','L','A','S','S',
-  'E','S',' ','a','n','d',' ','O','B','J','E','C','T','S',' ',
-  'i','s','n',#039,'t',' ','a','l','l','o','w','e','d',#000,'W',
-  '_','U','n','k','n','o','w','n',' ','p','r','o','c','e','d',
-  'u','r','e',' ','d','i','r','e','c','t','i','v','e',' ','h',
-  'a','d',' ','t','o',' ','b','e',' ','i','g','n','o','r','e',
-  'd',':',' ','$','1',#000,'E','_','a','b','s','o','l','u','t',
-  'e',' ','c','a','n',' ','o','n','l','y',' ','b','e',' ','a',
-  's','s','o','c','i','a','t','e','d',' ','t','o',' ','O','N',
-  'E',' ','v','a','r','i','a','b','l','e',#000,'E','_','a','b',
-  's','o','l','u','t','e',' ','c','a','n',' ','o','n','l','y',
-  ' ','b','e',' ','a','s','s','o','c','i','a','t','e','d',' ',
-  'a',' ','v','a','r',' ','o','r',' ','c','o','n','s','t',#000,
-  'E','_','A','b','t','r','a','c','t',' ','m','e','t','h','o',
-  'd','s',' ','s','h','o','u','l','d','n',#039,'t',' ','h','a',
-  'v','e',' ','a','n','y',' ','d','e','f','i','n','i','t','i',
-  'o','n',' ','(','w','i','t','h',' ','f','u','n','c','t','i',
-  'o','n',' ','b','o','d','y',')',#000,'E','_','T','h','i','s',
-  ' ','o','v','e','r','l','o','a','d','e','d',' ','f','u','n',
-  'c','t','i','o','n',' ','c','a','n',#039,'t',' ','b','e',' ',
-  'l','o','c','a','l',' ','(','m','u','s','t',' ','b','e',' ',
-  'e','x','p','o','r','t','e','d',')',#000,'E','_','s','u','c',
-  'c',' ','o','r',' ','p','r','e','d',' ','o','n',' ','e','n',
-  'u','m','s',' ','w','i','t','h',' ','a','s','s','i','g','n',
-  'm','e','n','t','s',' ','n','o','t',' ','p','o','s','s','i',
-  'b','l','e',#000,'W','_','V','i','r','t','u','a','l',' ','m',
-  'e','t','h','o','d','s',' ','a','r','e',' ','u','s','e','d',
-  ' ','w','i','t','h','o','u','t',' ','a',' ','c','o','n','s',
-  't','r','u','c','t','o','r',#000,'M','_','M','a','c','r','o',
-  ' ','d','e','f','i','n','e','d',':',' ','$','1',#000,'M','_',
-  'M','a','c','r','o',' ','u','n','d','e','f','i','n','e','d',
-  ':',' ','$','1',#000,'M','_','M','a','c','r','o',' ','$','1',
-  ' ','s','e','t',' ','t','o',' ','$','2',#000,'I','_','C','o',
-  'm','p','i','l','i','n','g',' ','$','1',#000,'D','_','C','o',
-  'm','p','i','l','i','n','g',' ','$','1',' ','f','o','r',' ',
-  't','h','e',' ','s','e','c','o','n','d',' ','t','i','m','e',
-  #000,'E','_','A','r','r','a','y',' ','p','r','o','p','e','r',
-  't','i','e','s',' ','a','r','e','n',#039,'t',' ','a','l','l',
-  'o','w','e','d',' ','a','t',' ','t','h','i','s',' ','p','o',
-  'i','n','t',#000,'E','_','N','o',' ','p','r','o','p','e','r',
-  't','y',' ','f','o','u','n','d',' ','t','o',' ','o','v','e',
-  'r','r','i','d','e',#000,'E','_','O','n','l','y',' ','o','n',
-  'e',' ','d','e','f','a','u','l','t',' ','p','r','o','p','e',
-  'r','t','y',' ','i','s',' ','a','l','l','o','w','e','d',',',
-  ' ','f','o','u','n','d',' ','i','n','h','e','r','i','t','e',
-  'd',' ','d','e','f','a','u','l','t',' ','p','r','o','p','e',
-  'r','t','y',' ','i','n',' ','c','l','a','s','s',' ','%','1',
-  #000,'E','_','T','h','e',' ','d','e','f','a','u','l','t',' ',
-  'p','r','o','p','e','r','t','y',' ','m','u','s','t',' ','b',
-  'e',' ','a','n',' ','a','r','r','a','y',' ','p','r','o','p',
-  'e','r','t','y',#000,'E','_','V','i','r','t','u','a','l',' ',
-  'c','o','n','s','t','r','u','c','t','o','r','s',' ','a','r',
-  'e',' ','o','n','l','y',' ','s','u','p','p','o','r','t','e',
-  'd',' ','i','n',' ','c','l','a','s','s',' ','o','b','j','e',
-  'c','t',' ','m','o','d','e','l',#000,'E','_','N','o',' ','d',
-  'e','f','a','u','l','t',' ','p','r','o','p','e','r','t','y',
-  ' ','a','v','a','i','l','a','b','l','e',#000,'N','_','L','o',
-  'c','a','l',' ','v','a','r','i','a','b','l','e',' ','$','1',
-  ' ','d','o','e','s','n',#039,'t',' ','s','e','e','m',' ','t',
-  'o',' ','b','e',' ','i','n','i','t','i','a','l','i','z','e',
-  'd',' ','y','e','t',' ','!',#000,'E','_','I','d','e','n','t',
-  'i','f','i','e','r',' ','n','o','t',' ','f','o','u','n','d',
-  ' ','$','1',#000,'F','_','I','n','t','e','r','n','a','l',' ',
-  'E','r','r','o','r',' ','i','n',' ','S','y','m','T','a','b',
-  'l','e','S','t','a','c','k','(',')',#000,'E','_','D','u','p',
-  'l','i','c','a','t','e',' ','i','d','e','n','t','i','f','i',
-  'e','r',' ','$','1',#000,'E','_','U','n','k','n','o','w','n',
-  ' ','i','d','e','n','t','i','f','i','e','r',' ','$','1',#000,
-  'E','_','F','o','r','w','a','r','d',' ','d','e','c','l','a',
-  'r','a','t','i','o','n',' ','n','o','t',' ','s','o','l','v',
-  'e','d',':',' ','$','1',#000,'F','_','I','d','e','n','t','i',
-  'f','i','e','r',' ','t','y','p','e',' ','a','l','r','e','a',
-  'd','y',' ','d','e','f','i','n','e','d',' ','a','s',' ','t',
-  'y','p','e',#000,'E','_','T','y','p','e',' ','i','d','e','n',
-  't','i','f','i','e','r',' ','e','x','p','e','c','t','e','d',
-  #000,'E','_','T','y','p','e',' ','m','i','s','m','a','t','c',
-  'h',#000,'E','_','E','r','r','o','r',' ','i','n',' ','t','y',
-  'p','e',' ','d','e','f','e','n','i','t','i','o','n',#000,'E',
-  '_','T','y','p','e',' ','i','d','e','n','t','i','f','i','e',
-  'r',' ','n','o','t',' ','d','e','f','i','n','e','d',#000,'E',
-  '_','O','n','l','y',' ','s','t','a','t','i','c',' ','v','a',
-  'r','i','a','b','l','e','s',' ','c','a','n',' ','b','e',' ',
-  'u','s','e','d',' ','i','n',' ','s','t','a','t','i','c',' ',
-  'm','e','t','h','o','d','s',' ','o','r',' ','o','u','t','s',
-  'i','d','e',' ','m','e','t','h','o','d','s',#000,'E','_','I',
-  'n','v','a','l','i','d',' ','c','a','l','l',' ','t','o',' ',
-  't','v','a','r','s','y','m','.','m','a','n','g','l','e','d',
-  'n','a','m','e','(',')',#000,'F','_','r','e','c','o','r','d',
-  ' ','o','r',' ','c','l','a','s','s',' ','t','y','p','e',' ',
-  'e','x','p','e','c','t','e','d',#000,'E','_','T','o',' ','g',
-  'e','n','e','r','a','t','e',' ','a','n',' ','i','n','s','t',
-  'a','n','c','e',' ','o','f',' ','a',' ','c','l','a','s','s',
-  ' ','o','r',' ','a','n',' ','o','b','j','e','c','t',' ','w',
-  'i','t','h',' ','a','n',' ','a','b','t','r','a','c','t',' ',
-  'm','e','t','h','o','d',' ','i','s','n',#039,'t',' ','a','l',
-  'l','o','w','e','d',#000,'E','_','L','a','b','e','l',' ','n',
-  'o','t',' ','d','e','f','i','n','e','d',' ','$','1',#000,'E',
-  '_','I','l','l','e','g','a','l',' ','l','a','b','e','l',' ',
-  'd','e','c','l','a','r','a','t','i','o','n',#000,'E','_','G',
-  'O','T','O',' ','u','n','d',' ','L','A','B','E','L',' ','a',
-  'r','e',' ','n','o','t',' ','s','u','p','p','o','r','t','e',
-  'd',' ','(','u','s','e',' ','c','o','m','m','a','n','d',' ',
-  'l','i','n','e',' ','s','w','i','t','c','h',' ','-','S','g',
-  ')',#000,'E','_','L','a','b','e','l',' ','n','o','t',' ','f',
-  'o','u','n','d',#000,'E','_','i','d','e','n','t','i','f','i',
-  'e','r',' ','i','s','n',#039,'t',' ','a',' ','l','a','b','e',
-  'l',#000,'E','_','l','a','b','e','l',' ','a','l','r','e','a',
-  'd','y',' ','d','e','f','i','n','e','d',#000,'E','_','i','l',
-  'l','e','g','a','l',' ','t','y','p','e',' ','d','e','c','l',
-  'a','r','a','t','i','o','n',' ','o','f',' ','s','e','t',' ',
-  'e','l','e','m','e','n','t','s',#000,'E','_','F','o','r','w',
-  'a','r','d',' ','c','l','a','s','s',' ','d','e','f','i','n',
-  'i','t','i','o','n',' ','n','o','t',' ','r','e','s','o','l',
-  'v','e','d',' ','$','1',#000,'H','_','I','d','e','n','t','i',
-  'f','i','e','r',' ','n','o','t',' ','u','s','e','d',' ','$',
-  '1',',',' ','d','e','c','l','a','r','e','d',' ','i','n',' ',
-  'l','i','n','e',' ','$','2',#000,'E','_','S','e','t',' ','e',
-  'l','e','m','e','n','t','s',' ','a','r','e',' ','n','o','t',
-  ' ','c','o','m','p','a','t','i','b','l','e',#000,'E','_','S',
-  'e','t',' ','t','y','p','e',' ','e','x','p','e','c','t','e',
-  'd',#000,'W','_','F','u','n','c','t','i','o','n',' ','r','e',
-  's','u','l','t',' ','d','o','e','s',' ','n','o','t',' ','s',
-  'e','e','m',' ','t','o',' ','b','e',' ','s','e','t',#000,'E',
-  '_','U','n','k','n','o','w','n',' ','f','i','e','l','d',' ',
-  'i','d','e','n','t','i','f','i','e','r',#000,'N','_','L','o',
-  'c','a','l',' ','v','a','r','i','a','b','l','e',' ','d','o',
-  'e','s',' ','n','o','t',' ','s','e','e','m',' ','t','o',' ',
-  'b','e',' ','i','n','i','t','i','a','l','i','z','e','d',':',
-  ' ','$','1',#000,'E','_','i','d','e','n','t','i','f','i','e',
-  'r',' ','i','d','e','n','t','s',' ','n','o',' ','m','e','m',
-  'b','e','r',#000,'E','_','B','R','E','A','K',' ','n','o','t',
-  ' ','a','l','l','o','w','e','d',#000,'E','_','C','O','N','T',
-  'I','N','U','E',' ','n','o','t',' ','a','l','l','o','w','e',
-  'd',#000,'E','_','E','x','p','r','e','s','s','i','o','n',' ',
-  't','o','o',' ','c','o','m','p','l','i','c','a','t','e','d',
-  ' ','-',' ','F','P','U',' ','s','t','a','c','k',' ','o','v',
-  'e','r','f','l','o','w',#000,'E','_','I','l','l','e','g','a',
-  'l',' ','e','x','p','r','e','s','s','i','o','n',#000,'E','_',
-  'I','n','v','a','l','i','d',' ','i','n','t','e','g','e','r',
-  #000,'E','_','I','l','l','e','g','a','l',' ','q','u','a','l',
-  'i','f','i','e','r',#000,'E','_','H','i','g','h',' ','r','a',
-  'n','g','e',' ','l','i','m','i','t',' ','<',' ','l','o','w',
-  ' ','r','a','n','g','e',' ','l','i','m','i','t',#000,'E','_',
-  'I','l','l','e','g','a','l',' ','c','o','u','n','t','e','r',
-  ' ','v','a','r','i','a','b','l','e',#000,'E','_','C','a','n',
-  #039,'t',' ','d','e','t','e','r','m','i','n','e',' ','w','h',
-  'i','c','h',' ','o','v','e','r','l','o','a','d','e','d',' ',
-  'f','u','n','c','t','i','o','n',' ','t','o',' ','c','a','l',
-  'l',#000,'E','_','P','a','r','a','m','e','t','e','r',' ','l',
-  'i','s','t',' ','s','i','z','e',' ','e','x','c','e','e','d',
-  's',' ','6','5','5','3','5',' ','b','y','t','e','s',#000,'E',
-  '_','I','l','l','e','g','a','l',' ','t','y','p','e',' ','c',
-  'o','n','v','e','r','s','i','o','n',#000,'E','_','F','i','l',
-  'e',' ','t','y','p','e','s',' ','m','u','s','t',' ','b','e',
-  ' ','v','a','r',' ','p','a','r','a','m','e','t','e','r','s',
-  #000,'E','_','T','h','e',' ','u','s','e',' ','o','f',' ','a',
-  ' ','f','a','r',' ','p','o','i','n','t','e','r',' ','i','s',
-  'n',#039,'t',' ','a','l','l','o','w','e','d',' ','t','h','e',
-  'r','e',#000,'E','_','i','l','l','e','g','a','l',' ','c','a',
-  'l','l',' ','b','y',' ','r','e','f','e','r','e','n','c','e',
-  ' ','p','a','r','a','m','e','t','e','r','s',#000,'E','_','E',
-  'X','P','O','R','T',' ','d','e','c','l','a','r','e','d',' ',
-  'f','u','n','c','t','i','o','n','s',' ','c','a','n',#039,'t',
-  ' ','b','e',' ','c','a','l','l','e','d',#000,'W','_','P','o',
-  's','s','i','b','l','e',' ','i','l','l','e','g','a','l',' ',
-  'c','a','l','l',' ','o','f',' ','c','o','n','s','t','r','u',
-  'c','t','o','r',' ','o','r',' ','d','e','s','t','r','u','c',
-  't','o','r',' ','(','d','o','e','s','n',#039,'t',' ','m','a',
-  't','c','h',' ','t','o',' ','t','h','i','s',' ','c','o','n',
-  't','e','x','t',')',#000,'N','_','I','n','e','f','f','i','c',
-  'i','e','n','t',' ','c','o','d','e',#000,'W','_','u','n','r',
-  'e','a','c','h','a','b','l','e',' ','c','o','d','e',#000,'E',
-  '_','p','r','o','c','e','d','u','r','e',' ','c','a','l','l',
-  ' ','w','i','t','h',' ','s','t','a','c','k','f','r','a','m',
-  'e',' ','E','S','P','/','S','P',#000,'E','_','A','b','s','t',
-  'r','a','c','t',' ','m','e','t','h','o','d','s',' ','c','a',
-  'n',#039,'t',' ','b','e',' ','c','a','l','l','e','d',' ','d',
-  'i','r','e','c','t','l','y',#000,'F','_','I','n','t','e','r',
-  'n','a','l',' ','E','r','r','o','r',' ','i','n',' ','g','e',
-  't','f','l','o','a','t','r','e','g','(',')',',',' ','a','l',
-  'l','o','c','a','t','i','o','n',' ','f','a','i','l','u','r',
-  'e',#000,'F','_','U','n','k','n','o','w','n',' ','f','l','o',
-  'a','t',' ','t','y','p','e',#000,'F','_','S','e','c','o','n',
-  'd','V','e','c','n','(',')',' ','b','a','s','e',' ','d','e',
-  'f','i','n','e','d',' ','t','w','i','c','e',#000,'F','_','E',
-  'x','t','e','n','d','e','d',' ','c','g','6','8','k',' ','n',
-  'o','t',' ','s','u','p','p','o','r','t','e','d',#000,'F','_',
-  '3','2','-','b','i','t',' ','u','n','s','i','g','n','e','d',
-  ' ','n','o','t',' ','s','u','p','p','o','r','t','e','d',' ',
-  'i','n',' ','M','C','6','8','0','0','0',' ','m','o','d','e',
-  #000,'F','_','I','n','t','e','r','n','a','l',' ','E','r','r',
-  'o','r',' ','i','n',' ','s','e','c','o','n','d','i','n','l',
-  'i','n','e','(',')',#000,'D','_','R','e','g','i','s','t','e',
-  'r',' ','$','1',' ','w','e','i','g','h','t',' ','$','2',' ',
-  '$','3',#000,'E','_','S','t','a','c','k',' ','l','i','m','i',
-  't',' ','e','x','c','e','d','e','e','d',' ','i','n',' ','l',
-  'o','c','a','l',' ','r','o','u','t','i','n','e',#000,'D','_',
-  'S','t','a','c','k',' ','f','r','a','m','e',' ','i','s',' ',
-  'o','m','i','t','e','d',#000,'F','_','D','i','v','i','d','e',
-  ' ','b','y',' ','z','e','r','o',' ','i','n',' ','a','s','m',
-  ' ','e','v','a','l','u','a','t','o','r',#000,'F','_','E','v',
-  'a','l','u','a','t','o','r',' ','s','t','a','c','k',' ','o',
-  'v','e','r','f','l','o','w',#000,'F','_','E','v','a','l','u',
-  'a','t','o','r',' ','s','t','a','c','k',' ','u','n','d','e',
-  'r','f','l','o','w',#000,'F','_','I','n','v','a','l','i','d',
-  ' ','n','u','m','e','r','i','c',' ','f','o','r','m','a','t',
-  ' ','i','n',' ','a','s','m',' ','e','v','a','l','u','a','t',
-  'o','r',#000,'F','_','I','n','v','a','l','i','d',' ','O','p',
-  'e','r','a','t','o','r',' ','i','n',' ','a','s','m',' ','e',
-  'v','a','l','u','a','t','o','r',#000,'F','_','U','n','k','n',
-  'o','w','n',' ','e','r','r','o','r',' ','i','n',' ','a','s',
-  'm',' ','e','v','a','l','u','a','t','o','r',#000,'W','_','I',
-  'n','v','a','l','i','d',' ','n','u','m','e','r','i','c',' ',
-  'v','a','l','u','e',#000,'E','_','e','s','c','a','p','e',' ',
-  's','e','q','u','e','n','c','e',' ','i','g','n','o','r','e',
-  'd',':',' ','$','1',#000,'E','_','A','s','m',' ','s','y','n',
-  't','a','x',' ','e','r','r','o','r',' ','-',' ','P','r','e',
-  'f','i','x',' ','n','o','t',' ','f','o','u','n','d',#000,'E',
-  '_','A','s','m',' ','s','y','n','t','a','x',' ','e','r','r',
-  'o','r',' ','-',' ','T','r','y','i','n','g',' ','t','o',' ',
-  'a','d','d',' ','m','o','r','e',' ','t','h','a','n',' ','o',
-  'n','e',' ','p','r','e','f','i','x',#000,'E','_','A','s','m',
+  'm',' ','a',' ','l','i','b','r','a','r','y',#000,'W','_','A',
+  ' ','i','n','h','e','r','i','t','e','d',' ','m','e','t','h',
+  'o','d',' ','i','s',' ','h','i','d','d','e','n',' ','b','y',
+  ' ','$','1',#000,'E','_','T','h','e','r','e',' ','i','s',' ',
+  'n','o',' ','m','e','t','h','o','d',' ','i','n',' ','a','n',
+  ' ','a','n','c','e','s','t','o','r',' ','c','l','a','s','s',
+  ' ','t','o',' ','b','e',' ','o','v','e','r','r','i','d','d',
+  'e','n',':',' ','$','1',#000,'E','_','N','o',' ','m','e','m',
+  'b','e','r',' ','i','s',' ','p','r','o','v','i','d','e','d',
+  ' ','t','o',' ','a','c','c','e','s','s',' ','p','r','o','p',
+  'e','r','t','y',#000,'E','_','I','l','l','e','g','a','l',' ',
+  's','y','m','b','o','l',' ','f','o','r',' ','p','r','o','p',
+  'e','r','t','y',' ','a','c','c','e','s','s',#000,'E','_','C',
+  'a','n','n','o','t',' ','w','r','i','t','e',' ','a',' ','p',
+  'r','o','t','e','c','t','e','d',' ','f','i','e','l','d',' ',
+  'o','f',' ','a','n',' ','o','b','j','e','c','t',#000,'E','_',
+  'a','l','l',' ','o','v','e','r','l','o','a','d','e','d',' ',
+  'm','e','t','h','o','d','s',' ','m','u','s','t',' ','b','e',
+  ' ','v','i','r','t','u','a','l',' ','i','f',' ','o','n','e',
+  ' ','i','s',' ','v','i','r','t','u','a','l',':',' ','$','1',
+  #000,'E','_','o','v','e','r','l','o','a','d','e','d',' ','m',
+  'e','t','h','o','d','s',' ','w','h','i','c','h',' ','a','r',
+  'e',' ','v','i','r','t','u','a','l',' ','m','u','s','t',' ',
+  'h','a','v','e',' ','t','h','e',' ','s','a','m','e',' ','r',
+  'e','t','u','r','n',' ','t','y','p','e',':',' ','$','1',#000,
+  'E','_','E','X','P','O','R','T',' ','d','e','c','l','a','r',
+  'e','d',' ','f','u','n','c','t','i','o','n','s',' ','c','a',
+  'n',#039,'t',' ','b','e',' ','n','e','s','t','e','d',#000,'E',
+  '_','m','e','t','h','o','d','s',' ','c','a','n',#039,'t',' ',
+  'b','e',' ','E','X','P','O','R','T','e','d',#000,'E','_','c',
+  'a','l','l',' ','b','y',' ','v','a','r',' ','p','a','r','a',
+  'm','e','t','e','r','s',' ','h','a','v','e',' ','t','o',' ',
+  'm','a','t','c','h',' ','e','x','a','c','t','l','y',#000,'E',
+  '_','C','l','a','s','s',' ','i','s','n',#039,'t',' ','a',' ',
+  's','u','p','e','r',' ','c','l','a','s','s',' ','o','f',' ',
+  't','h','e',' ','c','u','r','r','e','n','t',' ','c','l','a',
+  's','s',#000,'E','_','S','E','L','F',' ','i','s',' ','o','n',
+  'l','y',' ','a','l','l','o','w','e','d',' ','i','n',' ','m',
+  'e','t','h','o','d','s',#000,'E','_','m','e','t','h','o','d',
+  's',' ','c','a','n',' ','b','e',' ','o','n','l','y',' ','i',
+  'n',' ','o','t','h','e','r',' ','m','e','t','h','o','d','s',
+  ' ','c','a','l','l','e','d',' ','d','i','r','e','c','t',' ',
+  'w','i','t','h',' ','t','y','p','e',' ','i','d','e','n','t',
+  'i','f','i','e','r',' ','o','f',' ','t','h','e',' ','c','l',
+  'a','s','s',#000,'E','_','I','l','l','e','g','a','l',' ','u',
+  's','e',' ','o','f',' ',#039,':',#039,#000,'E','_','r','a','n',
+  'g','e',' ','c','h','e','c','k',' ','e','r','r','o','r',' ',
+  'i','n',' ','s','e','t',' ','c','o','n','s','t','r','u','c',
+  't','o','r',' ','o','r',' ','d','u','p','l','i','c','a','t',
+  'e',' ','s','e','t',' ','e','l','e','m','e','n','t',#000,'E',
+  '_','P','o','i','n','t','e','r',' ','t','o',' ','c','l','a',
+  's','s',' ','e','x','p','e','c','t','e','d',#000,'E','_','E',
+  'x','p','r','e','s','s','i','o','n',' ','m','u','s','t',' ',
+  'b','e',' ','c','o','n','s','t','r','u','c','t','o','r',' ',
+  'c','a','l','l',#000,'E','_','E','x','p','r','e','s','s','i',
+  'o','n',' ','m','u','s','t',' ','b','e',' ','d','e','s','t',
+  'r','u','c','t','o','r',' ','c','a','l','l',#000,'E','_','T',
+  'y','p','e',' ','c','o','n','f','l','i','c','t',' ','b','e',
+  't','w','e','e','n',' ','s','e','t',' ','e','l','e','m','e',
+  'n','t','s',#000,'W','_','T','h','e',' ','o','p','e','r','a',
+  't','o','r',' ','/',' ','i','s','n',#039,'t',' ','d','e','f',
+  'i','n','e','d',' ','f','o','r',' ','i','n','t','e','g','e',
+  'r',',',' ','t','h','e',' ','r','e','s','u','l','t',' ','w',
+  'i','l','l',' ','b','e',' ','r','e','a','l',',',' ','u','s',
+  'e',' ','D','I','V',' ','i','n','s','t','e','a','d',#000,'E',
+  '_','I','l','l','e','g','a','l',' ','o','r','d','e','r',' ',
+  'o','f',' ','r','e','c','o','r','d',' ','e','l','e','m','e',
+  'n','t','s',#000,'E','_','E','x','p','r','e','s','s','i','o',
+  'n',' ','t','y','p','e',' ','m','u','s','t',' ','b','y',' ',
+  'c','l','a','s','s',' ','o','r',' ','r','e','c','o','r','d',
+  ' ','t','y','p','e',#000,'E','_','F','u','n','c','t','i','o',
+  'n','s',' ','w','i','t','h',' ','v','o','i','d',' ','r','e',
+  't','u','r','n',' ','v','a','l','u','e',' ','c','a','n',#039,
+  't',' ','r','e','t','u','r','n',' ','a','n','y',' ','v','a',
+  'l','u','e',#000,'E','_','c','o','n','s','t','r','u','c','t',
+  'o','r','s',' ','a','n','d',' ','d','e','s','t','r','u','c',
+  't','o','r','s',' ','m','u','s','t',' ','b','e',' ','m','e',
+  't','h','o','d','s',#000,'W','_','A','u','t','o','m','a','t',
+  'i','c',' ','t','y','p','e',' ','c','o','n','v','e','r','s',
+  'i','o','n',' ','f','r','o','m',' ','f','l','o','a','t','i',
+  'n','g',' ','t','y','p','e',' ','t','o',' ','C','O','M','P',
+  ' ','w','h','i','c','h',' ','i','s',' ','a','n',' ','i','n',
+  't','e','g','e','r',' ','t','y','p','e',#000,'E','_','O','p',
+  'e','r','a','t','o','r',' ','i','s',' ','n','o','t',' ','o',
+  'v','e','r','l','o','a','d','e','d',#000,'E','_','V','a','r',
+  'i','a','b','l','e',' ','o','r',' ','t','y','p','e',' ','i',
+  'n','d','e','n','t','i','f','i','e','r',' ','e','x','p','e',
+  'c','t','e','d',#000,'E','_','R','e','-','r','a','i','s','e',
+  ' ','i','s','n',#039,'t',' ','p','o','s','s','i','b','l','e',
+  ' ','t','h','e','r','e',#000,'E','_','T','h','e',' ','e','x',
+  't','e','n','d','e','d',' ','s','y','n','t','a','x',' ','o',
+  'f',' ','n','e','w',' ','o','r',' ','d','i','s','p','o','s',
+  'e',' ','i','s','n',#039,'t',' ','a','l','l','o','w','e','d',
+  ' ','f','o','r',' ','a',' ','c','l','a','s','s',#000,'E','_',
+  'A','s','s','e','m','b','l','e','r',' ','i','n','c','o','m',
+  'p','a','t','i','b','l','e',' ','w','i','t','h',' ','f','u',
+  'n','c','t','i','o','n',' ','r','e','t','u','r','n',' ','v',
+  'a','l','u','e',#000,'E','_','P','r','o','c','e','d','u','r',
+  'e',' ','o','v','e','r','l','o','a','d','i','n','g',' ','i',
+  's',' ','s','w','i','t','c','h','e','d',' ','o','f','f',#000,
+  'E','_','I','t',' ','i','s',' ','n','o','t',' ','p','o','s',
+  's','i','b','l','e',' ','t','o',' ','o','v','e','r','l','o',
+  'a','d',' ','t','h','i','s',' ','o','p','e','r','a','t','o',
+  'r',' ','(','o','v','e','r','l','o','a','d',' ','=',' ','i',
+  'n','s','t','e','a','d',')',#000,'E','_','C','o','m','p','a',
+  'r','a','t','i','v','e',' ','o','p','e','r','a','t','o','r',
+  ' ','m','u','s','t',' ','r','e','t','u','r','n',' ','a',' ',
+  'b','o','o','l','e','a','n',' ','v','a','l','u','e',#000,'E',
+  '_','O','n','l','y',' ','v','i','r','t','u','a','l',' ','m',
+  'e','t','h','o','d','s',' ','c','a','n',' ','b','e',' ','a',
+  'b','s','t','r','a','c','t',#000,'F','_','U','s','e',' ','o',
+  'f',' ','u','n','s','u','p','p','o','r','t','e','d',' ','f',
+  'e','a','t','u','r','e','!',#000,'E','_','T','h','e',' ','m',
+  'i','x',' ','o','f',' ','C','L','A','S','S','E','S',' ','a',
+  'n','d',' ','O','B','J','E','C','T','S',' ','i','s','n',#039,
+  't',' ','a','l','l','o','w','e','d',#000,'W','_','U','n','k',
+  'n','o','w','n',' ','p','r','o','c','e','d','u','r','e',' ',
+  'd','i','r','e','c','t','i','v','e',' ','h','a','d',' ','t',
+  'o',' ','b','e',' ','i','g','n','o','r','e','d',':',' ','$',
+  '1',#000,'E','_','a','b','s','o','l','u','t','e',' ','c','a',
+  'n',' ','o','n','l','y',' ','b','e',' ','a','s','s','o','c',
+  'i','a','t','e','d',' ','t','o',' ','O','N','E',' ','v','a',
+  'r','i','a','b','l','e',#000,'E','_','a','b','s','o','l','u',
+  't','e',' ','c','a','n',' ','o','n','l','y',' ','b','e',' ',
+  'a','s','s','o','c','i','a','t','e','d',' ','a',' ','v','a',
+  'r',' ','o','r',' ','c','o','n','s','t',#000,'E','_','A','b',
+  't','r','a','c','t',' ','m','e','t','h','o','d','s',' ','s',
+  'h','o','u','l','d','n',#039,'t',' ','h','a','v','e',' ','a',
+  'n','y',' ','d','e','f','i','n','i','t','i','o','n',' ','(',
+  'w','i','t','h',' ','f','u','n','c','t','i','o','n',' ','b',
+  'o','d','y',')',#000,'E','_','T','h','i','s',' ','o','v','e',
+  'r','l','o','a','d','e','d',' ','f','u','n','c','t','i','o',
+  'n',' ','c','a','n',#039,'t',' ','b','e',' ','l','o','c','a',
+  'l',' ','(','m','u','s','t',' ','b','e',' ','e','x','p','o',
+  'r','t','e','d',')',#000,'E','_','s','u','c','c',' ','o','r',
+  ' ','p','r','e','d',' ','o','n',' ','e','n','u','m','s',' ',
+  'w','i','t','h',' ','a','s','s','i','g','n','m','e','n','t',
+  's',' ','n','o','t',' ','p','o','s','s','i','b','l','e',#000,
+  'W','_','V','i','r','t','u','a','l',' ','m','e','t','h','o',
+  'd','s',' ','a','r','e',' ','u','s','e','d',' ','w','i','t',
+  'h','o','u','t',' ','a',' ','c','o','n','s','t','r','u','c',
+  't','o','r',#000,'M','_','M','a','c','r','o',' ','d','e','f',
+  'i','n','e','d',':',' ','$','1',#000,'M','_','M','a','c','r',
+  'o',' ','u','n','d','e','f','i','n','e','d',':',' ','$','1',
+  #000,'M','_','M','a','c','r','o',' ','$','1',' ','s','e','t',
+  ' ','t','o',' ','$','2',#000,'I','_','C','o','m','p','i','l',
+  'i','n','g',' ','$','1',#000,'D','_','C','o','m','p','i','l',
+  'i','n','g',' ','$','1',' ','f','o','r',' ','t','h','e',' ',
+  's','e','c','o','n','d',' ','t','i','m','e',#000,'E','_','A',
+  'r','r','a','y',' ','p','r','o','p','e','r','t','i','e','s',
+  ' ','a','r','e','n',#039,'t',' ','a','l','l','o','w','e','d',
+  ' ','a','t',' ','t','h','i','s',' ','p','o','i','n','t',#000,
+  'E','_','N','o',' ','p','r','o','p','e','r','t','y',' ','f',
+  'o','u','n','d',' ','t','o',' ','o','v','e','r','r','i','d',
+  'e',#000,'E','_','O','n','l','y',' ','o','n','e',' ','d','e',
+  'f','a','u','l','t',' ','p','r','o','p','e','r','t','y',' ',
+  'i','s',' ','a','l','l','o','w','e','d',',',' ','f','o','u',
+  'n','d',' ','i','n','h','e','r','i','t','e','d',' ','d','e',
+  'f','a','u','l','t',' ','p','r','o','p','e','r','t','y',' ',
+  'i','n',' ','c','l','a','s','s',' ','%','1',#000,'E','_','T',
+  'h','e',' ','d','e','f','a','u','l','t',' ','p','r','o','p',
+  'e','r','t','y',' ','m','u','s','t',' ','b','e',' ','a','n',
+  ' ','a','r','r','a','y',' ','p','r','o','p','e','r','t','y',
+  #000,'E','_','V','i','r','t','u','a','l',' ','c','o','n','s',
+  't','r','u','c','t','o','r','s',' ','a','r','e',' ','o','n',
+  'l','y',' ','s','u','p','p','o','r','t','e','d',' ','i','n',
+  ' ','c','l','a','s','s',' ','o','b','j','e','c','t',' ','m',
+  'o','d','e','l',#000,'E','_','N','o',' ','d','e','f','a','u',
+  'l','t',' ','p','r','o','p','e','r','t','y',' ','a','v','a',
+  'i','l','a','b','l','e',#000,'N','_','L','o','c','a','l',' ',
+  'v','a','r','i','a','b','l','e',' ','$','1',' ','d','o','e',
+  's','n',#039,'t',' ','s','e','e','m',' ','t','o',' ','b','e',
+  ' ','i','n','i','t','i','a','l','i','z','e','d',' ','y','e',
+  't',' ','!',#000,'E','_','I','d','e','n','t','i','f','i','e',
+  'r',' ','n','o','t',' ','f','o','u','n','d',' ','$','1',#000,
+  'F','_','I','n','t','e','r','n','a','l',' ','E','r','r','o',
+  'r',' ','i','n',' ','S','y','m','T','a','b','l','e','S','t',
+  'a','c','k','(',')',#000,'E','_','D','u','p','l','i','c','a',
+  't','e',' ','i','d','e','n','t','i','f','i','e','r',' ','$',
+  '1',#000,'E','_','U','n','k','n','o','w','n',' ','i','d','e',
+  'n','t','i','f','i','e','r',' ','$','1',#000,'E','_','F','o',
+  'r','w','a','r','d',' ','d','e','c','l','a','r','a','t','i',
+  'o','n',' ','n','o','t',' ','s','o','l','v','e','d',':',' ',
+  '$','1',#000,'F','_','I','d','e','n','t','i','f','i','e','r',
+  ' ','t','y','p','e',' ','a','l','r','e','a','d','y',' ','d',
+  'e','f','i','n','e','d',' ','a','s',' ','t','y','p','e',#000,
+  'E','_','T','y','p','e',' ','i','d','e','n','t','i','f','i',
+  'e','r',' ','e','x','p','e','c','t','e','d',#000,'E','_','T',
+  'y','p','e',' ','m','i','s','m','a','t','c','h',#000,'E','_',
+  'E','r','r','o','r',' ','i','n',' ','t','y','p','e',' ','d',
+  'e','f','e','n','i','t','i','o','n',#000,'E','_','T','y','p',
+  'e',' ','i','d','e','n','t','i','f','i','e','r',' ','n','o',
+  't',' ','d','e','f','i','n','e','d',#000,'E','_','O','n','l',
+  'y',' ','s','t','a','t','i','c',' ','v','a','r','i','a','b',
+  'l','e','s',' ','c','a','n',' ','b','e',' ','u','s','e','d',
+  ' ','i','n',' ','s','t','a','t','i','c',' ','m','e','t','h',
+  'o','d','s',' ','o','r',' ','o','u','t','s','i','d','e',' ',
+  'm','e','t','h','o','d','s',#000,'E','_','I','n','v','a','l',
+  'i','d',' ','c','a','l','l',' ','t','o',' ','t','v','a','r',
+  's','y','m','.','m','a','n','g','l','e','d','n','a','m','e',
+  '(',')',#000,'F','_','r','e','c','o','r','d',' ','o','r',' ',
+  'c','l','a','s','s',' ','t','y','p','e',' ','e','x','p','e',
+  'c','t','e','d',#000,'E','_','T','o',' ','g','e','n','e','r',
+  'a','t','e',' ','a','n',' ','i','n','s','t','a','n','c','e',
+  ' ','o','f',' ','a',' ','c','l','a','s','s',' ','o','r',' ',
+  'a','n',' ','o','b','j','e','c','t',' ','w','i','t','h',' ',
+  'a','n',' ','a','b','t','r','a','c','t',' ','m','e','t','h',
+  'o','d',' ','i','s','n',#039,'t',' ','a','l','l','o','w','e',
+  'd',#000,'E','_','L','a','b','e','l',' ','n','o','t',' ','d',
+  'e','f','i','n','e','d',' ','$','1',#000,'E','_','I','l','l',
+  'e','g','a','l',' ','l','a','b','e','l',' ','d','e','c','l',
+  'a','r','a','t','i','o','n',#000,'E','_','G','O','T','O',' ',
+  'u','n','d',' ','L','A','B','E','L',' ','a','r','e',' ','n',
+  'o','t',' ','s','u','p','p','o','r','t','e','d',' ','(','u',
+  's','e',' ','c','o','m','m','a','n','d',' ','l','i','n','e',
+  ' ','s','w','i','t','c','h',' ','-','S','g',')',#000,'E','_',
+  'L','a','b','e','l',' ','n','o','t',' ','f','o','u','n','d',
+  #000,'E','_','i','d','e','n','t','i','f','i','e','r',' ','i',
+  's','n',#039,'t',' ','a',' ','l','a','b','e','l',#000,'E','_',
+  'l','a','b','e','l',' ','a','l','r','e','a','d','y',' ','d',
+  'e','f','i','n','e','d',#000,'E','_','i','l','l','e','g','a',
+  'l',' ','t','y','p','e',' ','d','e','c','l','a','r','a','t',
+  'i','o','n',' ','o','f',' ','s','e','t',' ','e','l','e','m',
+  'e','n','t','s',#000,'E','_','F','o','r','w','a','r','d',' ',
+  'c','l','a','s','s',' ','d','e','f','i','n','i','t','i','o',
+  'n',' ','n','o','t',' ','r','e','s','o','l','v','e','d',' ',
+  '$','1',#000,'H','_','I','d','e','n','t','i','f','i','e','r',
+  ' ','n','o','t',' ','u','s','e','d',' ','$','1',',',' ','d',
+  'e','c','l','a','r','e','d',' ','i','n',' ','l','i','n','e',
+  ' ','$','2',#000,'E','_','S','e','t',' ','e','l','e','m','e',
+  'n','t','s',' ','a','r','e',' ','n','o','t',' ','c','o','m',
+  'p','a','t','i','b','l','e',#000,'E','_','S','e','t',' ','t',
+  'y','p','e',' ','e','x','p','e','c','t','e','d',#000,'W','_',
+  'F','u','n','c','t','i','o','n',' ','r','e','s','u','l','t',
+  ' ','d','o','e','s',' ','n','o','t',' ','s','e','e','m',' ',
+  't','o',' ','b','e',' ','s','e','t',#000,'E','_','U','n','k',
+  'n','o','w','n',' ','f','i','e','l','d',' ','i','d','e','n',
+  't','i','f','i','e','r',#000,'N','_','L','o','c','a','l',' ',
+  'v','a','r','i','a','b','l','e',' ','d','o','e','s',' ','n',
+  'o','t',' ','s','e','e','m',' ','t','o',' ','b','e',' ','i',
+  'n','i','t','i','a','l','i','z','e','d',':',' ','$','1',#000,
+  'E','_','i','d','e','n','t','i','f','i','e','r',' ','i','d',
+  'e','n','t','s',' ','n','o',' ','m','e','m','b','e','r',#000,
+  'E','_','B','R','E','A','K',' ','n','o','t',' ','a','l','l',
+  'o','w','e','d',#000,'E','_','C','O','N','T','I','N','U','E',
+  ' ','n','o','t',' ','a','l','l','o','w','e','d',#000,'E','_',
+  'E','x','p','r','e','s','s','i','o','n',' ','t','o','o',' ',
+  'c','o','m','p','l','i','c','a','t','e','d',' ','-',' ','F',
+  'P','U',' ','s','t','a','c','k',' ','o','v','e','r','f','l',
+  'o','w',#000,'E','_','I','l','l','e','g','a','l',' ','e','x',
+  'p','r','e','s','s','i','o','n',#000,'E','_','I','n','v','a',
+  'l','i','d',' ','i','n','t','e','g','e','r',#000,'E','_','I',
+  'l','l','e','g','a','l',' ','q','u','a','l','i','f','i','e',
+  'r',#000,'E','_','H','i','g','h',' ','r','a','n','g','e',' ',
+  'l','i','m','i','t',' ','<',' ','l','o','w',' ','r','a','n',
+  'g','e',' ','l','i','m','i','t',#000,'E','_','I','l','l','e',
+  'g','a','l',' ','c','o','u','n','t','e','r',' ','v','a','r',
+  'i','a','b','l','e',#000,'E','_','C','a','n',#039,'t',' ','d',
+  'e','t','e','r','m','i','n','e',' ','w','h','i','c','h',' ',
+  'o','v','e','r','l','o','a','d','e','d',' ','f','u','n','c',
+  't','i','o','n',' ','t','o',' ','c','a','l','l',#000,'E','_',
+  'P','a','r','a','m','e','t','e','r',' ','l','i','s','t',' ',
+  's','i','z','e',' ','e','x','c','e','e','d','s',' ','6','5',
+  '5','3','5',' ','b','y','t','e','s',#000,'E','_','I','l','l',
+  'e','g','a','l',' ','t','y','p','e',' ','c','o','n','v','e',
+  'r','s','i','o','n',#000,'E','_','F','i','l','e',' ','t','y',
+  'p','e','s',' ','m','u','s','t',' ','b','e',' ','v','a','r',
+  ' ','p','a','r','a','m','e','t','e','r','s',#000,'E','_','T',
+  'h','e',' ','u','s','e',' ','o','f',' ','a',' ','f','a','r',
+  ' ','p','o','i','n','t','e','r',' ','i','s','n',#039,'t',' ',
+  'a','l','l','o','w','e','d',' ','t','h','e','r','e',#000,'E',
+  '_','i','l','l','e','g','a','l',' ','c','a','l','l',' ','b',
+  'y',' ','r','e','f','e','r','e','n','c','e',' ','p','a','r',
+  'a','m','e','t','e','r','s',#000,'E','_','E','X','P','O','R',
+  'T',' ','d','e','c','l','a','r','e','d',' ','f','u','n','c',
+  't','i','o','n','s',' ','c','a','n',#039,'t',' ','b','e',' ',
+  'c','a','l','l','e','d',#000,'W','_','P','o','s','s','i','b',
+  'l','e',' ','i','l','l','e','g','a','l',' ','c','a','l','l',
+  ' ','o','f',' ','c','o','n','s','t','r','u','c','t','o','r',
+  ' ','o','r',' ','d','e','s','t','r','u','c','t','o','r',' ',
+  '(','d','o','e','s','n',#039,'t',' ','m','a','t','c','h',' ',
+  't','o',' ','t','h','i','s',' ','c','o','n','t','e','x','t',
+  ')',#000,'N','_','I','n','e','f','f','i','c','i','e','n','t',
+  ' ','c','o','d','e',#000,'W','_','u','n','r','e','a','c','h',
+  'a','b','l','e',' ','c','o','d','e',#000,'E','_','p','r','o',
+  'c','e','d','u','r','e',' ','c','a','l','l',' ','w','i','t',
+  'h',' ','s','t','a','c','k','f','r','a','m','e',' ','E','S',
+  'P','/','S','P',#000,'E','_','A','b','s','t','r','a','c','t',
+  ' ','m','e','t','h','o','d','s',' ','c','a','n',#039,'t',' ',
+  'b','e',' ','c','a','l','l','e','d',' ','d','i','r','e','c',
+  't','l','y',#000,'F','_','I','n','t','e','r','n','a','l',' ',
+  'E','r','r','o','r',' ','i','n',' ','g','e','t','f','l','o',
+  'a','t','r','e','g','(',')',',',' ','a','l','l','o','c','a',
+  't','i','o','n',' ','f','a','i','l','u','r','e',#000,'F','_',
+  'U','n','k','n','o','w','n',' ','f','l','o','a','t',' ','t',
+  'y','p','e',#000,'F','_','S','e','c','o','n','d','V','e','c',
+  'n','(',')',' ','b','a','s','e',' ','d','e','f','i','n','e',
+  'd',' ','t','w','i','c','e',#000,'F','_','E','x','t','e','n',
+  'd','e','d',' ','c','g','6','8','k',' ','n','o','t',' ','s',
+  'u','p','p','o','r','t','e','d',#000,'F','_','3','2','-','b',
+  'i','t',' ','u','n','s','i','g','n','e','d',' ','n','o','t',
+  ' ','s','u','p','p','o','r','t','e','d',' ','i','n',' ','M',
+  'C','6','8','0','0','0',' ','m','o','d','e',#000,'F','_','I',
+  'n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','i',
+  'n',' ','s','e','c','o','n','d','i','n','l','i','n','e','(',
+  ')',#000,'D','_','R','e','g','i','s','t','e','r',' ','$','1',
+  ' ','w','e','i','g','h','t',' ','$','2',' ','$','3',#000,'E',
+  '_','S','t','a','c','k',' ','l','i','m','i','t',' ','e','x',
+  'c','e','d','e','e','d',' ','i','n',' ','l','o','c','a','l',
+  ' ','r','o','u','t','i','n','e',#000,'D','_','S','t','a','c',
+  'k',' ','f','r','a','m','e',' ','i','s',' ','o','m','i','t',
+  'e','d',#000,'F','_','D','i','v','i','d','e',' ','b','y',' ',
+  'z','e','r','o',' ','i','n',' ','a','s','m',' ','e','v','a',
+  'l','u','a','t','o','r',#000,'F','_','E','v','a','l','u','a',
+  't','o','r',' ','s','t','a','c','k',' ','o','v','e','r','f',
+  'l','o','w',#000,'F','_','E','v','a','l','u','a','t','o','r',
+  ' ','s','t','a','c','k',' ','u','n','d','e','r','f','l','o',
+  'w',#000,'F','_','I','n','v','a','l','i','d',' ','n','u','m',
+  'e','r','i','c',' ','f','o','r','m','a','t',' ','i','n',' ',
+  'a','s','m',' ','e','v','a','l','u','a','t','o','r',#000,'F',
+  '_','I','n','v','a','l','i','d',' ','O','p','e','r','a','t',
+  'o','r',' ','i','n',' ','a','s','m',' ','e','v','a','l','u',
+  'a','t','o','r',#000,'F','_','U','n','k','n','o','w','n',' ',
+  'e','r','r','o','r',' ','i','n',' ','a','s','m',' ','e','v',
+  'a','l','u','a','t','o','r',#000,'W','_','I','n','v','a','l',
+  'i','d',' ','n','u','m','e','r','i','c',' ','v','a','l','u',
+  'e',#000,'E','_','e','s','c','a','p','e',' ','s','e','q','u',
+  'e','n','c','e',' ','i','g','n','o','r','e','d',':',' ','$',
+  '1',#000,'E','_','A','s','m',' ','s','y','n','t','a','x',' ',
+  'e','r','r','o','r',' ','-',' ','P','r','e','f','i','x',' ',
+  'n','o','t',' ','f','o','u','n','d',#000,'E','_','A','s','m',
   ' ','s','y','n','t','a','x',' ','e','r','r','o','r',' ','-',
-  ' ','O','p','c','o','d','e',' ','n','o','t',' ','f','o','u',
-  'n','d',#000,'E','_','I','n','v','a','l','i','d',' ','s','y',
-  'm','b','o','l',' ','r','e','f','e','r','e','n','c','e',#000,
-  'W','_','C','a','l','l','i','n','g',' ','a','n',' ','o','v',
-  'e','r','l','o','a','d',' ','f','u','n','c','t','i','o','n',
-  ' ','i','n',' ','a','n',' ','a','s','m',#000,'E','_','C','o',
-  'n','s','t','a','n','t',' ','v','a','l','u','e',' ','o','u',
-  't',' ','o','f',' ','b','o','u','n','d','s',#000,'E','_','N',
-  'o','n','-','l','a','b','e','l',' ','p','a','t','t','e','r',
-  'n',' ','c','o','n','t','a','i','n','s',' ','@',#000,'E','_',
-  'I','n','v','a','l','i','d',' ','O','p','e','r','a','n','d',
-  ':',' ','$','1',#000,'W','_','O','v','e','r','r','i','d','e',
-  ' ','o','p','e','r','a','t','o','r',' ','n','o','t',' ','s',
-  'u','p','p','o','r','t','e','d',#000,'E','_','E','r','r','o',
-  'r',' ','i','n',' ','b','i','n','a','r','y',' ','c','o','n',
-  's','t','a','n','t',':',' ','$','1',#000,'E','_','E','r','r',
-  'o','r',' ','i','n',' ','o','c','t','a','l',' ','c','o','n',
-  's','t','a','n','t',':',' ','$','1',#000,'E','_','E','r','r',
-  'o','r',' ','i','n',' ','h','e','x','a','d','e','c','i','m',
-  'a','l',' ','c','o','n','s','t','a','n','t',':',' ','$','1',
-  #000,'E','_','E','r','r','o','r',' ','i','n',' ','i','n','t',
-  'e','g','e','r',' ','c','o','n','s','t','a','n','t',':',' ',
-  '$','1',#000,'E','_','I','n','v','a','l','i','d',' ','l','a',
-  'b','e','l','e','d',' ','o','p','c','o','d','e',#000,'F','_',
-  'I','n','t','e','r','n','a','l',' ','e','r','r','o','r',' ',
-  'i','n',' ','F','i','n','d','t','y','p','e','(',')',#000,'E',
-  '_','I','n','v','a','l','i','d',' ','s','i','z','e',' ','f',
-  'o','r',' ','M','O','V','S','X','/','M','O','V','Z','X',#000,
-  'E','_','1','6','-','b','i','t',' ','b','a','s','e',' ','i',
-  'n',' ','3','2','-','b','i','t',' ','s','e','g','m','e','n',
-  't',#000,'E','_','1','6','-','b','i','t',' ','i','n','d','e',
-  'x',' ','i','n',' ','3','2','-','b','i','t',' ','s','e','g',
-  'm','e','n','t',#000,'E','_','I','n','v','a','l','i','d',' ',
-  'O','p','c','o','d','e',#000,'E','_','C','o','n','s','t','a',
-  'n','t',' ','r','e','f','e','r','e','n','c','e',' ','n','o',
-  't',' ','a','l','l','o','w','e','d',#000,'W','_','F','w','a',
-  'i','t',' ','c','a','n',' ','c','a','u','s','e',' ','e','m',
-  'u','l','a','t','i','o','n',' ','p','r','o','b','l','e','m',
-  's',' ','w','i','t','h',' ','e','m','u','3','8','7',#000,'E',
-  '_','I','n','v','a','l','i','d',' ','c','o','m','b','i','n',
-  'a','t','i','o','n',' ','o','f',' ','o','p','c','o','d','e',
-  ' ','a','n','d',' ','o','p','e','r','a','n','d','s',#000,'W',
-  '_','O','p','c','o','d','e',' ','$','1',' ','n','o','t',' ',
-  'i','n',' ','t','a','b','l','e',',',' ','o','p','e','r','a',
-  'n','d','s',' ','n','o','t',' ','c','h','e','c','k','e','d',
-  #000,'F','_','I','n','t','e','r','n','a','l',' ','E','r','r',
-  'o','r',' ','i','n',' ','C','o','n','c','a','t','O','p','c',
-  'o','d','e','(',')',#000,'E','_','I','n','v','a','l','i','d',
-  ' ','s','i','z','e',' ','i','n',' ','r','e','f','e','r','e',
-  'n','c','e',#000,'E','_','I','n','v','a','l','i','d',' ','m',
-  'i','d','d','l','e',' ','s','i','z','e','d',' ','o','p','e',
-  'r','a','n','d',#000,'E','_','I','n','v','a','l','i','d',' ',
-  't','h','r','e','e',' ','o','p','e','r','a','n','d',' ','o',
-  'p','c','o','d','e',#000,'E','_','A','s','s','e','m','b','l',
-  'e','r',' ','s','y','n','t','a','x',' ','e','r','r','o','r',
-  #000,'E','_','I','n','v','a','l','i','d',' ','o','p','e','r',
-  'a','n','d',' ','t','y','p','e',#000,'E','_','S','e','g','m',
-  'e','n','t',' ','o','v','e','r','r','i','d','e','s',' ','n',
-  'o','t',' ','s','u','p','p','o','r','t','e','d',#000,'E','_',
-  'I','n','v','a','l','i','d',' ','c','o','n','s','t','a','n',
-  't',' ','s','y','m','b','o','l',' ','$','1',#000,'F','_','I',
-  'n','t','e','r','n','a','l',' ','E','r','r','r','o','r',' ',
-  'c','o','n','v','e','r','t','i','n','g',' ','b','i','n','a',
-  'r','y',#000,'F','_','I','n','t','e','r','n','a','l',' ','E',
-  'r','r','r','o','r',' ','c','o','n','v','e','r','t','i','n',
-  'g',' ','h','e','x','a','d','e','c','i','m','a','l',#000,'F',
+  ' ','T','r','y','i','n','g',' ','t','o',' ','a','d','d',' ',
+  'm','o','r','e',' ','t','h','a','n',' ','o','n','e',' ','p',
+  'r','e','f','i','x',#000,'E','_','A','s','m',' ','s','y','n',
+  't','a','x',' ','e','r','r','o','r',' ','-',' ','O','p','c',
+  'o','d','e',' ','n','o','t',' ','f','o','u','n','d',#000,'E',
+  '_','I','n','v','a','l','i','d',' ','s','y','m','b','o','l',
+  ' ','r','e','f','e','r','e','n','c','e',#000,'W','_','C','a',
+  'l','l','i','n','g',' ','a','n',' ','o','v','e','r','l','o',
+  'a','d',' ','f','u','n','c','t','i','o','n',' ','i','n',' ',
+  'a','n',' ','a','s','m',#000,'E','_','C','o','n','s','t','a',
+  'n','t',' ','v','a','l','u','e',' ','o','u','t',' ','o','f',
+  ' ','b','o','u','n','d','s',#000,'E','_','N','o','n','-','l',
+  'a','b','e','l',' ','p','a','t','t','e','r','n',' ','c','o',
+  'n','t','a','i','n','s',' ','@',#000,'E','_','I','n','v','a',
+  'l','i','d',' ','O','p','e','r','a','n','d',':',' ','$','1',
+  #000,'W','_','O','v','e','r','r','i','d','e',' ','o','p','e',
+  'r','a','t','o','r',' ','n','o','t',' ','s','u','p','p','o',
+  'r','t','e','d',#000,'E','_','E','r','r','o','r',' ','i','n',
+  ' ','b','i','n','a','r','y',' ','c','o','n','s','t','a','n',
+  't',':',' ','$','1',#000,'E','_','E','r','r','o','r',' ','i',
+  'n',' ','o','c','t','a','l',' ','c','o','n','s','t','a','n',
+  't',':',' ','$','1',#000,'E','_','E','r','r','o','r',' ','i',
+  'n',' ','h','e','x','a','d','e','c','i','m','a','l',' ','c',
+  'o','n','s','t','a','n','t',':',' ','$','1',#000,'E','_','E',
+  'r','r','o','r',' ','i','n',' ','i','n','t','e','g','e','r',
+  ' ','c','o','n','s','t','a','n','t',':',' ','$','1',#000,'E',
+  '_','I','n','v','a','l','i','d',' ','l','a','b','e','l','e',
+  'd',' ','o','p','c','o','d','e',#000,'F','_','I','n','t','e',
+  'r','n','a','l',' ','e','r','r','o','r',' ','i','n',' ','F',
+  'i','n','d','t','y','p','e','(',')',#000,'E','_','I','n','v',
+  'a','l','i','d',' ','s','i','z','e',' ','f','o','r',' ','M',
+  'O','V','S','X','/','M','O','V','Z','X',#000,'E','_','1','6',
+  '-','b','i','t',' ','b','a','s','e',' ','i','n',' ','3','2',
+  '-','b','i','t',' ','s','e','g','m','e','n','t',#000,'E','_',
+  '1','6','-','b','i','t',' ','i','n','d','e','x',' ','i','n',
+  ' ','3','2','-','b','i','t',' ','s','e','g','m','e','n','t',
+  #000,'E','_','I','n','v','a','l','i','d',' ','O','p','c','o',
+  'd','e',#000,'E','_','C','o','n','s','t','a','n','t',' ','r',
+  'e','f','e','r','e','n','c','e',' ','n','o','t',' ','a','l',
+  'l','o','w','e','d',#000,'W','_','F','w','a','i','t',' ','c',
+  'a','n',' ','c','a','u','s','e',' ','e','m','u','l','a','t',
+  'i','o','n',' ','p','r','o','b','l','e','m','s',' ','w','i',
+  't','h',' ','e','m','u','3','8','7',#000,'E','_','I','n','v',
+  'a','l','i','d',' ','c','o','m','b','i','n','a','t','i','o',
+  'n',' ','o','f',' ','o','p','c','o','d','e',' ','a','n','d',
+  ' ','o','p','e','r','a','n','d','s',#000,'W','_','O','p','c',
+  'o','d','e',' ','$','1',' ','n','o','t',' ','i','n',' ','t',
+  'a','b','l','e',',',' ','o','p','e','r','a','n','d','s',' ',
+  'n','o','t',' ','c','h','e','c','k','e','d',#000,'F','_','I',
+  'n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','i',
+  'n',' ','C','o','n','c','a','t','O','p','c','o','d','e','(',
+  ')',#000,'E','_','I','n','v','a','l','i','d',' ','s','i','z',
+  'e',' ','i','n',' ','r','e','f','e','r','e','n','c','e',#000,
+  'E','_','I','n','v','a','l','i','d',' ','m','i','d','d','l',
+  'e',' ','s','i','z','e','d',' ','o','p','e','r','a','n','d',
+  #000,'E','_','I','n','v','a','l','i','d',' ','t','h','r','e',
+  'e',' ','o','p','e','r','a','n','d',' ','o','p','c','o','d',
+  'e',#000,'E','_','A','s','s','e','m','b','l','e','r',' ','s',
+  'y','n','t','a','x',' ','e','r','r','o','r',#000,'E','_','I',
+  'n','v','a','l','i','d',' ','o','p','e','r','a','n','d',' ',
+  't','y','p','e',#000,'E','_','S','e','g','m','e','n','t',' ',
+  'o','v','e','r','r','i','d','e','s',' ','n','o','t',' ','s',
+  'u','p','p','o','r','t','e','d',#000,'E','_','I','n','v','a',
+  'l','i','d',' ','c','o','n','s','t','a','n','t',' ','s','y',
+  'm','b','o','l',' ','$','1',#000,'F','_','I','n','t','e','r',
+  'n','a','l',' ','E','r','r','r','o','r',' ','c','o','n','v',
+  'e','r','t','i','n','g',' ','b','i','n','a','r','y',#000,'F',
   '_','I','n','t','e','r','n','a','l',' ','E','r','r','r','o',
-  'r',' ','c','o','n','v','e','r','t','i','n','g',' ','o','c',
-  't','a','l',#000,'E','_','I','n','v','a','l','i','d',' ','c',
-  'o','n','s','t','a','n','t',' ','e','x','p','r','e','s','s',
-  'i','o','n',#000,'E','_','U','n','k','n','o','w','n',' ','i',
-  'd','e','n','t','i','f','i','e','r',':',' ','$','1',#000,'E',
-  '_','T','r','y','i','n','g',' ','t','o',' ','d','e','f','i',
-  'n','e',' ','a','n',' ','i','n','d','e','x',' ','r','e','g',
-  'i','s','t','e','r',' ','m','o','r','e',' ','t','h','a','n',
-  ' ','o','n','c','e',#000,'E','_','I','n','v','a','l','i','d',
-  ' ','f','i','e','l','d',' ','s','p','e','c','i','f','i','e',
-  'r',#000,'F','_','I','n','t','e','r','n','a','l',' ','E','r',
-  'r','o','r',' ','i','n',' ','B','u','i','l','d','S','c','a',
-  'l','i','n','g','(',')',#000,'E','_','I','n','v','a','l','i',
-  'd',' ','s','c','a','l','i','n','g',' ','f','a','c','t','o',
-  'r',#000,'E','_','I','n','v','a','l','i','d',' ','s','c','a',
-  'l','i','n','g',' ','v','a','l','u','e',#000,'E','_','S','c',
-  'a','l','i','n','g',' ','v','a','l','u','e',' ','o','n','l',
-  'y',' ','a','l','l','o','w','e','d',' ','w','i','t','h',' ',
-  'i','n','d','e','x',#000,'E','_','I','n','v','a','l','i','d',
-  ' ','a','s','s','e','m','b','l','e','r',' ','s','y','n','t',
-  'a','x','.',' ','N','o',' ','r','e','f',' ','w','i','t','h',
-  ' ','b','r','a','c','k','e','t','s',')',#000,'E','_','E','x',
-  'p','r','e','s','s','i','o','n','s',' ','o','f',' ','t','h',
-  'e',' ','f','o','r','m',' ','[','s','r','e','g',':','r','e',
-  'g','.','.','.',']',' ','a','r','e',' ','c','u','r','r','e',
-  'n','t','l','y',' ','n','o','t',' ','s','u','p','p','o','r',
-  't','e','d',#000,'E','_','T','r','y','i','n','g',' ','t','o',
-  ' ','d','e','f','i','n','e',' ','a',' ','s','e','g','m','e',
-  'n','t',' ','r','e','g','i','s','t','e','r',' ','t','w','i',
-  'c','e',#000,'E','_','T','r','y','i','n','g',' ','t','o',' ',
-  'd','e','f','i','n','e',' ','a',' ','b','a','s','e',' ','r',
+  'r',' ','c','o','n','v','e','r','t','i','n','g',' ','h','e',
+  'x','a','d','e','c','i','m','a','l',#000,'F','_','I','n','t',
+  'e','r','n','a','l',' ','E','r','r','r','o','r',' ','c','o',
+  'n','v','e','r','t','i','n','g',' ','o','c','t','a','l',#000,
+  'E','_','I','n','v','a','l','i','d',' ','c','o','n','s','t',
+  'a','n','t',' ','e','x','p','r','e','s','s','i','o','n',#000,
+  'E','_','U','n','k','n','o','w','n',' ','i','d','e','n','t',
+  'i','f','i','e','r',':',' ','$','1',#000,'E','_','T','r','y',
+  'i','n','g',' ','t','o',' ','d','e','f','i','n','e',' ','a',
+  'n',' ','i','n','d','e','x',' ','r','e','g','i','s','t','e',
+  'r',' ','m','o','r','e',' ','t','h','a','n',' ','o','n','c',
+  'e',#000,'E','_','I','n','v','a','l','i','d',' ','f','i','e',
+  'l','d',' ','s','p','e','c','i','f','i','e','r',#000,'F','_',
+  'I','n','t','e','r','n','a','l',' ','E','r','r','o','r',' ',
+  'i','n',' ','B','u','i','l','d','S','c','a','l','i','n','g',
+  '(',')',#000,'E','_','I','n','v','a','l','i','d',' ','s','c',
+  'a','l','i','n','g',' ','f','a','c','t','o','r',#000,'E','_',
+  'I','n','v','a','l','i','d',' ','s','c','a','l','i','n','g',
+  ' ','v','a','l','u','e',#000,'E','_','S','c','a','l','i','n',
+  'g',' ','v','a','l','u','e',' ','o','n','l','y',' ','a','l',
+  'l','o','w','e','d',' ','w','i','t','h',' ','i','n','d','e',
+  'x',#000,'E','_','I','n','v','a','l','i','d',' ','a','s','s',
+  'e','m','b','l','e','r',' ','s','y','n','t','a','x','.',' ',
+  'N','o',' ','r','e','f',' ','w','i','t','h',' ','b','r','a',
+  'c','k','e','t','s',')',#000,'E','_','E','x','p','r','e','s',
+  's','i','o','n','s',' ','o','f',' ','t','h','e',' ','f','o',
+  'r','m',' ','[','s','r','e','g',':','r','e','g','.','.','.',
+  ']',' ','a','r','e',' ','c','u','r','r','e','n','t','l','y',
+  ' ','n','o','t',' ','s','u','p','p','o','r','t','e','d',#000,
+  'E','_','T','r','y','i','n','g',' ','t','o',' ','d','e','f',
+  'i','n','e',' ','a',' ','s','e','g','m','e','n','t',' ','r',
   'e','g','i','s','t','e','r',' ','t','w','i','c','e',#000,'E',
-  '_','T','r','y','i','n','g',' ','t','o',' ','u','s','e',' ',
-  'a',' ','n','e','g','a','t','i','v','e',' ','i','n','d','e',
-  'x',' ','r','e','g','i','s','t','e','r',#000,'E','_','A','s',
-  'm',' ','s','y','n','t','a','x',' ','e','r','r','o','r',' ',
-  '-',' ','e','r','r','o','r',' ','i','n',' ','r','e','f','e',
-  'r','e','n','c','e',#000,'E','_','L','o','c','a','l',' ','s',
-  'y','m','b','o','l','s',' ','n','o','t',' ','a','l','l','o',
-  'w','e','d',' ','a','s',' ','r','e','f','e','r','e','n','c',
-  'e','s',#000,'E','_','I','n','v','a','l','i','d',' ','o','p',
-  'e','r','a','n','d',' ','i','n',' ','b','r','a','c','k','e',
-  't',' ','e','x','p','r','e','s','s','i','o','n',#000,'E','_',
-  'I','n','v','a','l','i','d',' ','s','y','m','b','o','l',' ',
-  'n','a','m','e',':',' ','$','1',#000,'E','_','I','n','v','a',
-  'l','i','d',' ','R','e','f','e','r','e','n','c','e',' ','s',
-  'y','n','t','a','x',#000,'E','_','I','n','v','a','l','i','d',
-  ' ','s','t','r','i','n','g',' ','a','s',' ','o','p','c','o',
-  'd','e',' ','o','p','e','r','a','n','d',':',' ','$','1',#000,
-  'W','_','@','C','O','D','E',' ','a','n','d',' ','@','D','A',
-  'T','A',' ','n','o','t',' ','s','u','p','p','o','r','t','e',
-  'd',#000,'E','_','N','u','l','l',' ','l','a','b','e','l',' ',
-  'r','e','f','e','r','e','n','c','e','s',' ','a','r','e',' ',
-  'n','o','t',' ','a','l','l','o','w','e','d',#000,'E','_','C',
-  'a','n','n','o','t',' ','u','s','e',' ','S','E','L','F',' ',
-  'o','u','t','s','i','d','e',' ','a',' ','m','e','t','h','o',
-  'd',#000,'E','_','A','s','m',' ','s','y','n','t','a','x',' ',
-  'e','r','r','o','r',' ','-',' ','S','h','o','u','l','d',' ',
-  's','t','a','r','t',' ','w','i','t','h',' ','b','r','a','c',
-  'k','e','t',#000,'E','_','A','s','m',' ','s','y','n','t','a',
-  'x',' ','e','r','r','o','r',' ','-',' ','r','e','g','i','s',
-  't','e','r',':',' ','$','1',#000,'E','_','S','E','G',' ','a',
-  'n','d',' ','O','F','F','S','E','T',' ','n','o','t',' ','s',
-  'u','p','p','o','r','t','e','d',#000,'E','_','A','s','m',' ',
-  's','y','n','t','a','x',' ','e','r','r','o','r',' ','-',' ',
-  'i','n',' ','o','p','c','o','d','e',' ','o','p','e','r','a',
-  'n','d',#000,'E','_','I','n','v','a','l','i','d',' ','S','t',
-  'r','i','n','g',' ','e','x','p','r','e','s','s','i','o','n',
-  #000,'E','_','C','o','n','s','t','a','n','t',' ','e','x','p',
-  'r','e','s','s','i','o','n',' ','o','u','t',' ','o','f',' ',
-  'b','o','u','n','d','s',#000,'F','_','I','n','t','e','r','n',
-  'a','l',' ','E','r','r','o','r',' ','i','n',' ','B','u','i',
-  'l','d','C','o','n','s','t','a','n','t','(',')',#000,'W','_',
-  'A',' ','r','e','p','e','a','t',' ','p','r','e','f','i','x',
-  ' ','a','n','d',' ','a',' ','s','e','g','m','e','n','t',' ',
-  'o','v','e','r','r','i','d','e',' ','o','n',' ','<','=',' ',
-  'i','3','8','6',' ','m','a','y',' ','r','e','s','u','l','t',
-  ' ','i','n',' ','e','r','r','o','r','s',' ','i','f',' ','a',
-  'n',' ','i','n','t','e','r','r','u','p','t',' ','o','c','c',
-  'u','r','s',#000,'E','_','I','n','v','a','l','i','d',' ','o',
-  'r',' ','m','i','s','s','i','n','g',' ','o','p','c','o','d',
-  'e',#000,'E','_','I','n','v','a','l','i','d',' ','c','o','m',
-  'b','i','n','a','t','i','o','n',' ','o','f',' ','p','r','e',
-  'f','i','x',' ','a','n','d',' ','o','p','c','o','d','e',':',
-  ' ','$','1',#000,'E','_','I','n','v','a','l','i','d',' ','c',
-  'o','m','b','i','n','a','t','i','o','n',' ','o','f',' ','o',
-  'v','e','r','r','i','d','e',' ','a','n','d',' ','o','p','c',
-  'o','d','e',':',' ','$','1',#000,'E','_','T','o','o',' ','m',
-  'a','n','y',' ','o','p','e','r','a','n','d','s',' ','o','n',
-  ' ','l','i','n','e',#000,'E','_','D','u','p','l','i','c','a',
-  't','e',' ','l','o','c','a','l',' ','s','y','m','b','o','l',
-  ':',' ','$','1',#000,'E','_','U','n','k','n','o','w','n',' ',
-  'l','a','b','e','l',' ','i','d','e','n','t','i','f','e','r',
-  ':',' ','$','1',#000,'E','_','A','s','s','e','m','b','l','e',
-  ' ','n','o','d','e',' ','s','y','n','t','a','x',' ','e','r',
-  'r','o','r',#000,'E','_','U','n','d','e','f','i','n','e','d',
-  ' ','l','o','c','a','l',' ','s','y','m','b','o','l',':',' ',
-  '$','1',#000,'D','_','S','t','a','r','t','i','n','g',' ','i',
-  'n','t','e','l',' ','s','t','y','l','e','d',' ','a','s','s',
-  'e','m','b','l','e','r',' ','p','a','r','s','i','n','g','.',
-  '.','.',#000,'D','_','F','i','n','i','s','h','e','d',' ','i',
-  'n','t','e','l',' ','s','t','y','l','e','d',' ','a','s','s',
-  'e','m','b','l','e','r',' ','p','a','r','s','i','n','g','.',
-  '.','.',#000,'E','_','N','o','t',' ','a',' ','d','i','r','e',
-  'c','t','i','v','e',' ','o','r',' ','l','o','c','a','l',' ',
-  's','y','m','b','o','l',':',' ','$','1',#000,'E','_','/',' ',
-  'a','t',' ','b','e','g','i','n','n','i','n','g',' ','o','f',
-  ' ','l','i','n','e',' ','n','o','t',' ','a','l','l','o','w',
-  'e','d',#000,'E','_','N','O','R',' ','n','o','t',' ','s','u',
-  'p','p','o','r','t','e','d',#000,'E','_','I','n','v','a','l',
-  'i','d',' ','f','l','o','a','t','i','n','g',' ','p','o','i',
-  'n','t',' ','r','e','g','i','s','t','e','r',' ','n','a','m',
-  'e',#000,'W','_','M','o','d','u','l','o',' ','n','o','t',' ',
-  's','u','p','p','o','r','t','e','d',#000,'E','_','I','n','v',
-  'a','l','i','d',' ','f','l','o','a','t','i','n','g',' ','p',
-  'o','i','n','t',' ','c','o','n','s','t','a','n','t',':',' ',
-  '$','1',#000,'E','_','S','i','z','e',' ','s','u','f','f','i',
-  'x',' ','a','n','d',' ','d','e','s','t','i','n','a','t','i',
-  'o','n',' ','r','e','g','i','s','t','e','r',' ','d','o',' ',
-  'n','o','t',' ','m','a','t','c','h',#000,'E','_','I','n','t',
-  'e','r','n','a','l',' ','e','r','r','o','r',' ','i','n',' ',
-  'C','o','n','c','a','t','L','a','b','e','l','e','d','I','n',
-  's','t','r','(',')',#000,'W','_','F','l','o','a','t','i','n',
-  'g',' ','p','o','i','n','t',' ','b','i','n','a','r','y',' ',
-  'r','e','p','r','e','s','e','n','t','a','t','i','o','n',' ',
-  'i','g','n','o','r','e','d',#000,'W','_','F','l','o','a','t',
-  'i','n','g',' ','p','o','i','n','t',' ','h','e','x','a','d',
-  'e','c','i','m','a','l',' ','r','e','p','r','e','s','e','n',
-  't','a','t','i','o','n',' ','i','g','n','o','r','e','d',#000,
-  'W','_','F','l','o','a','t','i','n','g',' ','p','o','i','n',
-  't',' ','o','c','t','a','l',' ','r','e','p','r','e','s','e',
-  'n','t','a','t','i','o','n',' ','i','g','n','o','r','e','d',
-  #000,'E','_','I','n','v','a','l','i','d',' ','r','e','a','l',
-  ' ','c','o','n','s','t','a','n','t',' ','e','x','p','r','e',
-  's','s','i','o','n',#000,'E','_','P','a','r','e','n','t','h',
-  'e','s','i','s',' ','a','r','e',' ','n','o','t',' ','a','l',
-  'l','o','w','e','d',#000,'E','_','I','n','v','a','l','i','d',
-  ' ','R','e','f','e','r','e','n','c','e',#000,'E','_','C','a',
-  'n','n','o','t',' ','u','s','e',' ','_','_','S','E','L','F',
-  ' ','o','u','t','s','i','d','e',' ','a',' ','m','e','t','h',
-  'o','d',#000,'E','_','C','a','n','n','o','t',' ','u','s','e',
-  ' ','_','_','O','L','D','E','B','P',' ','o','u','t','s','i',
-  'd','e',' ','a',' ','n','e','s','t','e','d',' ','p','r','o',
-  'c','e','d','u','r','e',#000,'W','_','I','d','e','n','t','i',
-  'f','i','e','r',' ','$','1',' ','s','u','p','p','o','s','e',
-  'd',' ','e','x','t','e','r','n','a','l',#000,'E','_','I','n',
-  'v','a','l','i','d',' ','s','e','g','m','e','n','t',' ','o',
-  'v','e','r','r','i','d','e',' ','e','x','p','r','e','s','s',
-  'i','o','n',#000,'E','_','S','t','r','i','n','g','s',' ','n',
-  'o','t',' ','a','l','l','o','w','e','d',' ','a','s',' ','c',
-  'o','n','s','t','a','n','t','s',#000,'D','_','S','t','a','r',
-  't','i','n','g',' ','A','T','&','T',' ','s','t','y','l','e',
-  'd',' ','a','s','s','e','m','b','l','e','r',' ','p','a','r',
-  's','i','n','g','.','.','.',#000,'D','_','F','i','n','i','s',
-  'h','e','d',' ','A','T','&','T',' ','s','t','y','l','e','d',
-  ' ','a','s','s','e','m','b','l','e','r',' ','p','a','r','s',
-  'i','n','g','.','.','.',#000,'E','_','S','w','i','t','c','h',
-  'i','n','g',' ','s','e','c','t','i','o','n','s',' ','i','s',
-  ' ','n','o','t',' ','a','l','l','o','w','e','d',' ','i','n',
-  ' ','a','n',' ','a','s','s','e','m','b','l','e','r',' ','b',
-  'l','o','c','k',#000,'E','_','I','n','v','a','l','i','d',' ',
-  'g','l','o','b','a','l',' ','d','e','f','i','n','i','t','i',
-  'o','n',#000,'E','_','L','i','n','e',' ','s','e','p','a','r',
-  'a','t','o','r',' ','e','x','p','e','c','t','e','d',#000,'W',
-  '_','g','l','o','b','l',' ','n','o','t',' ','s','u','p','p',
-  'o','r','t','e','d',#000,'W','_','a','l','i','g','n',' ','n',
-  'o','t',' ','s','u','p','p','o','r','t','e','d',#000,'W','_',
-  'l','c','o','m','m',' ','n','o','t',' ','s','u','p','p','o',
-  'r','t','e','d',#000,'W','_','c','o','m','m',' ','n','o','t',
-  ' ','s','u','p','p','o','r','t','e','d',#000,'E','_','I','n',
-  'v','a','l','i','d',' ','l','o','c','a','l',' ','c','o','m',
-  'm','o','n',' ','d','e','f','i','n','i','t','i','o','n',#000,
-  'E','_','I','n','v','a','l','i','d',' ','g','l','o','b','a',
-  'l',' ','c','o','m','m','o','n',' ','d','e','f','i','n','i',
-  't','i','o','n',#000,'E','_','l','o','c','a','l',' ','s','y',
-  'm','b','o','l',':',' ','$','1',' ','n','o','t',' ','f','o',
-  'u','n','d',' ','i','n','s','i','d','e',' ','a','s','m',' ',
-  's','t','a','t','e','m','e','n','t',#000,'E','_','a','s','s',
-  'e','m','b','l','e','r',' ','c','o','d','e',' ','n','o','t',
-  ' ','r','e','t','u','r','n','e','d',' ','t','o',' ','t','e',
-  'x','t',#000,'F','_','i','n','t','e','r','n','a','l',' ','e',
-  'r','r','o','r',' ','i','n',' ','B','u','i','l','d','R','e',
-  'f','e','r','e','n','c','e','(',')',#000,'E','_','i','n','v',
-  'a','l','i','d',' ','o','p','c','o','d','e',' ','s','i','z',
-  'e',#000,'W','_','N','E','A','R',' ','i','g','n','o','r','e',
-  'd',#000,'W','_','F','A','R',' ','i','g','n','o','r','e','d',
-  #000,'D','_','C','r','e','a','t','i','n','g',' ','i','n','l',
-  'i','n','e',' ','a','s','m',' ','l','o','o','k','u','p',' ',
-  't','a','b','l','e','s',#000,'W','_','U','s','i','n','g',' ',
-  'a',' ','d','e','f','i','n','e','d',' ','n','a','m','e',' ',
-  'a','s',' ','a',' ','l','o','c','a','l',' ','l','a','b','e',
-  'l',#000,'F','_','i','n','t','e','r','n','a','l',' ','e','r',
-  'r','o','r',' ','i','n',' ','H','a','n','d','l','e','E','x',
-  't','e','n','d','(',')',#000,'E','_','I','n','v','a','l','i',
-  'd',' ','c','h','a','r','a','c','t','e','r',':',' ','<',#000,
-  'E','_','I','n','v','a','l','i','d',' ','c','h','a','r','a',
-  'c','t','e','r',':',' ','>',#000,'E','_','U','n','s','u','p',
-  'p','o','r','t','e','d',' ','o','p','c','o','d','e',#000,'E',
-  '_','I','n','c','r','e','m','e','n','t',' ','a','n','d',' ',
-  'D','e','c','r','e','m','e','n','t',' ','m','o','d','e',' ',
-  'n','o','t',' ','a','l','l','o','w','e','d',' ','t','o','g',
-  'e','t','h','e','r',#000,'E','_','I','n','v','a','l','i','d',
-  ' ','R','e','g','i','s','t','e','r',' ','l','i','s','t',' ',
-  'i','n',' ','m','o','v','e','m','/','f','m','o','v','e','m',
-  #000,'E','_','I','n','v','a','l','i','d',' ','R','e','g','i',
-  's','t','e','r',' ','l','i','s','t',' ','f','o','r',' ','o',
-  'p','c','o','d','e',#000,'E','_','6','8','0','2','0','+',' ',
-  'm','o','d','e',' ','r','e','q','u','i','r','e','d',' ','t',
-  'o',' ','a','s','s','e','m','b','l','e',#000,'D','_','S','t',
-  'a','r','t','i','n','g',' ','M','o','t','o','r','o','l','a',
+  '_','T','r','y','i','n','g',' ','t','o',' ','d','e','f','i',
+  'n','e',' ','a',' ','b','a','s','e',' ','r','e','g','i','s',
+  't','e','r',' ','t','w','i','c','e',#000,'E','_','T','r','y',
+  'i','n','g',' ','t','o',' ','u','s','e',' ','a',' ','n','e',
+  'g','a','t','i','v','e',' ','i','n','d','e','x',' ','r','e',
+  'g','i','s','t','e','r',#000,'E','_','A','s','m',' ','s','y',
+  'n','t','a','x',' ','e','r','r','o','r',' ','-',' ','e','r',
+  'r','o','r',' ','i','n',' ','r','e','f','e','r','e','n','c',
+  'e',#000,'E','_','L','o','c','a','l',' ','s','y','m','b','o',
+  'l','s',' ','n','o','t',' ','a','l','l','o','w','e','d',' ',
+  'a','s',' ','r','e','f','e','r','e','n','c','e','s',#000,'E',
+  '_','I','n','v','a','l','i','d',' ','o','p','e','r','a','n',
+  'd',' ','i','n',' ','b','r','a','c','k','e','t',' ','e','x',
+  'p','r','e','s','s','i','o','n',#000,'E','_','I','n','v','a',
+  'l','i','d',' ','s','y','m','b','o','l',' ','n','a','m','e',
+  ':',' ','$','1',#000,'E','_','I','n','v','a','l','i','d',' ',
+  'R','e','f','e','r','e','n','c','e',' ','s','y','n','t','a',
+  'x',#000,'E','_','I','n','v','a','l','i','d',' ','s','t','r',
+  'i','n','g',' ','a','s',' ','o','p','c','o','d','e',' ','o',
+  'p','e','r','a','n','d',':',' ','$','1',#000,'W','_','@','C',
+  'O','D','E',' ','a','n','d',' ','@','D','A','T','A',' ','n',
+  'o','t',' ','s','u','p','p','o','r','t','e','d',#000,'E','_',
+  'N','u','l','l',' ','l','a','b','e','l',' ','r','e','f','e',
+  'r','e','n','c','e','s',' ','a','r','e',' ','n','o','t',' ',
+  'a','l','l','o','w','e','d',#000,'E','_','C','a','n','n','o',
+  't',' ','u','s','e',' ','S','E','L','F',' ','o','u','t','s',
+  'i','d','e',' ','a',' ','m','e','t','h','o','d',#000,'E','_',
+  'A','s','m',' ','s','y','n','t','a','x',' ','e','r','r','o',
+  'r',' ','-',' ','S','h','o','u','l','d',' ','s','t','a','r',
+  't',' ','w','i','t','h',' ','b','r','a','c','k','e','t',#000,
+  'E','_','A','s','m',' ','s','y','n','t','a','x',' ','e','r',
+  'r','o','r',' ','-',' ','r','e','g','i','s','t','e','r',':',
+  ' ','$','1',#000,'E','_','S','E','G',' ','a','n','d',' ','O',
+  'F','F','S','E','T',' ','n','o','t',' ','s','u','p','p','o',
+  'r','t','e','d',#000,'E','_','A','s','m',' ','s','y','n','t',
+  'a','x',' ','e','r','r','o','r',' ','-',' ','i','n',' ','o',
+  'p','c','o','d','e',' ','o','p','e','r','a','n','d',#000,'E',
+  '_','I','n','v','a','l','i','d',' ','S','t','r','i','n','g',
+  ' ','e','x','p','r','e','s','s','i','o','n',#000,'E','_','C',
+  'o','n','s','t','a','n','t',' ','e','x','p','r','e','s','s',
+  'i','o','n',' ','o','u','t',' ','o','f',' ','b','o','u','n',
+  'd','s',#000,'F','_','I','n','t','e','r','n','a','l',' ','E',
+  'r','r','o','r',' ','i','n',' ','B','u','i','l','d','C','o',
+  'n','s','t','a','n','t','(',')',#000,'W','_','A',' ','r','e',
+  'p','e','a','t',' ','p','r','e','f','i','x',' ','a','n','d',
+  ' ','a',' ','s','e','g','m','e','n','t',' ','o','v','e','r',
+  'r','i','d','e',' ','o','n',' ','<','=',' ','i','3','8','6',
+  ' ','m','a','y',' ','r','e','s','u','l','t',' ','i','n',' ',
+  'e','r','r','o','r','s',' ','i','f',' ','a','n',' ','i','n',
+  't','e','r','r','u','p','t',' ','o','c','c','u','r','s',#000,
+  'E','_','I','n','v','a','l','i','d',' ','o','r',' ','m','i',
+  's','s','i','n','g',' ','o','p','c','o','d','e',#000,'E','_',
+  'I','n','v','a','l','i','d',' ','c','o','m','b','i','n','a',
+  't','i','o','n',' ','o','f',' ','p','r','e','f','i','x',' ',
+  'a','n','d',' ','o','p','c','o','d','e',':',' ','$','1',#000,
+  'E','_','I','n','v','a','l','i','d',' ','c','o','m','b','i',
+  'n','a','t','i','o','n',' ','o','f',' ','o','v','e','r','r',
+  'i','d','e',' ','a','n','d',' ','o','p','c','o','d','e',':',
+  ' ','$','1',#000,'E','_','T','o','o',' ','m','a','n','y',' ',
+  'o','p','e','r','a','n','d','s',' ','o','n',' ','l','i','n',
+  'e',#000,'E','_','D','u','p','l','i','c','a','t','e',' ','l',
+  'o','c','a','l',' ','s','y','m','b','o','l',':',' ','$','1',
+  #000,'E','_','U','n','k','n','o','w','n',' ','l','a','b','e',
+  'l',' ','i','d','e','n','t','i','f','e','r',':',' ','$','1',
+  #000,'E','_','A','s','s','e','m','b','l','e',' ','n','o','d',
+  'e',' ','s','y','n','t','a','x',' ','e','r','r','o','r',#000,
+  'E','_','U','n','d','e','f','i','n','e','d',' ','l','o','c',
+  'a','l',' ','s','y','m','b','o','l',':',' ','$','1',#000,'D',
+  '_','S','t','a','r','t','i','n','g',' ','i','n','t','e','l',
   ' ','s','t','y','l','e','d',' ','a','s','s','e','m','b','l',
   'e','r',' ','p','a','r','s','i','n','g','.','.','.',#000,'D',
-  '_','F','i','n','i','s','h','e','d',' ','M','o','t','o','r',
-  'o','l','a',' ','s','t','y','l','e','d',' ','a','s','s','e',
-  'm','b','l','e','r',' ','p','a','r','s','i','n','g','.','.',
-  '.',#000,'W','_','X','D','E','F',' ','n','o','t',' ','s','u',
-  'p','p','o','r','t','e','d',#000,'W','_','F','u','n','c','t',
-  'i','o','n','s',' ','w','i','t','h',' ','v','o','i','d',' ',
-  'r','e','t','u','r','n',' ','v','a','l','u','e',' ','c','a',
-  'n',#039,'t',' ','r','e','t','u','r','n',' ','a','n','y',' ',
-  'v','a','l','u','e',' ','i','n',' ','a','s','m',' ','c','o',
-  'd','e',#000,'E','_','I','n','v','a','l','i','d',' ','s','u',
-  'f','f','i','x',' ','f','o','r',' ','i','n','t','e','l',' ',
-  'a','s','s','e','m','b','l','e','r',#000,'E','_','E','x','t',
-  'e','n','d','e','d',' ','n','o','t',' ','s','u','p','p','o',
+  '_','F','i','n','i','s','h','e','d',' ','i','n','t','e','l',
+  ' ','s','t','y','l','e','d',' ','a','s','s','e','m','b','l',
+  'e','r',' ','p','a','r','s','i','n','g','.','.','.',#000,'E',
+  '_','N','o','t',' ','a',' ','d','i','r','e','c','t','i','v',
+  'e',' ','o','r',' ','l','o','c','a','l',' ','s','y','m','b',
+  'o','l',':',' ','$','1',#000,'E','_','/',' ','a','t',' ','b',
+  'e','g','i','n','n','i','n','g',' ','o','f',' ','l','i','n',
+  'e',' ','n','o','t',' ','a','l','l','o','w','e','d',#000,'E',
+  '_','N','O','R',' ','n','o','t',' ','s','u','p','p','o','r',
+  't','e','d',#000,'E','_','I','n','v','a','l','i','d',' ','f',
+  'l','o','a','t','i','n','g',' ','p','o','i','n','t',' ','r',
+  'e','g','i','s','t','e','r',' ','n','a','m','e',#000,'W','_',
+  'M','o','d','u','l','o',' ','n','o','t',' ','s','u','p','p',
+  'o','r','t','e','d',#000,'E','_','I','n','v','a','l','i','d',
+  ' ','f','l','o','a','t','i','n','g',' ','p','o','i','n','t',
+  ' ','c','o','n','s','t','a','n','t',':',' ','$','1',#000,'E',
+  '_','S','i','z','e',' ','s','u','f','f','i','x',' ','a','n',
+  'd',' ','d','e','s','t','i','n','a','t','i','o','n',' ','r',
+  'e','g','i','s','t','e','r',' ','d','o',' ','n','o','t',' ',
+  'm','a','t','c','h',#000,'E','_','I','n','t','e','r','n','a',
+  'l',' ','e','r','r','o','r',' ','i','n',' ','C','o','n','c',
+  'a','t','L','a','b','e','l','e','d','I','n','s','t','r','(',
+  ')',#000,'W','_','F','l','o','a','t','i','n','g',' ','p','o',
+  'i','n','t',' ','b','i','n','a','r','y',' ','r','e','p','r',
+  'e','s','e','n','t','a','t','i','o','n',' ','i','g','n','o',
+  'r','e','d',#000,'W','_','F','l','o','a','t','i','n','g',' ',
+  'p','o','i','n','t',' ','h','e','x','a','d','e','c','i','m',
+  'a','l',' ','r','e','p','r','e','s','e','n','t','a','t','i',
+  'o','n',' ','i','g','n','o','r','e','d',#000,'W','_','F','l',
+  'o','a','t','i','n','g',' ','p','o','i','n','t',' ','o','c',
+  't','a','l',' ','r','e','p','r','e','s','e','n','t','a','t',
+  'i','o','n',' ','i','g','n','o','r','e','d',#000,'E','_','I',
+  'n','v','a','l','i','d',' ','r','e','a','l',' ','c','o','n',
+  's','t','a','n','t',' ','e','x','p','r','e','s','s','i','o',
+  'n',#000,'E','_','P','a','r','e','n','t','h','e','s','i','s',
+  ' ','a','r','e',' ','n','o','t',' ','a','l','l','o','w','e',
+  'd',#000,'E','_','I','n','v','a','l','i','d',' ','R','e','f',
+  'e','r','e','n','c','e',#000,'E','_','C','a','n','n','o','t',
+  ' ','u','s','e',' ','_','_','S','E','L','F',' ','o','u','t',
+  's','i','d','e',' ','a',' ','m','e','t','h','o','d',#000,'E',
+  '_','C','a','n','n','o','t',' ','u','s','e',' ','_','_','O',
+  'L','D','E','B','P',' ','o','u','t','s','i','d','e',' ','a',
+  ' ','n','e','s','t','e','d',' ','p','r','o','c','e','d','u',
+  'r','e',#000,'W','_','I','d','e','n','t','i','f','i','e','r',
+  ' ','$','1',' ','s','u','p','p','o','s','e','d',' ','e','x',
+  't','e','r','n','a','l',#000,'E','_','I','n','v','a','l','i',
+  'd',' ','s','e','g','m','e','n','t',' ','o','v','e','r','r',
+  'i','d','e',' ','e','x','p','r','e','s','s','i','o','n',#000,
+  'E','_','S','t','r','i','n','g','s',' ','n','o','t',' ','a',
+  'l','l','o','w','e','d',' ','a','s',' ','c','o','n','s','t',
+  'a','n','t','s',#000,'D','_','S','t','a','r','t','i','n','g',
+  ' ','A','T','&','T',' ','s','t','y','l','e','d',' ','a','s',
+  's','e','m','b','l','e','r',' ','p','a','r','s','i','n','g',
+  '.','.','.',#000,'D','_','F','i','n','i','s','h','e','d',' ',
+  'A','T','&','T',' ','s','t','y','l','e','d',' ','a','s','s',
+  'e','m','b','l','e','r',' ','p','a','r','s','i','n','g','.',
+  '.','.',#000,'E','_','S','w','i','t','c','h','i','n','g',' ',
+  's','e','c','t','i','o','n','s',' ','i','s',' ','n','o','t',
+  ' ','a','l','l','o','w','e','d',' ','i','n',' ','a','n',' ',
+  'a','s','s','e','m','b','l','e','r',' ','b','l','o','c','k',
+  #000,'E','_','I','n','v','a','l','i','d',' ','g','l','o','b',
+  'a','l',' ','d','e','f','i','n','i','t','i','o','n',#000,'E',
+  '_','L','i','n','e',' ','s','e','p','a','r','a','t','o','r',
+  ' ','e','x','p','e','c','t','e','d',#000,'W','_','g','l','o',
+  'b','l',' ','n','o','t',' ','s','u','p','p','o','r','t','e',
+  'd',#000,'W','_','a','l','i','g','n',' ','n','o','t',' ','s',
+  'u','p','p','o','r','t','e','d',#000,'W','_','l','c','o','m',
+  'm',' ','n','o','t',' ','s','u','p','p','o','r','t','e','d',
+  #000,'W','_','c','o','m','m',' ','n','o','t',' ','s','u','p',
+  'p','o','r','t','e','d',#000,'E','_','I','n','v','a','l','i',
+  'd',' ','l','o','c','a','l',' ','c','o','m','m','o','n',' ',
+  'd','e','f','i','n','i','t','i','o','n',#000,'E','_','I','n',
+  'v','a','l','i','d',' ','g','l','o','b','a','l',' ','c','o',
+  'm','m','o','n',' ','d','e','f','i','n','i','t','i','o','n',
+  #000,'E','_','l','o','c','a','l',' ','s','y','m','b','o','l',
+  ':',' ','$','1',' ','n','o','t',' ','f','o','u','n','d',' ',
+  'i','n','s','i','d','e',' ','a','s','m',' ','s','t','a','t',
+  'e','m','e','n','t',#000,'E','_','a','s','s','e','m','b','l',
+  'e','r',' ','c','o','d','e',' ','n','o','t',' ','r','e','t',
+  'u','r','n','e','d',' ','t','o',' ','t','e','x','t',#000,'F',
+  '_','i','n','t','e','r','n','a','l',' ','e','r','r','o','r',
+  ' ','i','n',' ','B','u','i','l','d','R','e','f','e','r','e',
+  'n','c','e','(',')',#000,'E','_','i','n','v','a','l','i','d',
+  ' ','o','p','c','o','d','e',' ','s','i','z','e',#000,'W','_',
+  'N','E','A','R',' ','i','g','n','o','r','e','d',#000,'W','_',
+  'F','A','R',' ','i','g','n','o','r','e','d',#000,'D','_','C',
+  'r','e','a','t','i','n','g',' ','i','n','l','i','n','e',' ',
+  'a','s','m',' ','l','o','o','k','u','p',' ','t','a','b','l',
+  'e','s',#000,'W','_','U','s','i','n','g',' ','a',' ','d','e',
+  'f','i','n','e','d',' ','n','a','m','e',' ','a','s',' ','a',
+  ' ','l','o','c','a','l',' ','l','a','b','e','l',#000,'F','_',
+  'i','n','t','e','r','n','a','l',' ','e','r','r','o','r',' ',
+  'i','n',' ','H','a','n','d','l','e','E','x','t','e','n','d',
+  '(',')',#000,'E','_','I','n','v','a','l','i','d',' ','c','h',
+  'a','r','a','c','t','e','r',':',' ','<',#000,'E','_','I','n',
+  'v','a','l','i','d',' ','c','h','a','r','a','c','t','e','r',
+  ':',' ','>',#000,'E','_','U','n','s','u','p','p','o','r','t',
+  'e','d',' ','o','p','c','o','d','e',#000,'E','_','I','n','c',
+  'r','e','m','e','n','t',' ','a','n','d',' ','D','e','c','r',
+  'e','m','e','n','t',' ','m','o','d','e',' ','n','o','t',' ',
+  'a','l','l','o','w','e','d',' ','t','o','g','e','t','h','e',
+  'r',#000,'E','_','I','n','v','a','l','i','d',' ','R','e','g',
+  'i','s','t','e','r',' ','l','i','s','t',' ','i','n',' ','m',
+  'o','v','e','m','/','f','m','o','v','e','m',#000,'E','_','I',
+  'n','v','a','l','i','d',' ','R','e','g','i','s','t','e','r',
+  ' ','l','i','s','t',' ','f','o','r',' ','o','p','c','o','d',
+  'e',#000,'E','_','6','8','0','2','0','+',' ','m','o','d','e',
+  ' ','r','e','q','u','i','r','e','d',' ','t','o',' ','a','s',
+  's','e','m','b','l','e',#000,'D','_','S','t','a','r','t','i',
+  'n','g',' ','M','o','t','o','r','o','l','a',' ','s','t','y',
+  'l','e','d',' ','a','s','s','e','m','b','l','e','r',' ','p',
+  'a','r','s','i','n','g','.','.','.',#000,'D','_','F','i','n',
+  'i','s','h','e','d',' ','M','o','t','o','r','o','l','a',' ',
+  's','t','y','l','e','d',' ','a','s','s','e','m','b','l','e',
+  'r',' ','p','a','r','s','i','n','g','.','.','.',#000,'W','_',
+  'X','D','E','F',' ','n','o','t',' ','s','u','p','p','o','r',
+  't','e','d',#000,'W','_','F','u','n','c','t','i','o','n','s',
+  ' ','w','i','t','h',' ','v','o','i','d',' ','r','e','t','u',
+  'r','n',' ','v','a','l','u','e',' ','c','a','n',#039,'t',' ',
+  'r','e','t','u','r','n',' ','a','n','y',' ','v','a','l','u',
+  'e',' ','i','n',' ','a','s','m',' ','c','o','d','e',#000,'E',
+  '_','I','n','v','a','l','i','d',' ','s','u','f','f','i','x',
+  ' ','f','o','r',' ','i','n','t','e','l',' ','a','s','s','e',
+  'm','b','l','e','r',#000,'E','_','E','x','t','e','n','d','e',
+  'd',' ','n','o','t',' ','s','u','p','p','o','r','t','e','d',
+  ' ','i','n',' ','t','h','i','s',' ','m','o','d','e',#000,'E',
+  '_','C','o','m','p',' ','n','o','t',' ','s','u','p','p','o',
   'r','t','e','d',' ','i','n',' ','t','h','i','s',' ','m','o',
-  'd','e',#000,'E','_','C','o','m','p',' ','n','o','t',' ','s',
-  'u','p','p','o','r','t','e','d',' ','i','n',' ','t','h','i',
-  's',' ','m','o','d','e',#000,'W','_','Y','o','u',' ','n','e',
-  'e','d',' ','G','N','U',' ','a','s',' ','v','e','r','s','i',
-  'o','n',' ','>','=',' ','2','.','8','1',' ','t','o',' ','c',
-  'o','m','p','i','l','e',' ','t','h','i','s',' ','M','M','X',
-  ' ','c','o','d','e',#000,'I','_','A','s','s','e','m','b','l',
-  'i','n','g',' ','(','p','i','p','e',')',' ','$','1',#000,'E',
-  '_','C','a','n',#039,'t',' ','c','r','e','a','t','e',' ','a',
-  's','s','e','m','b','e','r',' ','f','i','l','e',' ','$','1',
-  #000,'W','_','A','s','s','e','m','b','l','e','r',' ','$','1',
-  ' ','n','o','t',' ','f','o','u','n','d',',',' ','s','w','i',
-  't','c','h','i','n','g',' ','t','o',' ','e','x','t','e','r',
-  'n','a','l',' ','a','s','s','e','m','b','l','i','n','g',#000,
-  'U','_','U','s','i','n','g',' ','a','s','s','e','m','b','l',
-  'e','r',':',' ','$','1',#000,'W','_','E','r','r','o','r',' ',
-  'w','h','i','l','e',' ','a','s','s','e','m','b','l','i','n',
-  'g',#000,'W','_','C','a','n',#039,'t',' ','c','a','l','l',' ',
-  't','h','e',' ','a','s','s','e','m','b','l','e','r',',',' ',
-  's','w','i','t','c','h','i','n','g',' ','t','o',' ','e','x',
-  't','e','r','n','a','l',' ','a','s','s','e','m','b','l','i',
-  'n','g',#000,'I','_','A','s','s','e','m','b','l','i','n','g',
-  ' ','$','1',#000,'W','_','L','i','n','k','e','r',' ','$','1',
-  ' ','n','o','t',' ','f','o','u','n','d',',',' ','s','w','i',
-  't','c','h','i','n','g',' ','t','o',' ','e','x','t','e','r',
-  'n','a','l',' ','l','i','n','k','i','n','g',#000,'U','_','U',
-  's','i','n','g',' ','l','i','n','k','e','r',':',' ','$','1',
-  #000,'E','_','F','i','l','e',' ','$','1',' ','n','o','t',' ',
-  'f','o','u','n','d',',',' ','L','i','n','k','i','n','g',' ',
-  'm','a','y',' ','f','a','i','l',' ','!','!',#000,'W','_','E',
-  'r','r','o','r',' ','w','h','i','l','e',' ','l','i','n','k',
-  'i','n','g',#000,'W','_','C','a','n',#039,'t',' ','c','a','l',
-  'l',' ','t','h','e',' ','l','i','n','k','e','r',',',' ','s',
+  'd','e',#000,'W','_','Y','o','u',' ','n','e','e','d',' ','G',
+  'N','U',' ','a','s',' ','v','e','r','s','i','o','n',' ','>',
+  '=',' ','2','.','8','1',' ','t','o',' ','c','o','m','p','i',
+  'l','e',' ','t','h','i','s',' ','M','M','X',' ','c','o','d',
+  'e',#000,'I','_','A','s','s','e','m','b','l','i','n','g',' ',
+  '(','p','i','p','e',')',' ','$','1',#000,'E','_','C','a','n',
+  #039,'t',' ','c','r','e','a','t','e',' ','a','s','s','e','m',
+  'b','e','r',' ','f','i','l','e',' ','$','1',#000,'W','_','A',
+  's','s','e','m','b','l','e','r',' ','$','1',' ','n','o','t',
+  ' ','f','o','u','n','d',',',' ','s','w','i','t','c','h','i',
+  'n','g',' ','t','o',' ','e','x','t','e','r','n','a','l',' ',
+  'a','s','s','e','m','b','l','i','n','g',#000,'U','_','U','s',
+  'i','n','g',' ','a','s','s','e','m','b','l','e','r',':',' ',
+  '$','1',#000,'W','_','E','r','r','o','r',' ','w','h','i','l',
+  'e',' ','a','s','s','e','m','b','l','i','n','g',#000,'W','_',
+  'C','a','n',#039,'t',' ','c','a','l','l',' ','t','h','e',' ',
+  'a','s','s','e','m','b','l','e','r',',',' ','s','w','i','t',
+  'c','h','i','n','g',' ','t','o',' ','e','x','t','e','r','n',
+  'a','l',' ','a','s','s','e','m','b','l','i','n','g',#000,'I',
+  '_','A','s','s','e','m','b','l','i','n','g',' ','$','1',#000,
+  'W','_','L','i','n','k','e','r',' ','$','1',' ','n','o','t',
+  ' ','f','o','u','n','d',',',' ','s','w','i','t','c','h','i',
+  'n','g',' ','t','o',' ','e','x','t','e','r','n','a','l',' ',
+  'l','i','n','k','i','n','g',#000,'U','_','U','s','i','n','g',
+  ' ','l','i','n','k','e','r',':',' ','$','1',#000,'E','_','F',
+  'i','l','e',' ','$','1',' ','n','o','t',' ','f','o','u','n',
+  'd',',',' ','L','i','n','k','i','n','g',' ','m','a','y',' ',
+  'f','a','i','l',' ','!','!',#000,'W','_','E','r','r','o','r',
+  ' ','w','h','i','l','e',' ','l','i','n','k','i','n','g',#000,
+  'W','_','C','a','n',#039,'t',' ','c','a','l','l',' ','t','h',
+  'e',' ','l','i','n','k','e','r',',',' ','s','w','i','t','c',
+  'h','i','n','g',' ','t','o',' ','e','x','t','e','r','n','a',
+  'l',' ','l','i','n','k','i','n','g',#000,'I','_','L','i','n',
+  'k','i','n','g',' ','$','1',#000,'W','_','b','i','n','d','e',
+  'r',' ','n','o','t',' ','f','o','u','n','d',',',' ','s','w',
+  'i','t','c','h','i','n','g',' ','t','o',' ','e','x','t','e',
+  'r','n','a','l',' ','b','i','n','d','i','n','g',#000,'W','_',
+  'a','r',' ','n','o','t',' ','f','o','u','n','d',',',' ','s',
   'w','i','t','c','h','i','n','g',' ','t','o',' ','e','x','t',
-  'e','r','n','a','l',' ','l','i','n','k','i','n','g',#000,'I',
-  '_','L','i','n','k','i','n','g',' ','$','1',#000,'W','_','b',
-  'i','n','d','e','r',' ','n','o','t',' ','f','o','u','n','d',
-  ',',' ','s','w','i','t','c','h','i','n','g',' ','t','o',' ',
-  'e','x','t','e','r','n','a','l',' ','b','i','n','d','i','n',
-  'g',#000,'W','_','a','r',' ','n','o','t',' ','f','o','u','n',
-  'd',',',' ','s','w','i','t','c','h','i','n','g',' ','t','o',
-  ' ','e','x','t','e','r','n','a','l',' ','a','r',#000,'E','_',
-  'D','y','n','a','m','i','c',' ','L','i','b','r','a','r','i',
-  'e','s',' ','n','o','t',' ','s','u','p','p','o','r','t','e',
-  'd',#000,'I','_','C','l','o','s','i','n','g',' ','s','c','r',
-  'i','p','t',' ','$','1',#000,'U','_','P','P','U',' ','L','o',
-  'a','d','i','n','g',' ','$','1',#000,'D','_','P','P','U',' ',
-  'T','i','m','e',':',' ','$','1',#000,'D','_','P','P','U',' ',
-  'F','i','l','e',' ','t','o','o',' ','s','h','o','r','t',#000,
-  'D','_','P','P','U',' ','I','n','v','a','l','i','d',' ','H',
-  'e','a','d','e','r',' ','(','n','o',' ','P','P','U',' ','a',
-  't',' ','t','h','e',' ','b','e','g','i','n',')',#000,'D','_',
-  'P','P','U',' ','I','n','v','a','l','i','d',' ','V','e','r',
-  's','i','o','n',' ','$','1',#000,'D','_','P','P','U',' ','F',
-  'l','a','g','s',':',' ','$','1',#000,'D','_','P','P','U',' ',
-  'C','r','c',':',' ','$','1',#000,'T','_','P','P','U',' ','S',
-  'o','u','r','c','e',':',' ','$','1',#000,'D','_','o','b','j',
-  'e','c','t','f','i','l','e',' ','a','n','d',' ','a','s','s',
-  'e','m','b','l','e','r','f','i','l','e',' ','a','r','e',' ',
-  'o','l','d','e','r',' ','t','h','a','n',' ','p','p','u','f',
-  'i','l','e',#000,'D','_','o','b','j','e','c','t','f','i','l',
-  'e',' ','i','s',' ','o','l','d','e','r',' ','t','h','a','n',
-  ' ','a','s','s','e','m','b','l','e','r','f','i','l','e',#000,
-  'T','_','U','n','i','t','s','e','a','r','c','h',':',' ','$',
-  '1',#000,'U','_','W','r','i','t','i','n','g',' ','$','1',#000,
-  'F','_','C','a','n',#039,'t',' ','W','r','i','t','e',' ','P',
-  'P','U','-','F','i','l','e',#000,'F','_','r','e','a','d','i',
-  'n','g',' ','P','P','U','-','F','i','l','e',#000,'F','_','I',
-  'n','v','a','l','i','d',' ','P','P','U','-','F','i','l','e',
-  ' ','e','n','t','r','y',':',' ','$','1',#000,'F','_','P','P',
-  'U',' ','D','b','x',' ','c','o','u','n','t',' ','p','r','o',
-  'b','l','e','m',#000,'E','_','I','l','l','e','g','a','l',' ',
-  'u','n','i','t',' ','n','a','m','e',':',' ','$','1',#000,'F',
-  '_','T','o','o',' ','m','u','c','h',' ','u','n','i','t','s',
-  #000,'F','_','C','i','r','c','u','l','a','r',' ','u','n','i',
-  't',' ','r','e','f','e','r','e','n','c','e',#000,'F','_','C',
-  'a','n',#039,'t',' ','c','o','m','p','i','l','e',' ','u','n',
-  'i','t',' ','$','1',',',' ','n','o',' ','s','o','u','r','c',
-  'e','s',' ','a','v','a','i','l','a','b','l','e',#000,'W','_',
-  'C','o','m','p','i','l','i','n','g',' ','t','h','e',' ','s',
-  'y','s','t','e','m',' ','u','n','i','t',' ','r','e','q','u',
-  'i','r','e','s',' ','t','h','e',' ','-','U','s',' ','s','w',
-  'i','t','c','h',#000,'E','_','$','1',' ','E','r','r','o','r',
-  's',#000,'F','_','T','h','e','r','e',' ','w','e','r','e',' ',
-  'e','r','r','o','r','s',' ','c','o','m','p','i','l','i','n',
-  'g',' ','m','o','d','u','l','e',',',' ','c','o','m','p','i',
-  'l','a','t','i','o','n',' ','s','t','o','p','p','e','d',#000);
+  'e','r','n','a','l',' ','a','r',#000,'E','_','D','y','n','a',
+  'm','i','c',' ','L','i','b','r','a','r','i','e','s',' ','n',
+  'o','t',' ','s','u','p','p','o','r','t','e','d',#000,'I','_',
+  'C','l','o','s','i','n','g',' ','s','c','r','i','p','t',' ',
+  '$','1',#000,'U','_','P','P','U',' ','L','o','a','d','i','n',
+  'g',' ','$','1',#000,'D','_','P','P','U',' ','T','i','m','e',
+  ':',' ','$','1',#000,'D','_','P','P','U',' ','F','i','l','e',
+  ' ','t','o','o',' ','s','h','o','r','t',#000,'D','_','P','P',
+  'U',' ','I','n','v','a','l','i','d',' ','H','e','a','d','e',
+  'r',' ','(','n','o',' ','P','P','U',' ','a','t',' ','t','h',
+  'e',' ','b','e','g','i','n',')',#000,'D','_','P','P','U',' ',
+  'I','n','v','a','l','i','d',' ','V','e','r','s','i','o','n',
+  ' ','$','1',#000,'D','_','P','P','U',' ','F','l','a','g','s',
+  ':',' ','$','1',#000,'D','_','P','P','U',' ','C','r','c',':',
+  ' ','$','1',#000,'T','_','P','P','U',' ','S','o','u','r','c',
+  'e',':',' ','$','1',#000,'D','_','o','b','j','e','c','t','f',
+  'i','l','e',' ','a','n','d',' ','a','s','s','e','m','b','l',
+  'e','r','f','i','l','e',' ','a','r','e',' ','o','l','d','e',
+  'r',' ','t','h','a','n',' ','p','p','u','f','i','l','e',#000,
+  'D','_','o','b','j','e','c','t','f','i','l','e',' ','i','s',
+  ' ','o','l','d','e','r',' ','t','h','a','n',' ','a','s','s',
+  'e','m','b','l','e','r','f','i','l','e',#000,'T','_','U','n',
+  'i','t','s','e','a','r','c','h',':',' ','$','1',#000,'U','_',
+  'W','r','i','t','i','n','g',' ','$','1',#000,'F','_','C','a',
+  'n',#039,'t',' ','W','r','i','t','e',' ','P','P','U','-','F',
+  'i','l','e',#000,'F','_','r','e','a','d','i','n','g',' ','P',
+  'P','U','-','F','i','l','e',#000,'F','_','I','n','v','a','l',
+  'i','d',' ','P','P','U','-','F','i','l','e',' ','e','n','t',
+  'r','y',':',' ','$','1',#000,'F','_','P','P','U',' ','D','b',
+  'x',' ','c','o','u','n','t',' ','p','r','o','b','l','e','m',
+  #000,'E','_','I','l','l','e','g','a','l',' ','u','n','i','t',
+  ' ','n','a','m','e',':',' ','$','1',#000,'F','_','T','o','o',
+  ' ','m','u','c','h',' ','u','n','i','t','s',#000,'F','_','C',
+  'i','r','c','u','l','a','r',' ','u','n','i','t',' ','r','e',
+  'f','e','r','e','n','c','e',#000,'F','_','C','a','n',#039,'t',
+  ' ','c','o','m','p','i','l','e',' ','u','n','i','t',' ','$',
+  '1',',',' ','n','o',' ','s','o','u','r','c','e','s',' ','a',
+  'v','a','i','l','a','b','l','e',#000,'W','_','C','o','m','p',
+  'i','l','i','n','g',' ','t','h','e',' ','s','y','s','t','e',
+  'm',' ','u','n','i','t',' ','r','e','q','u','i','r','e','s',
+  ' ','t','h','e',' ','-','U','s',' ','s','w','i','t','c','h',
+  #000,'E','_','$','1',' ','E','r','r','o','r','s',#000,'F','_',
+  'T','h','e','r','e',' ','w','e','r','e',' ','e','r','r','o',
+  'r','s',' ','c','o','m','p','i','l','i','n','g',' ','m','o',
+  'd','u','l','e',',',' ','c','o','m','p','i','l','a','t','i',
+  'o','n',' ','s','t','o','p','p','e','d',#000);

+ 13 - 3
compiler/pass_1.pas

@@ -2136,6 +2136,7 @@ unit pass_1;
        if not assigned(p^.left^.resulttype) then
         begin
           codegenerror:=true;
+          internalerror(52349);
           exit;
         end;
 
@@ -2988,11 +2989,11 @@ unit pass_1;
                end;
 {$endif}
            end; { not assigned(p^.procdefinition) }
-
+         { ensure that the result type is set }
+         p^.resulttype:=p^.procdefinition^.retdef;
          { get a register for the return value }
          if (p^.resulttype<>pdef(voiddef)) then
            begin
-              { the constructor returns the result with the flags }
               if (p^.procdefinition^.options and poconstructor)<>0 then
                 begin
                    { extra handling of classes }
@@ -3002,7 +3003,10 @@ unit pass_1;
                      begin
                         p^.location.loc:=LOC_REGISTER;
                         p^.registers32:=1;
+                        { the result type depends on the classref }
+                        p^.resulttype:=pclassrefdef(p^.methodpointer^.resulttype)^.definition;
                      end
+                  { a object constructor returns the result with the flags }
                    else
                      p^.location.loc:=LOC_FLAGS;
                 end
@@ -4496,7 +4500,13 @@ unit pass_1;
 end.
 {
   $Log$
-  Revision 1.6  1998-04-09 22:16:34  florian
+  Revision 1.7  1998-04-12 22:39:44  florian
+    * problem with read access to properties solved
+    * correct handling of hidding methods via virtual (COM)
+    * correct result type of constructor calls (COM), the resulttype
+      depends now on the type of the class reference
+
+  Revision 1.6  1998/04/09 22:16:34  florian
     * problem with previous REGALLOC solved
     * improved property support
 

+ 10 - 7
compiler/todo.txt

@@ -6,17 +6,17 @@ Please indent task which are done 8 spaces and add the
 compiler version and your short cut.
 
 * OPOM (Object Pascal Object Modell)
-  - virtual constructors
+        - virtual constructors ................................... 0.99.6 (FK)
   * properties
-    - save the def and not the sym which
-      does read/write access
-    - indexed properties
-    - default properties
+        - save the def and not the sym which
+          does read/write access ................................. 0.99.6 (FK)
+        - indexed properties ..................................... 0.99.6 (FK)
+        - default properties ..................................... 0.99.6 (FK)
     - stored qualifier
-    - read/write from/to unit file
+        - read/write from/to unit file ........................... 0.99.6 (FK)
   - call of destructor helper routine
   - message qualifier
-  - correct handling of constructor result type
+        - correct handling of constructor result type ............ 0.99.6 (FK)
   - rtti
   - dynamic methods
   - correct handling of access specifiers
@@ -39,6 +39,9 @@ compiler version and your short cut.
 - $P
 - range checking for open arrays
 - array of const as subroutine parameter
+- open array with call by value
+- subrange types of enumerations
+- method pointers (procedure of object)
 - code generation for exceptions
 - initialisation/finalization for units
 - fixed data type

+ 74 - 43
compiler/types.pas

@@ -669,18 +669,59 @@ unit types;
          _name : string;
          stored : boolean;
 
+      { creates a new entry in the procsym list }
+      procedure newentry;
+
+        begin
+           { if not, generate a new symbol item }
+           new(symcoll);
+           symcoll^.name:=stringdup(sym^.name);
+           symcoll^.next:=wurzel;
+           symcoll^.data:=nil;
+           wurzel:=symcoll;
+           hp:=pprocsym(sym)^.definition;
+
+           { inserts all definitions }
+           while assigned(hp) do
+             begin
+                new(procdefcoll);
+                procdefcoll^.data:=hp;
+                procdefcoll^.next:=symcoll^.data;
+                symcoll^.data:=procdefcoll;
+
+                { if it's a virtual method }
+                if (hp^.options and povirtualmethod)<>0 then
+                  begin
+                     { then it gets a number ... }
+                     hp^.extnumber:=nextvirtnumber;
+                     { and we inc the number }
+                     inc(nextvirtnumber);
+                     has_virtual_method:=true;
+                  end;
+
+                if (hp^.options and poconstructor)<>0 then
+                  has_constructor:=true;
+
+                { check, if a method should be overridden }
+                if (hp^.options and pooverridingmethod)<>0 then
+                  Message1(parser_e_nothing_to_be_overridden,_c^.name^+'.'+_name);
+                { next overloaded method }
+                hp:=hp^.nextoverloaded;
+             end;
+        end;
+
       begin
-         { nur Unterprogrammsymbole werden in die VMT aufgenommen }
+         { put only sub routines into the VMT }
          if sym^.typ=procsym then
            begin
               _name:=sym^.name;
               symcoll:=wurzel;
               while assigned(symcoll) do
                 begin
-                   { wenn das Symbol in der Liste schon existiert }
+                   { does the symbol already exist in the list ? }
                    if _name=symcoll^.name^ then
                      begin
-                        { walk thorugh all defs of the symbol }
+                        { walk through all defs of the symbol }
                         hp:=pprocsym(sym)^.definition;
                         while assigned(hp) do
                           begin
@@ -701,7 +742,22 @@ unit types;
                                        { Fehler falls nur eine VIRTUAL }
                                        if (procdefcoll^.data^.options and povirtualmethod)<>
                                           (hp^.options and povirtualmethod) then
-                                            Message1(parser_e_overloaded_are_not_both_virtual,_c^.name^+'.'+_name);
+                                         begin
+                                            { in classes, we hide the old method }
+                                            if _c^.isclass then
+                                              begin
+                                                 { warn only if it is the first time,
+                                                   we hide the method }
+                                                 if _c=hp^._class then
+                                                   Message1(parser_w_should_use_override,_c^.name^+'.'+_name);
+                                                 newentry;
+                                                 exit;
+                                              end
+                                            else
+                                              begin
+                                                 Message1(parser_e_overloaded_are_not_both_virtual,_c^.name^+'.'+_name);
+                                              end;
+                                         end;
 
                                        { check, if the overridden directive is set }
                                        { (povirtualmethod is set! }
@@ -710,11 +766,14 @@ unit types;
                                        if _c^.isclass and
                                          ((hp^.options and pooverridingmethod)=0) then
                                          begin
-                                            { this isn't like handled like delphi !!!!! }
-                                            Message1(parser_e_must_use_override,_c^.name^+'.'+_name);
+                                            { warn only if it is the first time,
+                                              we hide the method }
+                                            if _c=hp^._class then
+                                              Message1(parser_w_should_use_override,_c^.name^+'.'+_name);
+                                            newentry;
+                                            exit;
                                          end;
 
-
                                        { error, if the return types aren't equal }
                                        if not(is_equal(procdefcoll^.data^.retdef,hp^.retdef)) then
                                          Message1(parser_e_overloaded_methodes_not_same_ret,_c^.name^+'.'+_name);
@@ -759,41 +818,7 @@ unit types;
                      end;
                    symcoll:=symcoll^.next;
                 end;
-              { if not, generate a new symbol item }
-              new(symcoll);
-              symcoll^.name:=stringdup(sym^.name);
-              symcoll^.next:=wurzel;
-              symcoll^.data:=nil;
-              wurzel:=symcoll;
-              hp:=pprocsym(sym)^.definition;
-
-              { inserts all definitions }
-              while assigned(hp) do
-                begin
-                   new(procdefcoll);
-                   procdefcoll^.data:=hp;
-                   procdefcoll^.next:=symcoll^.data;
-                   symcoll^.data:=procdefcoll;
-
-                   { if it's a virtual method }
-                   if (hp^.options and povirtualmethod)<>0 then
-                     begin
-                        { then it gets a number ... }
-                        hp^.extnumber:=nextvirtnumber;
-                        { and we inc the number }
-                        inc(nextvirtnumber);
-                        has_virtual_method:=true;
-                     end;
-
-                   if (hp^.options and poconstructor)<>0 then
-                     has_constructor:=true;
-
-                   { check, if a method should be overridden }
-                   if (hp^.options and pooverridingmethod)<>0 then
-                     Message1(parser_e_nothing_to_be_overridden,_c^.name^+'.'+_name);
-                   { next overloaded method }
-                   hp:=hp^.nextoverloaded;
-                end;
+             newentry;
            end;
       end;
 
@@ -900,7 +925,13 @@ unit types;
 end.
 {
   $Log$
-  Revision 1.7  1998-04-10 21:36:56  florian
+  Revision 1.8  1998-04-12 22:39:44  florian
+    * problem with read access to properties solved
+    * correct handling of hidding methods via virtual (COM)
+    * correct result type of constructor calls (COM), the resulttype
+      depends now on the type of the class reference
+
+  Revision 1.7  1998/04/10 21:36:56  florian
     + some stuff to support method pointers (procedure of object) added
       (declaration, parameter handling)