1 
2 //
3 // gSWF.h
4 //
5 // This file is generated by codegen/header.xsl
6 // DO NOT MODIFY
7 //
8 
9 
10 #ifndef SWF_H
11 #define SWF_H
12 
13 #include <cinttypes>
14 #include <cstdint>
15 #include <SWFReader.h>
16 #include <SWFTag.h>
17 #include <SWFAction.h>
18 #include <SWFFilter.h>
19 #include <SWFTrait.h>
20 #include <SWFList.h>
21 #include <SWFShapeItem.h>
22 #include <SWFGlyphList.h>
23 #include <SWFIdItems.h>
24 #include <SWFOpCode.h>
25 
26 namespace SWF {
27 
28 struct Context {
29 	public:
30 		Context();
31 
32 		int swfVersion;
33 		bool transientPropsToXML;
34 		bool debugTrace;
35 		bool exportAssets;
36 		bool quiet;
37 
38 		bool isLast;
39 		char tagVersion;
40 		bool alpha;
41 		bool many_shapes;
42 
43 		bool convertEncoding;
44 		const char *swf_encoding;
45 
46 		std::int32_t fillBits;
47 		std::int32_t lineBits;
48 		std::uint8_t glyphBits;
49 		std::uint8_t advanceBits;
50 		bool wideGlyphOffsets;
51 		bool wideMap;
52 		std::uint16_t glyphCount;
53 
54 };
55 
56 
57 class Rectangle : public Item {
58 	public:
59 		Rectangle();
60 		virtual ~Rectangle();
61 
62 		virtual bool parse( Reader *r, int end, Context *ctx );
63 		virtual void dump( int indent, Context *ctx );
64 		virtual size_t calcSize( Context *ctx, int start_at );
65 		virtual void write( Writer *w, Context *ctx );
66 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
67 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
68 
69 		static Rectangle* get( Reader *r, int end, Context *ctx );
70 		static Rectangle* getByName( const char *name );
71 
72 		std::int32_t getbits();
73 			void setbits( std::int32_t );
74 	std::int32_t getleft();
75 			void setleft( std::int32_t );
76 	std::int32_t getright();
77 			void setright( std::int32_t );
78 	std::int32_t gettop();
79 			void settop( std::int32_t );
80 	std::int32_t getbottom();
81 			void setbottom( std::int32_t );
82 
83 
84 	protected:
85 		std::int32_t bits; // integer
86 std::int32_t left; // integer
87 std::int32_t right; // integer
88 std::int32_t top; // integer
89 std::int32_t bottom; // integer
90 
91 };
92 
93 class Color : public Item {
94 	public:
95 		Color();
96 		virtual ~Color();
97 
98 		virtual bool parse( Reader *r, int end, Context *ctx );
99 		virtual void dump( int indent, Context *ctx );
100 		virtual size_t calcSize( Context *ctx, int start_at );
101 		virtual void write( Writer *w, Context *ctx );
102 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
103 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
104 
105 		static Color* get( Reader *r, int end, Context *ctx );
106 		static Color* getByName( const char *name );
107 
108 		std::uint8_t getred();
109 			void setred( std::uint8_t );
110 	std::uint8_t getgreen();
111 			void setgreen( std::uint8_t );
112 	std::uint8_t getblue();
113 			void setblue( std::uint8_t );
114 	std::uint8_t getalpha();
115 			void setalpha( std::uint8_t );
116 
117 
118 	protected:
119 		std::uint8_t red; // byte
120 std::uint8_t green; // byte
121 std::uint8_t blue; // byte
122 std::uint8_t alpha; // byte
123 
124 };
125 
126 class String : public Item {
127 	public:
128 		String();
129 		virtual ~String();
130 
131 		virtual bool parse( Reader *r, int end, Context *ctx );
132 		virtual void dump( int indent, Context *ctx );
133 		virtual size_t calcSize( Context *ctx, int start_at );
134 		virtual void write( Writer *w, Context *ctx );
135 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
136 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
137 
138 		static String* get( Reader *r, int end, Context *ctx );
139 		static String* getByName( const char *name );
140 
141 		char * getvalue();
142 			void setvalue( char * );
143 
144 
145 	protected:
146 		char * value; // string
147 
148 };
149 
150 class String2 : public Item {
151 	public:
152 		String2();
153 		virtual ~String2();
154 
155 		virtual bool parse( Reader *r, int end, Context *ctx );
156 		virtual void dump( int indent, Context *ctx );
157 		virtual size_t calcSize( Context *ctx, int start_at );
158 		virtual void write( Writer *w, Context *ctx );
159 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
160 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
161 
162 		static String2* get( Reader *r, int end, Context *ctx );
163 		static String2* getByName( const char *name );
164 
165 		char * getvalue();
166 			void setvalue( char * );
167 
168 
169 	protected:
170 		char * value; // string
171 
172 };
173 
174 class Transform : public Item {
175 	public:
176 		Transform();
177 		virtual ~Transform();
178 
179 		virtual bool parse( Reader *r, int end, Context *ctx );
180 		virtual void dump( int indent, Context *ctx );
181 		virtual size_t calcSize( Context *ctx, int start_at );
182 		virtual void write( Writer *w, Context *ctx );
183 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
184 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
185 
186 		static Transform* get( Reader *r, int end, Context *ctx );
187 		static Transform* getByName( const char *name );
188 
189 		bool getscaled();
190 			void setscaled( bool );
191 	std::int32_t getbitsScale();
192 			void setbitsScale( std::int32_t );
193 	float getscaleX();
194 			void setscaleX( float );
195 	float getscaleY();
196 			void setscaleY( float );
197 	bool getskewed();
198 			void setskewed( bool );
199 	std::int32_t getbitsSkew();
200 			void setbitsSkew( std::int32_t );
201 	float getskewX();
202 			void setskewX( float );
203 	float getskewY();
204 			void setskewY( float );
205 	std::int32_t getbitsTranslate();
206 			void setbitsTranslate( std::int32_t );
207 	std::int32_t gettransX();
208 			void settransX( std::int32_t );
209 	std::int32_t gettransY();
210 			void settransY( std::int32_t );
211 
212 
213 	protected:
214 		bool scaled; // bit
215 std::int32_t bitsScale; // integer
216 float scaleX; // fixedpoint
217 float scaleY; // fixedpoint
218 bool skewed; // bit
219 std::int32_t bitsSkew; // integer
220 float skewX; // fixedpoint
221 float skewY; // fixedpoint
222 std::int32_t bitsTranslate; // integer
223 std::int32_t transX; // integer
224 std::int32_t transY; // integer
225 
226 };
227 
228 class ColorTransform2 : public Item {
229 	public:
230 		ColorTransform2();
231 		virtual ~ColorTransform2();
232 
233 		virtual bool parse( Reader *r, int end, Context *ctx );
234 		virtual void dump( int indent, Context *ctx );
235 		virtual size_t calcSize( Context *ctx, int start_at );
236 		virtual void write( Writer *w, Context *ctx );
237 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
238 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
239 
240 		static ColorTransform2* get( Reader *r, int end, Context *ctx );
241 		static ColorTransform2* getByName( const char *name );
242 
243 		bool gethasOffset();
244 			void sethasOffset( bool );
245 	bool gethasFactor();
246 			void sethasFactor( bool );
247 	std::int32_t getbits();
248 			void setbits( std::int32_t );
249 	std::int32_t getfactorRed();
250 			void setfactorRed( std::int32_t );
251 	std::int32_t getfactorGreen();
252 			void setfactorGreen( std::int32_t );
253 	std::int32_t getfactorBlue();
254 			void setfactorBlue( std::int32_t );
255 	std::int32_t getfactorAlpha();
256 			void setfactorAlpha( std::int32_t );
257 	std::int32_t getoffsetRed();
258 			void setoffsetRed( std::int32_t );
259 	std::int32_t getoffsetGreen();
260 			void setoffsetGreen( std::int32_t );
261 	std::int32_t getoffsetBlue();
262 			void setoffsetBlue( std::int32_t );
263 	std::int32_t getoffsetAlpha();
264 			void setoffsetAlpha( std::int32_t );
265 
266 
267 	protected:
268 		bool hasOffset; // bit
269 bool hasFactor; // bit
270 std::int32_t bits; // integer
271 std::int32_t factorRed; // integer
272 std::int32_t factorGreen; // integer
273 std::int32_t factorBlue; // integer
274 std::int32_t factorAlpha; // integer
275 std::int32_t offsetRed; // integer
276 std::int32_t offsetGreen; // integer
277 std::int32_t offsetBlue; // integer
278 std::int32_t offsetAlpha; // integer
279 
280 };
281 
282 class Header : public Item {
283 	public:
284 		Header();
285 		virtual ~Header();
286 
287 		virtual bool parse( Reader *r, int end, Context *ctx );
288 		virtual void dump( int indent, Context *ctx );
289 		virtual size_t calcSize( Context *ctx, int start_at );
290 		virtual void write( Writer *w, Context *ctx );
291 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
292 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
293 
294 		static Header* get( Reader *r, int end, Context *ctx );
295 		static Header* getByName( const char *name );
296 
297 		Rectangle *getsize();
298 	std::int32_t getframerate();
299 			void setframerate( std::int32_t );
300 	std::uint16_t getframes();
301 			void setframes( std::uint16_t );
302 	List<Tag> *gettags();
303 
304 
305 	protected:
306 		Rectangle size; // object
307 std::int32_t framerate; // integer
308 std::uint16_t frames; // word
309 List<Tag> tags; // list
310 
311 };
312 
313 class LineStyle : public Item {
314 	public:
315 		LineStyle();
316 		virtual ~LineStyle();
317 
318 		virtual bool parse( Reader *r, int end, Context *ctx );
319 		virtual void dump( int indent, Context *ctx );
320 		virtual size_t calcSize( Context *ctx, int start_at );
321 		virtual void write( Writer *w, Context *ctx );
322 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
323 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
324 
325 		static LineStyle* get( Reader *r, int end, Context *ctx );
326 		static LineStyle* getByName( const char *name );
327 
328 		std::uint16_t getwidth();
329 			void setwidth( std::uint16_t );
330 	Color *getcolor();
331 	std::int32_t getstartCapStyle();
332 			void setstartCapStyle( std::int32_t );
333 	std::int32_t getjointStyle();
334 			void setjointStyle( std::int32_t );
335 	bool gethasFill();
336 			void sethasFill( bool );
337 	bool getnoHScale();
338 			void setnoHScale( bool );
339 	bool getnoVScale();
340 			void setnoVScale( bool );
341 	bool getpixelHinting();
342 			void setpixelHinting( bool );
343 	std::int32_t getreserved();
344 			void setreserved( std::int32_t );
345 	bool getnoClose();
346 			void setnoClose( bool );
347 	std::int32_t getendCapStyle();
348 			void setendCapStyle( std::int32_t );
349 	float getmiterLimitFactor();
350 			void setmiterLimitFactor( float );
351 	List<Style> *getfillStyles();
352 	Color *getfillColor();
353 
354 
355 	protected:
356 		std::uint16_t width; // word
357 Color color; // object
358 std::int32_t startCapStyle; // integer
359 std::int32_t jointStyle; // integer
360 bool hasFill; // bit
361 bool noHScale; // bit
362 bool noVScale; // bit
363 bool pixelHinting; // bit
364 std::int32_t reserved; // integer
365 bool noClose; // bit
366 std::int32_t endCapStyle; // integer
367 float miterLimitFactor; // fixedpoint2
368 List<Style> fillStyles; // list
369 Color fillColor; // object
370 
371 };
372 
373 class StyleList : public Item {
374 	public:
375 		StyleList();
376 		virtual ~StyleList();
377 
378 		virtual bool parse( Reader *r, int end, Context *ctx );
379 		virtual void dump( int indent, Context *ctx );
380 		virtual size_t calcSize( Context *ctx, int start_at );
381 		virtual void write( Writer *w, Context *ctx );
382 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
383 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
384 
385 		static StyleList* get( Reader *r, int end, Context *ctx );
386 		static StyleList* getByName( const char *name );
387 
388 		std::uint16_t getn_fillStyles();
389 			void setn_fillStyles( std::uint16_t );
390 	List<Style> *getfillStyles();
391 	std::uint16_t getn_lineStyles();
392 			void setn_lineStyles( std::uint16_t );
393 	List<LineStyle> *getlineStyles();
394 	std::int32_t getfillBits();
395 			void setfillBits( std::int32_t );
396 	std::int32_t getlineBits();
397 			void setlineBits( std::int32_t );
398 
399 
400 	protected:
401 		std::uint16_t n_fillStyles; // byteOrWord
402 List<Style> fillStyles; // list
403 std::uint16_t n_lineStyles; // byteOrWord
404 List<LineStyle> lineStyles; // list
405 std::int32_t fillBits; // integer
406 std::int32_t lineBits; // integer
407 
408 };
409 
410 class ShapeSetup : public ShapeItem {
411 	public:
412 		ShapeSetup();
413 		virtual ~ShapeSetup();
414 
415 		virtual bool parse( Reader *r, int end, Context *ctx );
416 		virtual void dump( int indent, Context *ctx );
417 		virtual size_t calcSize( Context *ctx, int start_at );
418 		virtual void write( Writer *w, Context *ctx );
419 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
420 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
421 
422 		static ShapeSetup* get( Reader *r, int end, Context *ctx );
423 		static ShapeSetup* getByName( const char *name );
424 
425 		bool gethasNewStyles();
426 			void sethasNewStyles( bool );
427 	bool gethasLineStyle();
428 			void sethasLineStyle( bool );
429 	bool gethasFillStyle1();
430 			void sethasFillStyle1( bool );
431 	bool gethasFillStyle0();
432 			void sethasFillStyle0( bool );
433 	bool gethasMoveTo();
434 			void sethasMoveTo( bool );
435 	std::int32_t getxybits();
436 			void setxybits( std::int32_t );
437 	std::int32_t getx();
438 			void setx( std::int32_t );
439 	std::int32_t gety();
440 			void sety( std::int32_t );
441 	std::int32_t getfillStyle0();
442 			void setfillStyle0( std::int32_t );
443 	std::int32_t getfillStyle1();
444 			void setfillStyle1( std::int32_t );
445 	std::int32_t getlineStyle();
446 			void setlineStyle( std::int32_t );
447 	StyleList *getstyles();
448 
449 
450 	protected:
451 		bool hasNewStyles; // bit
452 bool hasLineStyle; // bit
453 bool hasFillStyle1; // bit
454 bool hasFillStyle0; // bit
455 bool hasMoveTo; // bit
456 std::int32_t xybits; // integer
457 std::int32_t x; // integer
458 std::int32_t y; // integer
459 std::int32_t fillStyle0; // integer
460 std::int32_t fillStyle1; // integer
461 std::int32_t lineStyle; // integer
462 StyleList styles; // object
463 
464 };
465 
466 class CurveTo : public ShapeItem {
467 	public:
468 		CurveTo();
469 		virtual ~CurveTo();
470 
471 		virtual bool parse( Reader *r, int end, Context *ctx );
472 		virtual void dump( int indent, Context *ctx );
473 		virtual size_t calcSize( Context *ctx, int start_at );
474 		virtual void write( Writer *w, Context *ctx );
475 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
476 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
477 
478 		static CurveTo* get( Reader *r, int end, Context *ctx );
479 		static CurveTo* getByName( const char *name );
480 
481 		std::int32_t getbits();
482 			void setbits( std::int32_t );
483 	std::int32_t getx1();
484 			void setx1( std::int32_t );
485 	std::int32_t gety1();
486 			void sety1( std::int32_t );
487 	std::int32_t getx2();
488 			void setx2( std::int32_t );
489 	std::int32_t gety2();
490 			void sety2( std::int32_t );
491 
492 
493 	protected:
494 		std::int32_t bits; // integer
495 std::int32_t x1; // integer
496 std::int32_t y1; // integer
497 std::int32_t x2; // integer
498 std::int32_t y2; // integer
499 
500 };
501 
502 class Shape : public Item {
503 	public:
504 		Shape();
505 		virtual ~Shape();
506 
507 		virtual bool parse( Reader *r, int end, Context *ctx );
508 		virtual void dump( int indent, Context *ctx );
509 		virtual size_t calcSize( Context *ctx, int start_at );
510 		virtual void write( Writer *w, Context *ctx );
511 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
512 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
513 
514 		static Shape* get( Reader *r, int end, Context *ctx );
515 		static Shape* getByName( const char *name );
516 
517 		List<ShapeItem> *getedges();
518 
519 
520 	protected:
521 		List<ShapeItem> edges; // list
522 
523 };
524 
525 class GlyphShape : public Item {
526 	public:
527 		GlyphShape();
528 		virtual ~GlyphShape();
529 
530 		virtual bool parse( Reader *r, int end, Context *ctx );
531 		virtual void dump( int indent, Context *ctx );
532 		virtual size_t calcSize( Context *ctx, int start_at );
533 		virtual void write( Writer *w, Context *ctx );
534 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
535 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
536 
537 		static GlyphShape* get( Reader *r, int end, Context *ctx );
538 		static GlyphShape* getByName( const char *name );
539 
540 		std::int32_t getfillBits();
541 			void setfillBits( std::int32_t );
542 	std::int32_t getlineBits();
543 			void setlineBits( std::int32_t );
544 	List<ShapeItem> *getedges();
545 
546 
547 	protected:
548 		std::int32_t fillBits; // integer
549 std::int32_t lineBits; // integer
550 List<ShapeItem> edges; // list
551 
552 };
553 
554 class GradientItem : public Item {
555 	public:
556 		GradientItem();
557 		virtual ~GradientItem();
558 
559 		virtual bool parse( Reader *r, int end, Context *ctx );
560 		virtual void dump( int indent, Context *ctx );
561 		virtual size_t calcSize( Context *ctx, int start_at );
562 		virtual void write( Writer *w, Context *ctx );
563 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
564 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
565 
566 		static GradientItem* get( Reader *r, int end, Context *ctx );
567 		static GradientItem* getByName( const char *name );
568 
569 		std::uint8_t getposition();
570 			void setposition( std::uint8_t );
571 	Color *getcolor();
572 
573 
574 	protected:
575 		std::uint8_t position; // byte
576 Color color; // object
577 
578 };
579 
580 class Symbol : public Item {
581 	public:
582 		Symbol();
583 		virtual ~Symbol();
584 
585 		virtual bool parse( Reader *r, int end, Context *ctx );
586 		virtual void dump( int indent, Context *ctx );
587 		virtual size_t calcSize( Context *ctx, int start_at );
588 		virtual void write( Writer *w, Context *ctx );
589 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
590 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
591 
592 		static Symbol* get( Reader *r, int end, Context *ctx );
593 		static Symbol* getByName( const char *name );
594 
595 		std::uint16_t getobjectID();
596 			void setobjectID( std::uint16_t );
597 	char * getname();
598 			void setname( char * );
599 
600 
601 	protected:
602 		std::uint16_t objectID; // word
603 char * name; // string
604 
605 };
606 
607 class Frame : public Item {
608 	public:
609 		Frame();
610 		virtual ~Frame();
611 
612 		virtual bool parse( Reader *r, int end, Context *ctx );
613 		virtual void dump( int indent, Context *ctx );
614 		virtual size_t calcSize( Context *ctx, int start_at );
615 		virtual void write( Writer *w, Context *ctx );
616 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
617 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
618 
619 		static Frame* get( Reader *r, int end, Context *ctx );
620 		static Frame* getByName( const char *name );
621 
622 		std::uint32_t getnumber();
623 			void setnumber( std::uint32_t );
624 	char * getlabel();
625 			void setlabel( char * );
626 
627 
628 	protected:
629 		std::uint32_t number; // encodedu32
630 char * label; // string
631 
632 };
633 
634 class Scene : public Item {
635 	public:
636 		Scene();
637 		virtual ~Scene();
638 
639 		virtual bool parse( Reader *r, int end, Context *ctx );
640 		virtual void dump( int indent, Context *ctx );
641 		virtual size_t calcSize( Context *ctx, int start_at );
642 		virtual void write( Writer *w, Context *ctx );
643 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
644 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
645 
646 		static Scene* get( Reader *r, int end, Context *ctx );
647 		static Scene* getByName( const char *name );
648 
649 		std::uint32_t getoffset();
650 			void setoffset( std::uint32_t );
651 	char * getname();
652 			void setname( char * );
653 
654 
655 	protected:
656 		std::uint32_t offset; // encodedu32
657 char * name; // string
658 
659 };
660 
661 class Parameter : public Item {
662 	public:
663 		Parameter();
664 		virtual ~Parameter();
665 
666 		virtual bool parse( Reader *r, int end, Context *ctx );
667 		virtual void dump( int indent, Context *ctx );
668 		virtual size_t calcSize( Context *ctx, int start_at );
669 		virtual void write( Writer *w, Context *ctx );
670 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
671 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
672 
673 		static Parameter* get( Reader *r, int end, Context *ctx );
674 		static Parameter* getByName( const char *name );
675 
676 		std::uint8_t getreg();
677 			void setreg( std::uint8_t );
678 	char * getname();
679 			void setname( char * );
680 
681 
682 	protected:
683 		std::uint8_t reg; // byte
684 char * name; // string
685 
686 };
687 
688 class UChar : public Item {
689 	public:
690 		UChar();
691 		virtual ~UChar();
692 
693 		virtual bool parse( Reader *r, int end, Context *ctx );
694 		virtual void dump( int indent, Context *ctx );
695 		virtual size_t calcSize( Context *ctx, int start_at );
696 		virtual void write( Writer *w, Context *ctx );
697 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
698 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
699 
700 		static UChar* get( Reader *r, int end, Context *ctx );
701 		static UChar* getByName( const char *name );
702 
703 		std::uint8_t getvalue();
704 			void setvalue( std::uint8_t );
705 
706 
707 	protected:
708 		std::uint8_t value; // byte
709 
710 };
711 
712 class UShort : public Item {
713 	public:
714 		UShort();
715 		virtual ~UShort();
716 
717 		virtual bool parse( Reader *r, int end, Context *ctx );
718 		virtual void dump( int indent, Context *ctx );
719 		virtual size_t calcSize( Context *ctx, int start_at );
720 		virtual void write( Writer *w, Context *ctx );
721 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
722 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
723 
724 		static UShort* get( Reader *r, int end, Context *ctx );
725 		static UShort* getByName( const char *name );
726 
727 		std::uint16_t getvalue();
728 			void setvalue( std::uint16_t );
729 
730 
731 	protected:
732 		std::uint16_t value; // word
733 
734 };
735 
736 class ULong : public Item {
737 	public:
738 		ULong();
739 		virtual ~ULong();
740 
741 		virtual bool parse( Reader *r, int end, Context *ctx );
742 		virtual void dump( int indent, Context *ctx );
743 		virtual size_t calcSize( Context *ctx, int start_at );
744 		virtual void write( Writer *w, Context *ctx );
745 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
746 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
747 
748 		static ULong* get( Reader *r, int end, Context *ctx );
749 		static ULong* getByName( const char *name );
750 
751 		std::int32_t getvalue();
752 			void setvalue( std::int32_t );
753 
754 
755 	protected:
756 		std::int32_t value; // integer
757 
758 };
759 
760 class Short : public Item {
761 	public:
762 		Short();
763 		virtual ~Short();
764 
765 		virtual bool parse( Reader *r, int end, Context *ctx );
766 		virtual void dump( int indent, Context *ctx );
767 		virtual size_t calcSize( Context *ctx, int start_at );
768 		virtual void write( Writer *w, Context *ctx );
769 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
770 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
771 
772 		static Short* get( Reader *r, int end, Context *ctx );
773 		static Short* getByName( const char *name );
774 
775 		std::uint16_t getvalue();
776 			void setvalue( std::uint16_t );
777 
778 
779 	protected:
780 		std::uint16_t value; // word
781 
782 };
783 
784 class Float : public Item {
785 	public:
786 		Float();
787 		virtual ~Float();
788 
789 		virtual bool parse( Reader *r, int end, Context *ctx );
790 		virtual void dump( int indent, Context *ctx );
791 		virtual size_t calcSize( Context *ctx, int start_at );
792 		virtual void write( Writer *w, Context *ctx );
793 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
794 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
795 
796 		static Float* get( Reader *r, int end, Context *ctx );
797 		static Float* getByName( const char *name );
798 
799 		float getvalue();
800 			void setvalue( float );
801 
802 
803 	protected:
804 		float value; // float
805 
806 };
807 
808 class Double : public Item {
809 	public:
810 		Double();
811 		virtual ~Double();
812 
813 		virtual bool parse( Reader *r, int end, Context *ctx );
814 		virtual void dump( int indent, Context *ctx );
815 		virtual size_t calcSize( Context *ctx, int start_at );
816 		virtual void write( Writer *w, Context *ctx );
817 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
818 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
819 
820 		static Double* get( Reader *r, int end, Context *ctx );
821 		static Double* getByName( const char *name );
822 
823 		double getvalue();
824 			void setvalue( double );
825 
826 
827 	protected:
828 		double value; // double
829 
830 };
831 
832 class Kerning : public Item {
833 	public:
834 		Kerning();
835 		virtual ~Kerning();
836 
837 		virtual bool parse( Reader *r, int end, Context *ctx );
838 		virtual void dump( int indent, Context *ctx );
839 		virtual size_t calcSize( Context *ctx, int start_at );
840 		virtual void write( Writer *w, Context *ctx );
841 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
842 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
843 
844 		static Kerning* get( Reader *r, int end, Context *ctx );
845 		static Kerning* getByName( const char *name );
846 
847 		std::uint8_t geta();
848 			void seta( std::uint8_t );
849 	std::uint8_t getb();
850 			void setb( std::uint8_t );
851 	std::int32_t getadjustment();
852 			void setadjustment( std::int32_t );
853 
854 
855 	protected:
856 		std::uint8_t a; // byte
857 std::uint8_t b; // byte
858 std::int32_t adjustment; // integer
859 
860 };
861 
862 class WideKerning : public Item {
863 	public:
864 		WideKerning();
865 		virtual ~WideKerning();
866 
867 		virtual bool parse( Reader *r, int end, Context *ctx );
868 		virtual void dump( int indent, Context *ctx );
869 		virtual size_t calcSize( Context *ctx, int start_at );
870 		virtual void write( Writer *w, Context *ctx );
871 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
872 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
873 
874 		static WideKerning* get( Reader *r, int end, Context *ctx );
875 		static WideKerning* getByName( const char *name );
876 
877 		std::uint16_t geta();
878 			void seta( std::uint16_t );
879 	std::uint16_t getb();
880 			void setb( std::uint16_t );
881 	std::uint16_t getadjustment();
882 			void setadjustment( std::uint16_t );
883 
884 
885 	protected:
886 		std::uint16_t a; // word
887 std::uint16_t b; // word
888 std::uint16_t adjustment; // word
889 
890 };
891 
892 class TextEntry : public Item {
893 	public:
894 		TextEntry();
895 		virtual ~TextEntry();
896 
897 		virtual bool parse( Reader *r, int end, Context *ctx );
898 		virtual void dump( int indent, Context *ctx );
899 		virtual size_t calcSize( Context *ctx, int start_at );
900 		virtual void write( Writer *w, Context *ctx );
901 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
902 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
903 
904 		static TextEntry* get( Reader *r, int end, Context *ctx );
905 		static TextEntry* getByName( const char *name );
906 
907 		std::int32_t getglyph();
908 			void setglyph( std::int32_t );
909 	std::int32_t getadvance();
910 			void setadvance( std::int32_t );
911 
912 
913 	protected:
914 		std::int32_t glyph; // integer
915 std::int32_t advance; // integer
916 
917 };
918 
919 class TextEntry2 : public Item {
920 	public:
921 		TextEntry2();
922 		virtual ~TextEntry2();
923 
924 		virtual bool parse( Reader *r, int end, Context *ctx );
925 		virtual void dump( int indent, Context *ctx );
926 		virtual size_t calcSize( Context *ctx, int start_at );
927 		virtual void write( Writer *w, Context *ctx );
928 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
929 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
930 
931 		static TextEntry2* get( Reader *r, int end, Context *ctx );
932 		static TextEntry2* getByName( const char *name );
933 
934 		std::int32_t getglyph();
935 			void setglyph( std::int32_t );
936 	std::int32_t getadvance();
937 			void setadvance( std::int32_t );
938 
939 
940 	protected:
941 		std::int32_t glyph; // integer
942 std::int32_t advance; // integer
943 
944 };
945 
946 class TextRecord6 : public Item {
947 	public:
948 		TextRecord6();
949 		virtual ~TextRecord6();
950 
951 		virtual bool parse( Reader *r, int end, Context *ctx );
952 		virtual void dump( int indent, Context *ctx );
953 		virtual size_t calcSize( Context *ctx, int start_at );
954 		virtual void write( Writer *w, Context *ctx );
955 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
956 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
957 
958 		static TextRecord6* get( Reader *r, int end, Context *ctx );
959 		static TextRecord6* getByName( const char *name );
960 
961 		bool getisSetup();
962 			void setisSetup( bool );
963 	std::int32_t getreserved();
964 			void setreserved( std::int32_t );
965 	bool gethasFont();
966 			void sethasFont( bool );
967 	bool gethasColor();
968 			void sethasColor( bool );
969 	bool gethasMoveY();
970 			void sethasMoveY( bool );
971 	bool gethasMoveX();
972 			void sethasMoveX( bool );
973 	std::uint16_t getobjectID();
974 			void setobjectID( std::uint16_t );
975 	Color *getcolor();
976 	std::uint16_t getx();
977 			void setx( std::uint16_t );
978 	std::uint16_t gety();
979 			void sety( std::uint16_t );
980 	std::uint16_t getfontHeight();
981 			void setfontHeight( std::uint16_t );
982 	std::int32_t getnGlyphs();
983 			void setnGlyphs( std::int32_t );
984 	List<TextEntry> *getglyphs();
985 
986 
987 	protected:
988 		bool isSetup; // bit
989 std::int32_t reserved; // integer
990 bool hasFont; // bit
991 bool hasColor; // bit
992 bool hasMoveY; // bit
993 bool hasMoveX; // bit
994 std::uint16_t objectID; // word
995 Color color; // object
996 std::uint16_t x; // word
997 std::uint16_t y; // word
998 std::uint16_t fontHeight; // word
999 std::int32_t nGlyphs; // integer
1000 List<TextEntry> glyphs; // list
1001 
1002 };
1003 
1004 class TextRecord62 : public Item {
1005 	public:
1006 		TextRecord62();
1007 		virtual ~TextRecord62();
1008 
1009 		virtual bool parse( Reader *r, int end, Context *ctx );
1010 		virtual void dump( int indent, Context *ctx );
1011 		virtual size_t calcSize( Context *ctx, int start_at );
1012 		virtual void write( Writer *w, Context *ctx );
1013 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1014 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1015 
1016 		static TextRecord62* get( Reader *r, int end, Context *ctx );
1017 		static TextRecord62* getByName( const char *name );
1018 
1019 		bool getisSetup();
1020 			void setisSetup( bool );
1021 	std::int32_t getreserved();
1022 			void setreserved( std::int32_t );
1023 	bool gethasFont();
1024 			void sethasFont( bool );
1025 	bool gethasColor();
1026 			void sethasColor( bool );
1027 	bool gethasMoveY();
1028 			void sethasMoveY( bool );
1029 	bool gethasMoveX();
1030 			void sethasMoveX( bool );
1031 	std::uint16_t getobjectID();
1032 			void setobjectID( std::uint16_t );
1033 	Color *getcolor();
1034 	std::uint16_t getx();
1035 			void setx( std::uint16_t );
1036 	std::uint16_t gety();
1037 			void sety( std::uint16_t );
1038 	std::uint16_t getfontHeight();
1039 			void setfontHeight( std::uint16_t );
1040 	std::int32_t getnGlyphs();
1041 			void setnGlyphs( std::int32_t );
1042 	List<TextEntry2> *getglyphs();
1043 
1044 
1045 	protected:
1046 		bool isSetup; // bit
1047 std::int32_t reserved; // integer
1048 bool hasFont; // bit
1049 bool hasColor; // bit
1050 bool hasMoveY; // bit
1051 bool hasMoveX; // bit
1052 std::uint16_t objectID; // word
1053 Color color; // object
1054 std::uint16_t x; // word
1055 std::uint16_t y; // word
1056 std::uint16_t fontHeight; // word
1057 std::int32_t nGlyphs; // integer
1058 List<TextEntry2> glyphs; // list
1059 
1060 };
1061 
1062 class TextRecord7 : public Item {
1063 	public:
1064 		TextRecord7();
1065 		virtual ~TextRecord7();
1066 
1067 		virtual bool parse( Reader *r, int end, Context *ctx );
1068 		virtual void dump( int indent, Context *ctx );
1069 		virtual size_t calcSize( Context *ctx, int start_at );
1070 		virtual void write( Writer *w, Context *ctx );
1071 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1072 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1073 
1074 		static TextRecord7* get( Reader *r, int end, Context *ctx );
1075 		static TextRecord7* getByName( const char *name );
1076 
1077 		bool getisSetup();
1078 			void setisSetup( bool );
1079 	std::int32_t getreserved();
1080 			void setreserved( std::int32_t );
1081 	bool gethasFont();
1082 			void sethasFont( bool );
1083 	bool gethasColor();
1084 			void sethasColor( bool );
1085 	bool gethasMoveY();
1086 			void sethasMoveY( bool );
1087 	bool gethasMoveX();
1088 			void sethasMoveX( bool );
1089 	std::uint16_t getobjectID();
1090 			void setobjectID( std::uint16_t );
1091 	Color *getcolor();
1092 	std::uint16_t getx();
1093 			void setx( std::uint16_t );
1094 	std::uint16_t gety();
1095 			void sety( std::uint16_t );
1096 	std::uint16_t getfontHeight();
1097 			void setfontHeight( std::uint16_t );
1098 	std::uint8_t getnGlyphs();
1099 			void setnGlyphs( std::uint8_t );
1100 	List<TextEntry> *getglyphs();
1101 
1102 
1103 	protected:
1104 		bool isSetup; // bit
1105 std::int32_t reserved; // integer
1106 bool hasFont; // bit
1107 bool hasColor; // bit
1108 bool hasMoveY; // bit
1109 bool hasMoveX; // bit
1110 std::uint16_t objectID; // word
1111 Color color; // object
1112 std::uint16_t x; // word
1113 std::uint16_t y; // word
1114 std::uint16_t fontHeight; // word
1115 std::uint8_t nGlyphs; // byte
1116 List<TextEntry> glyphs; // list
1117 
1118 };
1119 
1120 class TextRecord72 : public Item {
1121 	public:
1122 		TextRecord72();
1123 		virtual ~TextRecord72();
1124 
1125 		virtual bool parse( Reader *r, int end, Context *ctx );
1126 		virtual void dump( int indent, Context *ctx );
1127 		virtual size_t calcSize( Context *ctx, int start_at );
1128 		virtual void write( Writer *w, Context *ctx );
1129 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1130 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1131 
1132 		static TextRecord72* get( Reader *r, int end, Context *ctx );
1133 		static TextRecord72* getByName( const char *name );
1134 
1135 		bool getisSetup();
1136 			void setisSetup( bool );
1137 	std::int32_t getreserved();
1138 			void setreserved( std::int32_t );
1139 	bool gethasFont();
1140 			void sethasFont( bool );
1141 	bool gethasColor();
1142 			void sethasColor( bool );
1143 	bool gethasMoveY();
1144 			void sethasMoveY( bool );
1145 	bool gethasMoveX();
1146 			void sethasMoveX( bool );
1147 	std::uint16_t getfontRef();
1148 			void setfontRef( std::uint16_t );
1149 	Color *getcolor();
1150 	std::uint16_t getx();
1151 			void setx( std::uint16_t );
1152 	std::uint16_t gety();
1153 			void sety( std::uint16_t );
1154 	std::uint16_t getfontHeight();
1155 			void setfontHeight( std::uint16_t );
1156 	std::uint8_t getnGlyphs();
1157 			void setnGlyphs( std::uint8_t );
1158 	List<TextEntry2> *getglyphs();
1159 
1160 
1161 	protected:
1162 		bool isSetup; // bit
1163 std::int32_t reserved; // integer
1164 bool hasFont; // bit
1165 bool hasColor; // bit
1166 bool hasMoveY; // bit
1167 bool hasMoveX; // bit
1168 std::uint16_t fontRef; // word
1169 Color color; // object
1170 std::uint16_t x; // word
1171 std::uint16_t y; // word
1172 std::uint16_t fontHeight; // word
1173 std::uint8_t nGlyphs; // byte
1174 List<TextEntry2> glyphs; // list
1175 
1176 };
1177 
1178 class TextRecord : public Item {
1179 	public:
1180 		TextRecord();
1181 		virtual ~TextRecord();
1182 
1183 		virtual bool parse( Reader *r, int end, Context *ctx );
1184 		virtual void dump( int indent, Context *ctx );
1185 		virtual size_t calcSize( Context *ctx, int start_at );
1186 		virtual void write( Writer *w, Context *ctx );
1187 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1188 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1189 
1190 		static TextRecord* get( Reader *r, int end, Context *ctx );
1191 		static TextRecord* getByName( const char *name );
1192 
1193 		List<TextRecord6> *getrecords();
1194 	TextRecord7 *getstring();
1195 
1196 
1197 	protected:
1198 		List<TextRecord6> records; // list
1199 TextRecord7 string; // object
1200 
1201 };
1202 
1203 class TextRecord2 : public Item {
1204 	public:
1205 		TextRecord2();
1206 		virtual ~TextRecord2();
1207 
1208 		virtual bool parse( Reader *r, int end, Context *ctx );
1209 		virtual void dump( int indent, Context *ctx );
1210 		virtual size_t calcSize( Context *ctx, int start_at );
1211 		virtual void write( Writer *w, Context *ctx );
1212 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1213 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1214 
1215 		static TextRecord2* get( Reader *r, int end, Context *ctx );
1216 		static TextRecord2* getByName( const char *name );
1217 
1218 		List<TextRecord62> *getrecords();
1219 	TextRecord72 *gettextString();
1220 
1221 
1222 	protected:
1223 		List<TextRecord62> records; // list
1224 TextRecord72 textString; // object
1225 
1226 };
1227 
1228 class Button : public Item {
1229 	public:
1230 		Button();
1231 		virtual ~Button();
1232 
1233 		virtual bool parse( Reader *r, int end, Context *ctx );
1234 		virtual void dump( int indent, Context *ctx );
1235 		virtual size_t calcSize( Context *ctx, int start_at );
1236 		virtual void write( Writer *w, Context *ctx );
1237 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1238 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1239 
1240 		static Button* get( Reader *r, int end, Context *ctx );
1241 		static Button* getByName( const char *name );
1242 
1243 		std::int32_t getreserved1();
1244 			void setreserved1( std::int32_t );
1245 	std::int32_t getreserved2();
1246 			void setreserved2( std::int32_t );
1247 	bool gethasBlendMode();
1248 			void sethasBlendMode( bool );
1249 	bool gethasFilterList();
1250 			void sethasFilterList( bool );
1251 	bool gethitTest();
1252 			void sethitTest( bool );
1253 	bool getdown();
1254 			void setdown( bool );
1255 	bool getover();
1256 			void setover( bool );
1257 	bool getup();
1258 			void setup( bool );
1259 	std::uint16_t getobjectID();
1260 			void setobjectID( std::uint16_t );
1261 	std::uint16_t getdepth();
1262 			void setdepth( std::uint16_t );
1263 	Transform *gettransform();
1264 	ColorTransform2 *getcolorTransform();
1265 	std::uint8_t getnumFilters();
1266 			void setnumFilters( std::uint8_t );
1267 	List<Filter> *getfilters();
1268 	std::uint8_t getblendMode();
1269 			void setblendMode( std::uint8_t );
1270 
1271 
1272 	protected:
1273 		std::int32_t reserved1; // integer
1274 std::int32_t reserved2; // integer
1275 bool hasBlendMode; // bit
1276 bool hasFilterList; // bit
1277 bool hitTest; // bit
1278 bool down; // bit
1279 bool over; // bit
1280 bool up; // bit
1281 std::uint16_t objectID; // word
1282 std::uint16_t depth; // word
1283 Transform transform; // object
1284 ColorTransform2 colorTransform; // object
1285 std::uint8_t numFilters; // byte
1286 List<Filter> filters; // list
1287 std::uint8_t blendMode; // byte
1288 
1289 };
1290 
1291 class Event : public Item {
1292 	public:
1293 		Event();
1294 		virtual ~Event();
1295 
1296 		virtual bool parse( Reader *r, int end, Context *ctx );
1297 		virtual void dump( int indent, Context *ctx );
1298 		virtual size_t calcSize( Context *ctx, int start_at );
1299 		virtual void write( Writer *w, Context *ctx );
1300 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1301 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1302 
1303 		static Event* get( Reader *r, int end, Context *ctx );
1304 		static Event* getByName( const char *name );
1305 
1306 		std::uint16_t getflags1();
1307 			void setflags1( std::uint16_t );
1308 	std::uint16_t getflags2();
1309 			void setflags2( std::uint16_t );
1310 	std::uint32_t getactionLength();
1311 			void setactionLength( std::uint32_t );
1312 	List<Action> *getactions();
1313 
1314 
1315 	protected:
1316 		std::uint16_t flags1; // word
1317 std::uint16_t flags2; // word
1318 std::uint32_t actionLength; // uint32
1319 List<Action> actions; // list
1320 
1321 };
1322 
1323 class Condition : public Item {
1324 	public:
1325 		Condition();
1326 		virtual ~Condition();
1327 
1328 		virtual bool parse( Reader *r, int end, Context *ctx );
1329 		virtual void dump( int indent, Context *ctx );
1330 		virtual size_t calcSize( Context *ctx, int start_at );
1331 		virtual void write( Writer *w, Context *ctx );
1332 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1333 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1334 
1335 		static Condition* get( Reader *r, int end, Context *ctx );
1336 		static Condition* getByName( const char *name );
1337 
1338 		std::uint16_t getnext();
1339 			void setnext( std::uint16_t );
1340 	bool getmenuEnter();
1341 			void setmenuEnter( bool );
1342 	bool getpointerReleaseOutside();
1343 			void setpointerReleaseOutside( bool );
1344 	bool getpointerDragEnter();
1345 			void setpointerDragEnter( bool );
1346 	bool getpointerDragLeave();
1347 			void setpointerDragLeave( bool );
1348 	bool getpointerReleaseInside();
1349 			void setpointerReleaseInside( bool );
1350 	bool getpointerPush();
1351 			void setpointerPush( bool );
1352 	bool getpointerLeave();
1353 			void setpointerLeave( bool );
1354 	bool getpointerEnter();
1355 			void setpointerEnter( bool );
1356 	std::int32_t getkey();
1357 			void setkey( std::int32_t );
1358 	bool getmenuLeave();
1359 			void setmenuLeave( bool );
1360 	List<Action> *getactions();
1361 
1362 
1363 	protected:
1364 		std::uint16_t next; // word
1365 bool menuEnter; // bit
1366 bool pointerReleaseOutside; // bit
1367 bool pointerDragEnter; // bit
1368 bool pointerDragLeave; // bit
1369 bool pointerReleaseInside; // bit
1370 bool pointerPush; // bit
1371 bool pointerLeave; // bit
1372 bool pointerEnter; // bit
1373 std::int32_t key; // integer
1374 bool menuLeave; // bit
1375 List<Action> actions; // list
1376 
1377 };
1378 
1379 class U30 : public Item {
1380 	public:
1381 		U30();
1382 		virtual ~U30();
1383 
1384 		virtual bool parse( Reader *r, int end, Context *ctx );
1385 		virtual void dump( int indent, Context *ctx );
1386 		virtual size_t calcSize( Context *ctx, int start_at );
1387 		virtual void write( Writer *w, Context *ctx );
1388 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1389 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1390 
1391 		static U30* get( Reader *r, int end, Context *ctx );
1392 		static U30* getByName( const char *name );
1393 
1394 		std::uint32_t getvalue();
1395 			void setvalue( std::uint32_t );
1396 
1397 
1398 	protected:
1399 		std::uint32_t value; // u30
1400 
1401 };
1402 
1403 class S24 : public Item {
1404 	public:
1405 		S24();
1406 		virtual ~S24();
1407 
1408 		virtual bool parse( Reader *r, int end, Context *ctx );
1409 		virtual void dump( int indent, Context *ctx );
1410 		virtual size_t calcSize( Context *ctx, int start_at );
1411 		virtual void write( Writer *w, Context *ctx );
1412 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1413 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1414 
1415 		static S24* get( Reader *r, int end, Context *ctx );
1416 		static S24* getByName( const char *name );
1417 
1418 		std::int32_t getvalue();
1419 			void setvalue( std::int32_t );
1420 
1421 
1422 	protected:
1423 		std::int32_t value; // s24
1424 
1425 };
1426 
1427 class ValueKind : public Item {
1428 	public:
1429 		ValueKind();
1430 		virtual ~ValueKind();
1431 
1432 		virtual bool parse( Reader *r, int end, Context *ctx );
1433 		virtual void dump( int indent, Context *ctx );
1434 		virtual size_t calcSize( Context *ctx, int start_at );
1435 		virtual void write( Writer *w, Context *ctx );
1436 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1437 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1438 
1439 		static ValueKind* get( Reader *r, int end, Context *ctx );
1440 		static ValueKind* getByName( const char *name );
1441 
1442 		std::uint32_t getindex();
1443 			void setindex( std::uint32_t );
1444 	std::uint8_t getkind();
1445 			void setkind( std::uint8_t );
1446 
1447 
1448 	protected:
1449 		std::uint32_t index; // u30
1450 std::uint8_t kind; // byte
1451 
1452 };
1453 
1454 class MethodInfo : public Item {
1455 	public:
1456 		MethodInfo();
1457 		virtual ~MethodInfo();
1458 
1459 		virtual bool parse( Reader *r, int end, Context *ctx );
1460 		virtual void dump( int indent, Context *ctx );
1461 		virtual size_t calcSize( Context *ctx, int start_at );
1462 		virtual void write( Writer *w, Context *ctx );
1463 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1464 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1465 
1466 		static MethodInfo* get( Reader *r, int end, Context *ctx );
1467 		static MethodInfo* getByName( const char *name );
1468 
1469 		std::uint32_t getparamCount();
1470 			void setparamCount( std::uint32_t );
1471 	std::uint32_t getretType();
1472 			void setretType( std::uint32_t );
1473 	List<U30> *getparamTypes();
1474 	std::uint32_t getnameIndex();
1475 			void setnameIndex( std::uint32_t );
1476 	bool gethasParamNames();
1477 			void sethasParamNames( bool );
1478 	bool getsetSDXNs();
1479 			void setsetSDXNs( bool );
1480 	bool getisExplicit();
1481 			void setisExplicit( bool );
1482 	bool getignoreRest();
1483 			void setignoreRest( bool );
1484 	bool gethasOptional();
1485 			void sethasOptional( bool );
1486 	bool getneedRest();
1487 			void setneedRest( bool );
1488 	bool getneedActivation();
1489 			void setneedActivation( bool );
1490 	bool getneedArguments();
1491 			void setneedArguments( bool );
1492 	std::uint32_t getoptionalCount();
1493 			void setoptionalCount( std::uint32_t );
1494 	List<ValueKind> *getoptional();
1495 	List<U30> *getparamNames();
1496 
1497 
1498 	protected:
1499 		std::uint32_t paramCount; // u30
1500 std::uint32_t retType; // u30
1501 List<U30> paramTypes; // list
1502 std::uint32_t nameIndex; // u30
1503 bool hasParamNames; // bit
1504 bool setSDXNs; // bit
1505 bool isExplicit; // bit
1506 bool ignoreRest; // bit
1507 bool hasOptional; // bit
1508 bool needRest; // bit
1509 bool needActivation; // bit
1510 bool needArguments; // bit
1511 std::uint32_t optionalCount; // u30
1512 List<ValueKind> optional; // list
1513 List<U30> paramNames; // list
1514 
1515 };
1516 
1517 class MetadataInfo : public Item {
1518 	public:
1519 		MetadataInfo();
1520 		virtual ~MetadataInfo();
1521 
1522 		virtual bool parse( Reader *r, int end, Context *ctx );
1523 		virtual void dump( int indent, Context *ctx );
1524 		virtual size_t calcSize( Context *ctx, int start_at );
1525 		virtual void write( Writer *w, Context *ctx );
1526 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1527 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1528 
1529 		static MetadataInfo* get( Reader *r, int end, Context *ctx );
1530 		static MetadataInfo* getByName( const char *name );
1531 
1532 		std::uint32_t getnameIndex();
1533 			void setnameIndex( std::uint32_t );
1534 	std::uint32_t getvaluesCount();
1535 			void setvaluesCount( std::uint32_t );
1536 	List<U30> *getkeys();
1537 	List<U30> *getvalues();
1538 
1539 
1540 	protected:
1541 		std::uint32_t nameIndex; // u30
1542 std::uint32_t valuesCount; // u30
1543 List<U30> keys; // list
1544 List<U30> values; // list
1545 
1546 };
1547 
1548 class NamespaceSet : public Item {
1549 	public:
1550 		NamespaceSet();
1551 		virtual ~NamespaceSet();
1552 
1553 		virtual bool parse( Reader *r, int end, Context *ctx );
1554 		virtual void dump( int indent, Context *ctx );
1555 		virtual size_t calcSize( Context *ctx, int start_at );
1556 		virtual void write( Writer *w, Context *ctx );
1557 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1558 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1559 
1560 		static NamespaceSet* get( Reader *r, int end, Context *ctx );
1561 		static NamespaceSet* getByName( const char *name );
1562 
1563 		std::uint32_t getcount();
1564 			void setcount( std::uint32_t );
1565 	List<U30> *getnamespaces();
1566 
1567 
1568 	protected:
1569 		std::uint32_t count; // u30
1570 List<U30> namespaces; // list
1571 
1572 };
1573 
1574 class TraitInfo : public Item {
1575 	public:
1576 		TraitInfo();
1577 		virtual ~TraitInfo();
1578 
1579 		virtual bool parse( Reader *r, int end, Context *ctx );
1580 		virtual void dump( int indent, Context *ctx );
1581 		virtual size_t calcSize( Context *ctx, int start_at );
1582 		virtual void write( Writer *w, Context *ctx );
1583 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1584 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1585 
1586 		static TraitInfo* get( Reader *r, int end, Context *ctx );
1587 		static TraitInfo* getByName( const char *name );
1588 
1589 		std::uint32_t getnameIndex();
1590 			void setnameIndex( std::uint32_t );
1591 	bool getreserved();
1592 			void setreserved( bool );
1593 	bool gethasMetadata();
1594 			void sethasMetadata( bool );
1595 	bool getoverride();
1596 			void setoverride( bool );
1597 	bool getfinal();
1598 			void setfinal( bool );
1599 	List<Trait> *gettrait();
1600 	std::uint32_t getmetadataCount();
1601 			void setmetadataCount( std::uint32_t );
1602 	List<U30> *getmetadata();
1603 
1604 
1605 	protected:
1606 		std::uint32_t nameIndex; // u30
1607 bool reserved; // bit
1608 bool hasMetadata; // bit
1609 bool override; // bit
1610 bool final; // bit
1611 List<Trait> trait; // list
1612 std::uint32_t metadataCount; // u30
1613 List<U30> metadata; // list
1614 
1615 };
1616 
1617 class InstanceInfo : public Item {
1618 	public:
1619 		InstanceInfo();
1620 		virtual ~InstanceInfo();
1621 
1622 		virtual bool parse( Reader *r, int end, Context *ctx );
1623 		virtual void dump( int indent, Context *ctx );
1624 		virtual size_t calcSize( Context *ctx, int start_at );
1625 		virtual void write( Writer *w, Context *ctx );
1626 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1627 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1628 
1629 		static InstanceInfo* get( Reader *r, int end, Context *ctx );
1630 		static InstanceInfo* getByName( const char *name );
1631 
1632 		std::uint32_t getnameIndex();
1633 			void setnameIndex( std::uint32_t );
1634 	std::uint32_t getsuperIndex();
1635 			void setsuperIndex( std::uint32_t );
1636 	std::int32_t getreserved();
1637 			void setreserved( std::int32_t );
1638 	bool gethasProtectedNS();
1639 			void sethasProtectedNS( bool );
1640 	bool getinterface();
1641 			void setinterface( bool );
1642 	bool getfinal();
1643 			void setfinal( bool );
1644 	bool getsealed();
1645 			void setsealed( bool );
1646 	std::uint32_t getprotectedNS();
1647 			void setprotectedNS( std::uint32_t );
1648 	std::uint32_t getinterfaceCount();
1649 			void setinterfaceCount( std::uint32_t );
1650 	List<U30> *getinterfaces();
1651 	std::uint32_t getiInitIndex();
1652 			void setiInitIndex( std::uint32_t );
1653 	std::uint32_t gettraitCount();
1654 			void settraitCount( std::uint32_t );
1655 	List<TraitInfo> *gettraits();
1656 
1657 
1658 	protected:
1659 		std::uint32_t nameIndex; // u30
1660 std::uint32_t superIndex; // u30
1661 std::int32_t reserved; // integer
1662 bool hasProtectedNS; // bit
1663 bool interface; // bit
1664 bool final; // bit
1665 bool sealed; // bit
1666 std::uint32_t protectedNS; // u30
1667 std::uint32_t interfaceCount; // u30
1668 List<U30> interfaces; // list
1669 std::uint32_t iInitIndex; // u30
1670 std::uint32_t traitCount; // u30
1671 List<TraitInfo> traits; // list
1672 
1673 };
1674 
1675 class ClassInfo : public Item {
1676 	public:
1677 		ClassInfo();
1678 		virtual ~ClassInfo();
1679 
1680 		virtual bool parse( Reader *r, int end, Context *ctx );
1681 		virtual void dump( int indent, Context *ctx );
1682 		virtual size_t calcSize( Context *ctx, int start_at );
1683 		virtual void write( Writer *w, Context *ctx );
1684 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1685 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1686 
1687 		static ClassInfo* get( Reader *r, int end, Context *ctx );
1688 		static ClassInfo* getByName( const char *name );
1689 
1690 		std::uint32_t getcInitIndex();
1691 			void setcInitIndex( std::uint32_t );
1692 	std::uint32_t gettraitCount();
1693 			void settraitCount( std::uint32_t );
1694 	List<TraitInfo> *gettraits();
1695 
1696 
1697 	protected:
1698 		std::uint32_t cInitIndex; // u30
1699 std::uint32_t traitCount; // u30
1700 List<TraitInfo> traits; // list
1701 
1702 };
1703 
1704 class ScriptInfo : public Item {
1705 	public:
1706 		ScriptInfo();
1707 		virtual ~ScriptInfo();
1708 
1709 		virtual bool parse( Reader *r, int end, Context *ctx );
1710 		virtual void dump( int indent, Context *ctx );
1711 		virtual size_t calcSize( Context *ctx, int start_at );
1712 		virtual void write( Writer *w, Context *ctx );
1713 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1714 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1715 
1716 		static ScriptInfo* get( Reader *r, int end, Context *ctx );
1717 		static ScriptInfo* getByName( const char *name );
1718 
1719 		std::uint32_t getinitIndex();
1720 			void setinitIndex( std::uint32_t );
1721 	std::uint32_t gettraitCount();
1722 			void settraitCount( std::uint32_t );
1723 	List<TraitInfo> *gettraits();
1724 
1725 
1726 	protected:
1727 		std::uint32_t initIndex; // u30
1728 std::uint32_t traitCount; // u30
1729 List<TraitInfo> traits; // list
1730 
1731 };
1732 
1733 class Exception : public Item {
1734 	public:
1735 		Exception();
1736 		virtual ~Exception();
1737 
1738 		virtual bool parse( Reader *r, int end, Context *ctx );
1739 		virtual void dump( int indent, Context *ctx );
1740 		virtual size_t calcSize( Context *ctx, int start_at );
1741 		virtual void write( Writer *w, Context *ctx );
1742 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1743 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1744 
1745 		static Exception* get( Reader *r, int end, Context *ctx );
1746 		static Exception* getByName( const char *name );
1747 
1748 		std::uint32_t gettryStart();
1749 			void settryStart( std::uint32_t );
1750 	std::uint32_t gettryEnd();
1751 			void settryEnd( std::uint32_t );
1752 	std::uint32_t gettarget();
1753 			void settarget( std::uint32_t );
1754 	std::uint32_t gettype();
1755 			void settype( std::uint32_t );
1756 	std::uint32_t getname();
1757 			void setname( std::uint32_t );
1758 
1759 
1760 	protected:
1761 		std::uint32_t tryStart; // u30
1762 std::uint32_t tryEnd; // u30
1763 std::uint32_t target; // u30
1764 std::uint32_t type; // u30
1765 std::uint32_t name; // u30
1766 
1767 };
1768 
1769 class MethodBody : public Item {
1770 	public:
1771 		MethodBody();
1772 		virtual ~MethodBody();
1773 
1774 		virtual bool parse( Reader *r, int end, Context *ctx );
1775 		virtual void dump( int indent, Context *ctx );
1776 		virtual size_t calcSize( Context *ctx, int start_at );
1777 		virtual void write( Writer *w, Context *ctx );
1778 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1779 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1780 
1781 		static MethodBody* get( Reader *r, int end, Context *ctx );
1782 		static MethodBody* getByName( const char *name );
1783 
1784 		std::uint32_t getmethodInfo();
1785 			void setmethodInfo( std::uint32_t );
1786 	std::uint32_t getmaxStack();
1787 			void setmaxStack( std::uint32_t );
1788 	std::uint32_t getmaxRegs();
1789 			void setmaxRegs( std::uint32_t );
1790 	std::uint32_t getscopeDepth();
1791 			void setscopeDepth( std::uint32_t );
1792 	std::uint32_t getmaxScope();
1793 			void setmaxScope( std::uint32_t );
1794 	std::uint32_t getcodeLength();
1795 			void setcodeLength( std::uint32_t );
1796 	List<OpCode> *getcode();
1797 	std::uint32_t getexceptionCount();
1798 			void setexceptionCount( std::uint32_t );
1799 	List<Exception> *getexceptions();
1800 	std::uint32_t gettraitCount();
1801 			void settraitCount( std::uint32_t );
1802 	List<TraitInfo> *gettraits();
1803 
1804 
1805 	protected:
1806 		std::uint32_t methodInfo; // u30
1807 std::uint32_t maxStack; // u30
1808 std::uint32_t maxRegs; // u30
1809 std::uint32_t scopeDepth; // u30
1810 std::uint32_t maxScope; // u30
1811 std::uint32_t codeLength; // u30
1812 List<OpCode> code; // list
1813 std::uint32_t exceptionCount; // u30
1814 List<Exception> exceptions; // list
1815 std::uint32_t traitCount; // u30
1816 List<TraitInfo> traits; // list
1817 
1818 };
1819 
1820 class Constants : public Item {
1821 	public:
1822 		Constants();
1823 		virtual ~Constants();
1824 
1825 		virtual bool parse( Reader *r, int end, Context *ctx );
1826 		virtual void dump( int indent, Context *ctx );
1827 		virtual size_t calcSize( Context *ctx, int start_at );
1828 		virtual void write( Writer *w, Context *ctx );
1829 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1830 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1831 
1832 		static Constants* get( Reader *r, int end, Context *ctx );
1833 		static Constants* getByName( const char *name );
1834 
1835 		std::uint32_t getintCount();
1836 			void setintCount( std::uint32_t );
1837 	List<U30> *getints();
1838 	std::uint32_t getuintCount();
1839 			void setuintCount( std::uint32_t );
1840 	List<U30> *getuints();
1841 	std::uint32_t getdoubleCount();
1842 			void setdoubleCount( std::uint32_t );
1843 	List<Double> *getdoubles();
1844 	std::uint32_t getstringCount();
1845 			void setstringCount( std::uint32_t );
1846 	List<String2> *getstrings();
1847 	std::uint32_t getnamespaceConstantCount();
1848 			void setnamespaceConstantCount( std::uint32_t );
1849 	List<NamespaceConstant> *getnamespaces();
1850 	std::uint32_t getnamespaceSetCount();
1851 			void setnamespaceSetCount( std::uint32_t );
1852 	List<NamespaceSet> *getnamespaceSets();
1853 	std::uint32_t getmultinameConstantCount();
1854 			void setmultinameConstantCount( std::uint32_t );
1855 	List<MultinameConstant> *getmultinames();
1856 
1857 
1858 	protected:
1859 		std::uint32_t intCount; // u30
1860 List<U30> ints; // list
1861 std::uint32_t uintCount; // u30
1862 List<U30> uints; // list
1863 std::uint32_t doubleCount; // u30
1864 List<Double> doubles; // list
1865 std::uint32_t stringCount; // u30
1866 List<String2> strings; // list
1867 std::uint32_t namespaceConstantCount; // u30
1868 List<NamespaceConstant> namespaces; // list
1869 std::uint32_t namespaceSetCount; // u30
1870 List<NamespaceSet> namespaceSets; // list
1871 std::uint32_t multinameConstantCount; // u30
1872 List<MultinameConstant> multinames; // list
1873 
1874 };
1875 
1876 class Action3 : public Item {
1877 	public:
1878 		Action3();
1879 		virtual ~Action3();
1880 
1881 		virtual bool parse( Reader *r, int end, Context *ctx );
1882 		virtual void dump( int indent, Context *ctx );
1883 		virtual size_t calcSize( Context *ctx, int start_at );
1884 		virtual void write( Writer *w, Context *ctx );
1885 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1886 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1887 
1888 		static Action3* get( Reader *r, int end, Context *ctx );
1889 		static Action3* getByName( const char *name );
1890 
1891 		std::uint16_t getminorVersion();
1892 			void setminorVersion( std::uint16_t );
1893 	std::uint16_t getmajorVersion();
1894 			void setmajorVersion( std::uint16_t );
1895 	Constants *getconstants();
1896 	std::uint32_t getmethodInfoCount();
1897 			void setmethodInfoCount( std::uint32_t );
1898 	List<MethodInfo> *getmethods();
1899 	std::uint32_t getmetadataInfoCount();
1900 			void setmetadataInfoCount( std::uint32_t );
1901 	List<MetadataInfo> *getmetadata();
1902 	std::uint32_t getclassCount();
1903 			void setclassCount( std::uint32_t );
1904 	List<InstanceInfo> *getinstances();
1905 	List<ClassInfo> *getclasses();
1906 	std::uint32_t getscriptCount();
1907 			void setscriptCount( std::uint32_t );
1908 	List<ScriptInfo> *getscripts();
1909 	std::uint32_t getmethodBodyCount();
1910 			void setmethodBodyCount( std::uint32_t );
1911 	List<MethodBody> *getmethodBodies();
1912 
1913 
1914 	protected:
1915 		std::uint16_t minorVersion; // word
1916 std::uint16_t majorVersion; // word
1917 Constants constants; // object
1918 std::uint32_t methodInfoCount; // u30
1919 List<MethodInfo> methods; // list
1920 std::uint32_t metadataInfoCount; // u30
1921 List<MetadataInfo> metadata; // list
1922 std::uint32_t classCount; // u30
1923 List<InstanceInfo> instances; // list
1924 List<ClassInfo> classes; // list
1925 std::uint32_t scriptCount; // u30
1926 List<ScriptInfo> scripts; // list
1927 std::uint32_t methodBodyCount; // u30
1928 List<MethodBody> methodBodies; // list
1929 
1930 };
1931 
1932 class ZoneData : public Item {
1933 	public:
1934 		ZoneData();
1935 		virtual ~ZoneData();
1936 
1937 		virtual bool parse( Reader *r, int end, Context *ctx );
1938 		virtual void dump( int indent, Context *ctx );
1939 		virtual size_t calcSize( Context *ctx, int start_at );
1940 		virtual void write( Writer *w, Context *ctx );
1941 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1942 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1943 
1944 		static ZoneData* get( Reader *r, int end, Context *ctx );
1945 		static ZoneData* getByName( const char *name );
1946 
1947 		float getposition();
1948 			void setposition( float );
1949 	float getsize();
1950 			void setsize( float );
1951 
1952 
1953 	protected:
1954 		float position; // half
1955 float size; // half
1956 
1957 };
1958 
1959 class ZoneArray : public Item {
1960 	public:
1961 		ZoneArray();
1962 		virtual ~ZoneArray();
1963 
1964 		virtual bool parse( Reader *r, int end, Context *ctx );
1965 		virtual void dump( int indent, Context *ctx );
1966 		virtual size_t calcSize( Context *ctx, int start_at );
1967 		virtual void write( Writer *w, Context *ctx );
1968 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
1969 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
1970 
1971 		static ZoneArray* get( Reader *r, int end, Context *ctx );
1972 		static ZoneArray* getByName( const char *name );
1973 
1974 		std::uint8_t getcount();
1975 			void setcount( std::uint8_t );
1976 	List<ZoneData> *getzones();
1977 	std::int32_t getzoneX();
1978 			void setzoneX( std::int32_t );
1979 	std::int32_t getzoneY();
1980 			void setzoneY( std::int32_t );
1981 	std::int32_t getreserved();
1982 			void setreserved( std::int32_t );
1983 
1984 
1985 	protected:
1986 		std::uint8_t count; // byte
1987 List<ZoneData> zones; // list
1988 std::int32_t zoneX; // integer
1989 std::int32_t zoneY; // integer
1990 std::int32_t reserved; // integer
1991 
1992 };
1993 
1994 class UnknownFilter : public Filter {
1995 	public:
1996 		UnknownFilter();
1997 		virtual ~UnknownFilter();
1998 
1999 		virtual bool parse( Reader *r, int end, Context *ctx );
2000 		virtual void dump( int indent, Context *ctx );
2001 		virtual size_t calcSize( Context *ctx, int start_at );
2002 		virtual void write( Writer *w, Context *ctx );
2003 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2004 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2005 
2006 		static UnknownFilter* get( Reader *r, int end, Context *ctx );
2007 		static UnknownFilter* getByName( const char *name );
2008 
2009 
2010 			void getdata( unsigned char **dst, int *size );
2011 			void setdata( const unsigned char *src, int size );
2012 
2013 
2014 	protected:
2015 		unsigned char * data; // data
2016 
2017 			static int id;
2018 
2019 };
2020 
2021 class DropShadow : public Filter {
2022 	public:
2023 		DropShadow();
2024 		virtual ~DropShadow();
2025 
2026 		virtual bool parse( Reader *r, int end, Context *ctx );
2027 		virtual void dump( int indent, Context *ctx );
2028 		virtual size_t calcSize( Context *ctx, int start_at );
2029 		virtual void write( Writer *w, Context *ctx );
2030 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2031 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2032 
2033 		static DropShadow* get( Reader *r, int end, Context *ctx );
2034 		static DropShadow* getByName( const char *name );
2035 
2036 		Color *getcolor();
2037 	float getblurX();
2038 			void setblurX( float );
2039 	float getblurY();
2040 			void setblurY( float );
2041 	float getangle();
2042 			void setangle( float );
2043 	float getdistance();
2044 			void setdistance( float );
2045 	float getstrength();
2046 			void setstrength( float );
2047 	bool getinnerShadow();
2048 			void setinnerShadow( bool );
2049 	bool getknockout();
2050 			void setknockout( bool );
2051 	bool getcompositeSource();
2052 			void setcompositeSource( bool );
2053 	std::int32_t getpasses();
2054 			void setpasses( std::int32_t );
2055 
2056 
2057 	protected:
2058 		Color color; // object
2059 float blurX; // fixedpoint2
2060 float blurY; // fixedpoint2
2061 float angle; // fixedpoint2
2062 float distance; // fixedpoint2
2063 float strength; // fixedpoint2
2064 bool innerShadow; // bit
2065 bool knockout; // bit
2066 bool compositeSource; // bit
2067 std::int32_t passes; // integer
2068 
2069 			static int id;
2070 
2071 };
2072 
2073 class Blur : public Filter {
2074 	public:
2075 		Blur();
2076 		virtual ~Blur();
2077 
2078 		virtual bool parse( Reader *r, int end, Context *ctx );
2079 		virtual void dump( int indent, Context *ctx );
2080 		virtual size_t calcSize( Context *ctx, int start_at );
2081 		virtual void write( Writer *w, Context *ctx );
2082 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2083 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2084 
2085 		static Blur* get( Reader *r, int end, Context *ctx );
2086 		static Blur* getByName( const char *name );
2087 
2088 		float getblurX();
2089 			void setblurX( float );
2090 	float getblurY();
2091 			void setblurY( float );
2092 	std::int32_t getpasses();
2093 			void setpasses( std::int32_t );
2094 	std::int32_t getreserved1();
2095 			void setreserved1( std::int32_t );
2096 
2097 
2098 	protected:
2099 		float blurX; // fixedpoint2
2100 float blurY; // fixedpoint2
2101 std::int32_t passes; // integer
2102 std::int32_t reserved1; // integer
2103 
2104 			static int id;
2105 
2106 };
2107 
2108 class Glow : public Filter {
2109 	public:
2110 		Glow();
2111 		virtual ~Glow();
2112 
2113 		virtual bool parse( Reader *r, int end, Context *ctx );
2114 		virtual void dump( int indent, Context *ctx );
2115 		virtual size_t calcSize( Context *ctx, int start_at );
2116 		virtual void write( Writer *w, Context *ctx );
2117 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2118 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2119 
2120 		static Glow* get( Reader *r, int end, Context *ctx );
2121 		static Glow* getByName( const char *name );
2122 
2123 		Color *getcolor();
2124 	float getblurX();
2125 			void setblurX( float );
2126 	float getblurY();
2127 			void setblurY( float );
2128 	float getstrength();
2129 			void setstrength( float );
2130 	bool getinnerGlow();
2131 			void setinnerGlow( bool );
2132 	bool getknockout();
2133 			void setknockout( bool );
2134 	bool getcompositeSource();
2135 			void setcompositeSource( bool );
2136 	std::int32_t getpasses();
2137 			void setpasses( std::int32_t );
2138 
2139 
2140 	protected:
2141 		Color color; // object
2142 float blurX; // fixedpoint2
2143 float blurY; // fixedpoint2
2144 float strength; // fixedpoint2
2145 bool innerGlow; // bit
2146 bool knockout; // bit
2147 bool compositeSource; // bit
2148 std::int32_t passes; // integer
2149 
2150 			static int id;
2151 
2152 };
2153 
2154 class Bevel : public Filter {
2155 	public:
2156 		Bevel();
2157 		virtual ~Bevel();
2158 
2159 		virtual bool parse( Reader *r, int end, Context *ctx );
2160 		virtual void dump( int indent, Context *ctx );
2161 		virtual size_t calcSize( Context *ctx, int start_at );
2162 		virtual void write( Writer *w, Context *ctx );
2163 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2164 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2165 
2166 		static Bevel* get( Reader *r, int end, Context *ctx );
2167 		static Bevel* getByName( const char *name );
2168 
2169 		Color *getshadowColor();
2170 	Color *gethighlightColor();
2171 	float getblurX();
2172 			void setblurX( float );
2173 	float getblurY();
2174 			void setblurY( float );
2175 	float getangle();
2176 			void setangle( float );
2177 	float getdistance();
2178 			void setdistance( float );
2179 	float getstrength();
2180 			void setstrength( float );
2181 	bool getinnerShadow();
2182 			void setinnerShadow( bool );
2183 	bool getknockout();
2184 			void setknockout( bool );
2185 	bool getcompositeSource();
2186 			void setcompositeSource( bool );
2187 	bool getonTop();
2188 			void setonTop( bool );
2189 	std::int32_t getpasses();
2190 			void setpasses( std::int32_t );
2191 
2192 
2193 	protected:
2194 		Color shadowColor; // object
2195 Color highlightColor; // object
2196 float blurX; // fixedpoint2
2197 float blurY; // fixedpoint2
2198 float angle; // fixedpoint2
2199 float distance; // fixedpoint2
2200 float strength; // fixedpoint2
2201 bool innerShadow; // bit
2202 bool knockout; // bit
2203 bool compositeSource; // bit
2204 bool onTop; // bit
2205 std::int32_t passes; // integer
2206 
2207 			static int id;
2208 
2209 };
2210 
2211 class GradientGlow : public Filter {
2212 	public:
2213 		GradientGlow();
2214 		virtual ~GradientGlow();
2215 
2216 		virtual bool parse( Reader *r, int end, Context *ctx );
2217 		virtual void dump( int indent, Context *ctx );
2218 		virtual size_t calcSize( Context *ctx, int start_at );
2219 		virtual void write( Writer *w, Context *ctx );
2220 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2221 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2222 
2223 		static GradientGlow* get( Reader *r, int end, Context *ctx );
2224 		static GradientGlow* getByName( const char *name );
2225 
2226 		std::uint8_t getnumColors();
2227 			void setnumColors( std::uint8_t );
2228 	List<Color> *getcolors();
2229 	List<UChar> *getratio();
2230 	float getblurX();
2231 			void setblurX( float );
2232 	float getblurY();
2233 			void setblurY( float );
2234 	float getangle();
2235 			void setangle( float );
2236 	float getdistance();
2237 			void setdistance( float );
2238 	float getstrength();
2239 			void setstrength( float );
2240 	bool getinnerGlow();
2241 			void setinnerGlow( bool );
2242 	bool getknockout();
2243 			void setknockout( bool );
2244 	bool getcompositeSource();
2245 			void setcompositeSource( bool );
2246 	bool getonTop();
2247 			void setonTop( bool );
2248 	std::int32_t getpasses();
2249 			void setpasses( std::int32_t );
2250 
2251 
2252 	protected:
2253 		std::uint8_t numColors; // byte
2254 List<Color> colors; // list
2255 List<UChar> ratio; // list
2256 float blurX; // fixedpoint2
2257 float blurY; // fixedpoint2
2258 float angle; // fixedpoint2
2259 float distance; // fixedpoint2
2260 float strength; // fixedpoint2
2261 bool innerGlow; // bit
2262 bool knockout; // bit
2263 bool compositeSource; // bit
2264 bool onTop; // bit
2265 std::int32_t passes; // integer
2266 
2267 			static int id;
2268 
2269 };
2270 
2271 class Convolution : public Filter {
2272 	public:
2273 		Convolution();
2274 		virtual ~Convolution();
2275 
2276 		virtual bool parse( Reader *r, int end, Context *ctx );
2277 		virtual void dump( int indent, Context *ctx );
2278 		virtual size_t calcSize( Context *ctx, int start_at );
2279 		virtual void write( Writer *w, Context *ctx );
2280 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2281 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2282 
2283 		static Convolution* get( Reader *r, int end, Context *ctx );
2284 		static Convolution* getByName( const char *name );
2285 
2286 		std::uint8_t getmatrixX();
2287 			void setmatrixX( std::uint8_t );
2288 	std::uint8_t getmatrixY();
2289 			void setmatrixY( std::uint8_t );
2290 	float getdivizor();
2291 			void setdivizor( float );
2292 	float getbias();
2293 			void setbias( float );
2294 	List<Float> *getmatrix();
2295 	Color *getdefaultColor();
2296 	std::int32_t getreserved();
2297 			void setreserved( std::int32_t );
2298 	bool getclamp();
2299 			void setclamp( bool );
2300 	bool getpreserveAlpha();
2301 			void setpreserveAlpha( bool );
2302 
2303 
2304 	protected:
2305 		std::uint8_t matrixX; // byte
2306 std::uint8_t matrixY; // byte
2307 float divizor; // float
2308 float bias; // float
2309 List<Float> matrix; // list
2310 Color defaultColor; // object
2311 std::int32_t reserved; // integer
2312 bool clamp; // bit
2313 bool preserveAlpha; // bit
2314 
2315 			static int id;
2316 
2317 };
2318 
2319 class ColorMatrix : public Filter {
2320 	public:
2321 		ColorMatrix();
2322 		virtual ~ColorMatrix();
2323 
2324 		virtual bool parse( Reader *r, int end, Context *ctx );
2325 		virtual void dump( int indent, Context *ctx );
2326 		virtual size_t calcSize( Context *ctx, int start_at );
2327 		virtual void write( Writer *w, Context *ctx );
2328 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2329 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2330 
2331 		static ColorMatrix* get( Reader *r, int end, Context *ctx );
2332 		static ColorMatrix* getByName( const char *name );
2333 
2334 		List<Float> *getmatrix();
2335 
2336 
2337 	protected:
2338 		List<Float> matrix; // list
2339 
2340 			static int id;
2341 
2342 };
2343 
2344 class GradientBevel : public Filter {
2345 	public:
2346 		GradientBevel();
2347 		virtual ~GradientBevel();
2348 
2349 		virtual bool parse( Reader *r, int end, Context *ctx );
2350 		virtual void dump( int indent, Context *ctx );
2351 		virtual size_t calcSize( Context *ctx, int start_at );
2352 		virtual void write( Writer *w, Context *ctx );
2353 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2354 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2355 
2356 		static GradientBevel* get( Reader *r, int end, Context *ctx );
2357 		static GradientBevel* getByName( const char *name );
2358 
2359 		std::uint8_t getnumColors();
2360 			void setnumColors( std::uint8_t );
2361 	List<Color> *getcolors();
2362 	List<UChar> *getratio();
2363 	float getblurX();
2364 			void setblurX( float );
2365 	float getblurY();
2366 			void setblurY( float );
2367 	float getangle();
2368 			void setangle( float );
2369 	float getdistance();
2370 			void setdistance( float );
2371 	float getstrength();
2372 			void setstrength( float );
2373 	bool getinnerGlow();
2374 			void setinnerGlow( bool );
2375 	bool getknockout();
2376 			void setknockout( bool );
2377 	bool getcompositeSource();
2378 			void setcompositeSource( bool );
2379 	bool getonTop();
2380 			void setonTop( bool );
2381 	std::int32_t getpasses();
2382 			void setpasses( std::int32_t );
2383 
2384 
2385 	protected:
2386 		std::uint8_t numColors; // byte
2387 List<Color> colors; // list
2388 List<UChar> ratio; // list
2389 float blurX; // fixedpoint2
2390 float blurY; // fixedpoint2
2391 float angle; // fixedpoint2
2392 float distance; // fixedpoint2
2393 float strength; // fixedpoint2
2394 bool innerGlow; // bit
2395 bool knockout; // bit
2396 bool compositeSource; // bit
2397 bool onTop; // bit
2398 std::int32_t passes; // integer
2399 
2400 			static int id;
2401 
2402 };
2403 
2404 class Solid : public Style {
2405 	public:
2406 		Solid();
2407 		virtual ~Solid();
2408 
2409 		virtual bool parse( Reader *r, int end, Context *ctx );
2410 		virtual void dump( int indent, Context *ctx );
2411 		virtual size_t calcSize( Context *ctx, int start_at );
2412 		virtual void write( Writer *w, Context *ctx );
2413 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2414 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2415 
2416 		static Solid* get( Reader *r, int end, Context *ctx );
2417 		static Solid* getByName( const char *name );
2418 
2419 		Color *getcolor();
2420 
2421 
2422 	protected:
2423 		Color color; // object
2424 
2425 			static int id;
2426 
2427 };
2428 
2429 class LinearGradient : public Style {
2430 	public:
2431 		LinearGradient();
2432 		virtual ~LinearGradient();
2433 
2434 		virtual bool parse( Reader *r, int end, Context *ctx );
2435 		virtual void dump( int indent, Context *ctx );
2436 		virtual size_t calcSize( Context *ctx, int start_at );
2437 		virtual void write( Writer *w, Context *ctx );
2438 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2439 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2440 
2441 		static LinearGradient* get( Reader *r, int end, Context *ctx );
2442 		static LinearGradient* getByName( const char *name );
2443 
2444 		Transform *getmatrix();
2445 	std::int32_t getreserved();
2446 			void setreserved( std::int32_t );
2447 	std::int32_t getspreadMode();
2448 			void setspreadMode( std::int32_t );
2449 	std::int32_t getinterpolationMode();
2450 			void setinterpolationMode( std::int32_t );
2451 	std::int32_t getcount();
2452 			void setcount( std::int32_t );
2453 	List<GradientItem> *getgradientColors();
2454 
2455 
2456 	protected:
2457 		Transform matrix; // object
2458 std::int32_t reserved; // integer
2459 std::int32_t spreadMode; // integer
2460 std::int32_t interpolationMode; // integer
2461 std::int32_t count; // integer
2462 List<GradientItem> gradientColors; // list
2463 
2464 			static int id;
2465 
2466 };
2467 
2468 class RadialGradient : public Style {
2469 	public:
2470 		RadialGradient();
2471 		virtual ~RadialGradient();
2472 
2473 		virtual bool parse( Reader *r, int end, Context *ctx );
2474 		virtual void dump( int indent, Context *ctx );
2475 		virtual size_t calcSize( Context *ctx, int start_at );
2476 		virtual void write( Writer *w, Context *ctx );
2477 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2478 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2479 
2480 		static RadialGradient* get( Reader *r, int end, Context *ctx );
2481 		static RadialGradient* getByName( const char *name );
2482 
2483 		Transform *getmatrix();
2484 	std::int32_t getreserved();
2485 			void setreserved( std::int32_t );
2486 	std::int32_t getspreadMode();
2487 			void setspreadMode( std::int32_t );
2488 	std::int32_t getinterpolationMode();
2489 			void setinterpolationMode( std::int32_t );
2490 	std::int32_t getcount();
2491 			void setcount( std::int32_t );
2492 	List<GradientItem> *getgradientColors();
2493 
2494 
2495 	protected:
2496 		Transform matrix; // object
2497 std::int32_t reserved; // integer
2498 std::int32_t spreadMode; // integer
2499 std::int32_t interpolationMode; // integer
2500 std::int32_t count; // integer
2501 List<GradientItem> gradientColors; // list
2502 
2503 			static int id;
2504 
2505 };
2506 
2507 class ShiftedRadialGradient : public Style {
2508 	public:
2509 		ShiftedRadialGradient();
2510 		virtual ~ShiftedRadialGradient();
2511 
2512 		virtual bool parse( Reader *r, int end, Context *ctx );
2513 		virtual void dump( int indent, Context *ctx );
2514 		virtual size_t calcSize( Context *ctx, int start_at );
2515 		virtual void write( Writer *w, Context *ctx );
2516 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2517 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2518 
2519 		static ShiftedRadialGradient* get( Reader *r, int end, Context *ctx );
2520 		static ShiftedRadialGradient* getByName( const char *name );
2521 
2522 		Transform *getmatrix();
2523 	std::int32_t getreserved();
2524 			void setreserved( std::int32_t );
2525 	std::int32_t getspreadMode();
2526 			void setspreadMode( std::int32_t );
2527 	std::int32_t getinterpolationMode();
2528 			void setinterpolationMode( std::int32_t );
2529 	std::int32_t getcount();
2530 			void setcount( std::int32_t );
2531 	List<GradientItem> *getgradientColors();
2532 	float getshift();
2533 			void setshift( float );
2534 
2535 
2536 	protected:
2537 		Transform matrix; // object
2538 std::int32_t reserved; // integer
2539 std::int32_t spreadMode; // integer
2540 std::int32_t interpolationMode; // integer
2541 std::int32_t count; // integer
2542 List<GradientItem> gradientColors; // list
2543 float shift; // fixedpoint2
2544 
2545 			static int id;
2546 
2547 };
2548 
2549 class TiledBitmap : public Style {
2550 	public:
2551 		TiledBitmap();
2552 		virtual ~TiledBitmap();
2553 
2554 		virtual bool parse( Reader *r, int end, Context *ctx );
2555 		virtual void dump( int indent, Context *ctx );
2556 		virtual size_t calcSize( Context *ctx, int start_at );
2557 		virtual void write( Writer *w, Context *ctx );
2558 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2559 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2560 
2561 		static TiledBitmap* get( Reader *r, int end, Context *ctx );
2562 		static TiledBitmap* getByName( const char *name );
2563 
2564 		std::uint16_t getobjectID();
2565 			void setobjectID( std::uint16_t );
2566 	Transform *getmatrix();
2567 
2568 
2569 	protected:
2570 		std::uint16_t objectID; // word
2571 Transform matrix; // object
2572 
2573 			static int id;
2574 
2575 };
2576 
2577 class ClippedBitmap : public Style {
2578 	public:
2579 		ClippedBitmap();
2580 		virtual ~ClippedBitmap();
2581 
2582 		virtual bool parse( Reader *r, int end, Context *ctx );
2583 		virtual void dump( int indent, Context *ctx );
2584 		virtual size_t calcSize( Context *ctx, int start_at );
2585 		virtual void write( Writer *w, Context *ctx );
2586 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2587 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2588 
2589 		static ClippedBitmap* get( Reader *r, int end, Context *ctx );
2590 		static ClippedBitmap* getByName( const char *name );
2591 
2592 		std::uint16_t getobjectID();
2593 			void setobjectID( std::uint16_t );
2594 	Transform *getmatrix();
2595 
2596 
2597 	protected:
2598 		std::uint16_t objectID; // word
2599 Transform matrix; // object
2600 
2601 			static int id;
2602 
2603 };
2604 
2605 class TiledBitmap2 : public Style {
2606 	public:
2607 		TiledBitmap2();
2608 		virtual ~TiledBitmap2();
2609 
2610 		virtual bool parse( Reader *r, int end, Context *ctx );
2611 		virtual void dump( int indent, Context *ctx );
2612 		virtual size_t calcSize( Context *ctx, int start_at );
2613 		virtual void write( Writer *w, Context *ctx );
2614 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2615 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2616 
2617 		static TiledBitmap2* get( Reader *r, int end, Context *ctx );
2618 		static TiledBitmap2* getByName( const char *name );
2619 
2620 		std::uint16_t getobjectID();
2621 			void setobjectID( std::uint16_t );
2622 	Transform *getmatrix();
2623 
2624 
2625 	protected:
2626 		std::uint16_t objectID; // word
2627 Transform matrix; // object
2628 
2629 			static int id;
2630 
2631 };
2632 
2633 class ClippedBitmap2 : public Style {
2634 	public:
2635 		ClippedBitmap2();
2636 		virtual ~ClippedBitmap2();
2637 
2638 		virtual bool parse( Reader *r, int end, Context *ctx );
2639 		virtual void dump( int indent, Context *ctx );
2640 		virtual size_t calcSize( Context *ctx, int start_at );
2641 		virtual void write( Writer *w, Context *ctx );
2642 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2643 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2644 
2645 		static ClippedBitmap2* get( Reader *r, int end, Context *ctx );
2646 		static ClippedBitmap2* getByName( const char *name );
2647 
2648 		std::uint16_t getobjectID();
2649 			void setobjectID( std::uint16_t );
2650 	Transform *getmatrix();
2651 
2652 
2653 	protected:
2654 		std::uint16_t objectID; // word
2655 Transform matrix; // object
2656 
2657 			static int id;
2658 
2659 };
2660 
2661 class UnknownTag : public Tag {
2662 	public:
2663 		UnknownTag();
2664 		virtual ~UnknownTag();
2665 
2666 		virtual bool parse( Reader *r, int end, Context *ctx );
2667 		virtual void dump( int indent, Context *ctx );
2668 		virtual size_t calcSize( Context *ctx, int start_at );
2669 		virtual void write( Writer *w, Context *ctx );
2670 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2671 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2672 
2673 		static UnknownTag* get( Reader *r, int end, Context *ctx );
2674 		static UnknownTag* getByName( const char *name );
2675 
2676 
2677 			void getdata( unsigned char **dst, int *size );
2678 			void setdata( const unsigned char *src, int size );
2679 
2680 
2681 	protected:
2682 		unsigned char * data; // data
2683 
2684 			static int id;
2685 
2686 };
2687 
2688 class End : public Tag {
2689 	public:
2690 		End();
2691 		virtual ~End();
2692 
2693 		virtual bool parse( Reader *r, int end, Context *ctx );
2694 		virtual void dump( int indent, Context *ctx );
2695 		virtual size_t calcSize( Context *ctx, int start_at );
2696 		virtual void write( Writer *w, Context *ctx );
2697 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2698 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2699 
2700 		static End* get( Reader *r, int end, Context *ctx );
2701 		static End* getByName( const char *name );
2702 
2703 
2704 
2705 	protected:
2706 
2707 			static int id;
2708 
2709 };
2710 
2711 class ShowFrame : public Tag {
2712 	public:
2713 		ShowFrame();
2714 		virtual ~ShowFrame();
2715 
2716 		virtual bool parse( Reader *r, int end, Context *ctx );
2717 		virtual void dump( int indent, Context *ctx );
2718 		virtual size_t calcSize( Context *ctx, int start_at );
2719 		virtual void write( Writer *w, Context *ctx );
2720 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2721 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2722 
2723 		static ShowFrame* get( Reader *r, int end, Context *ctx );
2724 		static ShowFrame* getByName( const char *name );
2725 
2726 
2727 
2728 	protected:
2729 
2730 			static int id;
2731 
2732 };
2733 
2734 class DefineShape : public Tag {
2735 	public:
2736 		DefineShape();
2737 		virtual ~DefineShape();
2738 
2739 		virtual bool parse( Reader *r, int end, Context *ctx );
2740 		virtual void dump( int indent, Context *ctx );
2741 		virtual size_t calcSize( Context *ctx, int start_at );
2742 		virtual void write( Writer *w, Context *ctx );
2743 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2744 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2745 
2746 		static DefineShape* get( Reader *r, int end, Context *ctx );
2747 		static DefineShape* getByName( const char *name );
2748 
2749 		std::uint16_t getobjectID();
2750 			void setobjectID( std::uint16_t );
2751 	Rectangle *getbounds();
2752 	StyleList *getstyles();
2753 	Shape *getshapes();
2754 
2755 
2756 	protected:
2757 		std::uint16_t objectID; // word
2758 Rectangle bounds; // object
2759 StyleList styles; // object
2760 Shape shapes; // object
2761 
2762 			static int id;
2763 
2764 };
2765 
2766 class RemoveObject : public Tag {
2767 	public:
2768 		RemoveObject();
2769 		virtual ~RemoveObject();
2770 
2771 		virtual bool parse( Reader *r, int end, Context *ctx );
2772 		virtual void dump( int indent, Context *ctx );
2773 		virtual size_t calcSize( Context *ctx, int start_at );
2774 		virtual void write( Writer *w, Context *ctx );
2775 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2776 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2777 
2778 		static RemoveObject* get( Reader *r, int end, Context *ctx );
2779 		static RemoveObject* getByName( const char *name );
2780 
2781 		std::uint16_t getobjectID();
2782 			void setobjectID( std::uint16_t );
2783 	std::uint16_t getdepth();
2784 			void setdepth( std::uint16_t );
2785 
2786 
2787 	protected:
2788 		std::uint16_t objectID; // word
2789 std::uint16_t depth; // word
2790 
2791 			static int id;
2792 
2793 };
2794 
2795 class DefineBits : public Tag {
2796 	public:
2797 		DefineBits();
2798 		virtual ~DefineBits();
2799 
2800 		virtual bool parse( Reader *r, int end, Context *ctx );
2801 		virtual void dump( int indent, Context *ctx );
2802 		virtual size_t calcSize( Context *ctx, int start_at );
2803 		virtual void write( Writer *w, Context *ctx );
2804 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2805 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2806 
2807 		static DefineBits* get( Reader *r, int end, Context *ctx );
2808 		static DefineBits* getByName( const char *name );
2809 
2810 		std::uint16_t getobjectID();
2811 			void setobjectID( std::uint16_t );
2812 	Rest *getdata();
2813 
2814 
2815 	protected:
2816 		std::uint16_t objectID; // word
2817 Rest data; // object
2818 
2819 			static int id;
2820 
2821 };
2822 
2823 class SetBackgroundColor : public Tag {
2824 	public:
2825 		SetBackgroundColor();
2826 		virtual ~SetBackgroundColor();
2827 
2828 		virtual bool parse( Reader *r, int end, Context *ctx );
2829 		virtual void dump( int indent, Context *ctx );
2830 		virtual size_t calcSize( Context *ctx, int start_at );
2831 		virtual void write( Writer *w, Context *ctx );
2832 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2833 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2834 
2835 		static SetBackgroundColor* get( Reader *r, int end, Context *ctx );
2836 		static SetBackgroundColor* getByName( const char *name );
2837 
2838 		Color *getcolor();
2839 
2840 
2841 	protected:
2842 		Color color; // object
2843 
2844 			static int id;
2845 
2846 };
2847 
2848 class DefineText : public Tag {
2849 	public:
2850 		DefineText();
2851 		virtual ~DefineText();
2852 
2853 		virtual bool parse( Reader *r, int end, Context *ctx );
2854 		virtual void dump( int indent, Context *ctx );
2855 		virtual size_t calcSize( Context *ctx, int start_at );
2856 		virtual void write( Writer *w, Context *ctx );
2857 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2858 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2859 
2860 		static DefineText* get( Reader *r, int end, Context *ctx );
2861 		static DefineText* getByName( const char *name );
2862 
2863 		std::uint16_t getobjectID();
2864 			void setobjectID( std::uint16_t );
2865 	Rectangle *getbounds();
2866 	Transform *gettransform();
2867 	std::uint8_t getglyphBits();
2868 			void setglyphBits( std::uint8_t );
2869 	std::uint8_t getadvanceBits();
2870 			void setadvanceBits( std::uint8_t );
2871 	List<TextRecord> *getrecords();
2872 
2873 
2874 	protected:
2875 		std::uint16_t objectID; // word
2876 Rectangle bounds; // object
2877 Transform transform; // object
2878 std::uint8_t glyphBits; // byte
2879 std::uint8_t advanceBits; // byte
2880 List<TextRecord> records; // list
2881 
2882 			static int id;
2883 
2884 };
2885 
2886 class DefineText2 : public Tag {
2887 	public:
2888 		DefineText2();
2889 		virtual ~DefineText2();
2890 
2891 		virtual bool parse( Reader *r, int end, Context *ctx );
2892 		virtual void dump( int indent, Context *ctx );
2893 		virtual size_t calcSize( Context *ctx, int start_at );
2894 		virtual void write( Writer *w, Context *ctx );
2895 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2896 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2897 
2898 		static DefineText2* get( Reader *r, int end, Context *ctx );
2899 		static DefineText2* getByName( const char *name );
2900 
2901 		std::uint16_t getobjectID();
2902 			void setobjectID( std::uint16_t );
2903 	Rectangle *getbounds();
2904 	Transform *gettransform();
2905 	std::uint8_t getglyphBits();
2906 			void setglyphBits( std::uint8_t );
2907 	std::uint8_t getadvanceBits();
2908 			void setadvanceBits( std::uint8_t );
2909 	List<TextRecord2> *getrecords();
2910 
2911 
2912 	protected:
2913 		std::uint16_t objectID; // word
2914 Rectangle bounds; // object
2915 Transform transform; // object
2916 std::uint8_t glyphBits; // byte
2917 std::uint8_t advanceBits; // byte
2918 List<TextRecord2> records; // list
2919 
2920 			static int id;
2921 
2922 };
2923 
2924 class DoAction : public Tag {
2925 	public:
2926 		DoAction();
2927 		virtual ~DoAction();
2928 
2929 		virtual bool parse( Reader *r, int end, Context *ctx );
2930 		virtual void dump( int indent, Context *ctx );
2931 		virtual size_t calcSize( Context *ctx, int start_at );
2932 		virtual void write( Writer *w, Context *ctx );
2933 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2934 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2935 
2936 		static DoAction* get( Reader *r, int end, Context *ctx );
2937 		static DoAction* getByName( const char *name );
2938 
2939 		List<Action> *getactions();
2940 
2941 
2942 	protected:
2943 		List<Action> actions; // list
2944 
2945 			static int id;
2946 
2947 };
2948 
2949 class DefineFontInfo : public Tag {
2950 	public:
2951 		DefineFontInfo();
2952 		virtual ~DefineFontInfo();
2953 
2954 		virtual bool parse( Reader *r, int end, Context *ctx );
2955 		virtual void dump( int indent, Context *ctx );
2956 		virtual size_t calcSize( Context *ctx, int start_at );
2957 		virtual void write( Writer *w, Context *ctx );
2958 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
2959 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
2960 
2961 		static DefineFontInfo* get( Reader *r, int end, Context *ctx );
2962 		static DefineFontInfo* getByName( const char *name );
2963 
2964 		std::uint16_t getobjectID();
2965 			void setobjectID( std::uint16_t );
2966 	std::uint8_t getnameLength();
2967 			void setnameLength( std::uint8_t );
2968 
2969 			void getnameData( unsigned char **dst, int *size );
2970 			void setnameData( const unsigned char *src, int size );
2971 	std::int32_t getreserved();
2972 			void setreserved( std::int32_t );
2973 	bool getsmallTextOrUnicode();
2974 			void setsmallTextOrUnicode( bool );
2975 	bool getisShiftJIS();
2976 			void setisShiftJIS( bool );
2977 	bool getisANSII();
2978 			void setisANSII( bool );
2979 	bool getisItalic();
2980 			void setisItalic( bool );
2981 	bool getisBold();
2982 			void setisBold( bool );
2983 	bool getisWide();
2984 			void setisWide( bool );
2985 	std::uint8_t getlanguage();
2986 			void setlanguage( std::uint8_t );
2987 	Rest *getmap();
2988 
2989 
2990 	protected:
2991 		std::uint16_t objectID; // word
2992 std::uint8_t nameLength; // byte
2993 unsigned char * nameData; // data
2994 std::int32_t reserved; // integer
2995 bool smallTextOrUnicode; // bit
2996 bool isShiftJIS; // bit
2997 bool isANSII; // bit
2998 bool isItalic; // bit
2999 bool isBold; // bit
3000 bool isWide; // bit
3001 std::uint8_t language; // byte
3002 Rest map; // object
3003 
3004 			static int id;
3005 
3006 };
3007 
3008 class DefineSound : public Tag {
3009 	public:
3010 		DefineSound();
3011 		virtual ~DefineSound();
3012 
3013 		virtual bool parse( Reader *r, int end, Context *ctx );
3014 		virtual void dump( int indent, Context *ctx );
3015 		virtual size_t calcSize( Context *ctx, int start_at );
3016 		virtual void write( Writer *w, Context *ctx );
3017 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3018 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3019 
3020 		static DefineSound* get( Reader *r, int end, Context *ctx );
3021 		static DefineSound* getByName( const char *name );
3022 
3023 		std::uint16_t getobjectID();
3024 			void setobjectID( std::uint16_t );
3025 	std::int32_t getformat();
3026 			void setformat( std::int32_t );
3027 	std::int32_t getrate();
3028 			void setrate( std::int32_t );
3029 	bool getis16bit();
3030 			void setis16bit( bool );
3031 	bool getstereo();
3032 			void setstereo( bool );
3033 	std::uint32_t getsamples();
3034 			void setsamples( std::uint32_t );
3035 	Rest *getdata();
3036 
3037 
3038 	protected:
3039 		std::uint16_t objectID; // word
3040 std::int32_t format; // integer
3041 std::int32_t rate; // integer
3042 bool is16bit; // bit
3043 bool stereo; // bit
3044 std::uint32_t samples; // uint32
3045 Rest data; // object
3046 
3047 			static int id;
3048 
3049 };
3050 
3051 class StartSound : public Tag {
3052 	public:
3053 		StartSound();
3054 		virtual ~StartSound();
3055 
3056 		virtual bool parse( Reader *r, int end, Context *ctx );
3057 		virtual void dump( int indent, Context *ctx );
3058 		virtual size_t calcSize( Context *ctx, int start_at );
3059 		virtual void write( Writer *w, Context *ctx );
3060 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3061 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3062 
3063 		static StartSound* get( Reader *r, int end, Context *ctx );
3064 		static StartSound* getByName( const char *name );
3065 
3066 		std::uint16_t getobjectID();
3067 			void setobjectID( std::uint16_t );
3068 	std::int32_t getreserved();
3069 			void setreserved( std::int32_t );
3070 	bool getstopPlayback();
3071 			void setstopPlayback( bool );
3072 	bool getnoMultiple();
3073 			void setnoMultiple( bool );
3074 	bool gethasEnvelope();
3075 			void sethasEnvelope( bool );
3076 	bool gethasLoop();
3077 			void sethasLoop( bool );
3078 	bool gethasOutPoint();
3079 			void sethasOutPoint( bool );
3080 	bool gethasInPoint();
3081 			void sethasInPoint( bool );
3082 	std::uint32_t getinPoint();
3083 			void setinPoint( std::uint32_t );
3084 	std::uint32_t getoutPoint();
3085 			void setoutPoint( std::uint32_t );
3086 	std::uint16_t getloop();
3087 			void setloop( std::uint16_t );
3088 	std::uint8_t getenvelopeCount();
3089 			void setenvelopeCount( std::uint8_t );
3090 	Rest *getenvelopeData();
3091 
3092 
3093 	protected:
3094 		std::uint16_t objectID; // word
3095 std::int32_t reserved; // integer
3096 bool stopPlayback; // bit
3097 bool noMultiple; // bit
3098 bool hasEnvelope; // bit
3099 bool hasLoop; // bit
3100 bool hasOutPoint; // bit
3101 bool hasInPoint; // bit
3102 std::uint32_t inPoint; // uint32
3103 std::uint32_t outPoint; // uint32
3104 std::uint16_t loop; // word
3105 std::uint8_t envelopeCount; // byte
3106 Rest envelopeData; // object
3107 
3108 			static int id;
3109 
3110 };
3111 
3112 class DefineShape2 : public Tag {
3113 	public:
3114 		DefineShape2();
3115 		virtual ~DefineShape2();
3116 
3117 		virtual bool parse( Reader *r, int end, Context *ctx );
3118 		virtual void dump( int indent, Context *ctx );
3119 		virtual size_t calcSize( Context *ctx, int start_at );
3120 		virtual void write( Writer *w, Context *ctx );
3121 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3122 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3123 
3124 		static DefineShape2* get( Reader *r, int end, Context *ctx );
3125 		static DefineShape2* getByName( const char *name );
3126 
3127 		std::uint16_t getobjectID();
3128 			void setobjectID( std::uint16_t );
3129 	Rectangle *getbounds();
3130 	StyleList *getstyles();
3131 	Shape *getshapes();
3132 
3133 
3134 	protected:
3135 		std::uint16_t objectID; // word
3136 Rectangle bounds; // object
3137 StyleList styles; // object
3138 Shape shapes; // object
3139 
3140 			static int id;
3141 
3142 };
3143 
3144 class DefineShape3 : public Tag {
3145 	public:
3146 		DefineShape3();
3147 		virtual ~DefineShape3();
3148 
3149 		virtual bool parse( Reader *r, int end, Context *ctx );
3150 		virtual void dump( int indent, Context *ctx );
3151 		virtual size_t calcSize( Context *ctx, int start_at );
3152 		virtual void write( Writer *w, Context *ctx );
3153 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3154 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3155 
3156 		static DefineShape3* get( Reader *r, int end, Context *ctx );
3157 		static DefineShape3* getByName( const char *name );
3158 
3159 		std::uint16_t getobjectID();
3160 			void setobjectID( std::uint16_t );
3161 	Rectangle *getbounds();
3162 	StyleList *getstyles();
3163 	Shape *getshapes();
3164 
3165 
3166 	protected:
3167 		std::uint16_t objectID; // word
3168 Rectangle bounds; // object
3169 StyleList styles; // object
3170 Shape shapes; // object
3171 
3172 			static int id;
3173 
3174 };
3175 
3176 class DefineShape4 : public Tag {
3177 	public:
3178 		DefineShape4();
3179 		virtual ~DefineShape4();
3180 
3181 		virtual bool parse( Reader *r, int end, Context *ctx );
3182 		virtual void dump( int indent, Context *ctx );
3183 		virtual size_t calcSize( Context *ctx, int start_at );
3184 		virtual void write( Writer *w, Context *ctx );
3185 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3186 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3187 
3188 		static DefineShape4* get( Reader *r, int end, Context *ctx );
3189 		static DefineShape4* getByName( const char *name );
3190 
3191 		std::uint16_t getobjectID();
3192 			void setobjectID( std::uint16_t );
3193 	Rest *getdata();
3194 
3195 
3196 	protected:
3197 		std::uint16_t objectID; // word
3198 Rest data; // object
3199 
3200 			static int id;
3201 
3202 };
3203 
3204 class DefineShape5 : public Tag {
3205 	public:
3206 		DefineShape5();
3207 		virtual ~DefineShape5();
3208 
3209 		virtual bool parse( Reader *r, int end, Context *ctx );
3210 		virtual void dump( int indent, Context *ctx );
3211 		virtual size_t calcSize( Context *ctx, int start_at );
3212 		virtual void write( Writer *w, Context *ctx );
3213 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3214 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3215 
3216 		static DefineShape5* get( Reader *r, int end, Context *ctx );
3217 		static DefineShape5* getByName( const char *name );
3218 
3219 		std::uint16_t getobjectID();
3220 			void setobjectID( std::uint16_t );
3221 	Rectangle *getbounds();
3222 	Rectangle *getstrokeBounds();
3223 	std::int32_t getreserved();
3224 			void setreserved( std::int32_t );
3225 	bool getnonScalingStrokes();
3226 			void setnonScalingStrokes( bool );
3227 	bool getscalingStrokes();
3228 			void setscalingStrokes( bool );
3229 	StyleList *getstyles();
3230 	Shape *getshapes();
3231 
3232 
3233 	protected:
3234 		std::uint16_t objectID; // word
3235 Rectangle bounds; // object
3236 Rectangle strokeBounds; // object
3237 std::int32_t reserved; // integer
3238 bool nonScalingStrokes; // bit
3239 bool scalingStrokes; // bit
3240 StyleList styles; // object
3241 Shape shapes; // object
3242 
3243 			static int id;
3244 
3245 };
3246 
3247 class DefineMorphShape : public Tag {
3248 	public:
3249 		DefineMorphShape();
3250 		virtual ~DefineMorphShape();
3251 
3252 		virtual bool parse( Reader *r, int end, Context *ctx );
3253 		virtual void dump( int indent, Context *ctx );
3254 		virtual size_t calcSize( Context *ctx, int start_at );
3255 		virtual void write( Writer *w, Context *ctx );
3256 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3257 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3258 
3259 		static DefineMorphShape* get( Reader *r, int end, Context *ctx );
3260 		static DefineMorphShape* getByName( const char *name );
3261 
3262 		std::uint16_t getobjectID();
3263 			void setobjectID( std::uint16_t );
3264 	Rest *getdata();
3265 
3266 
3267 	protected:
3268 		std::uint16_t objectID; // word
3269 Rest data; // object
3270 
3271 			static int id;
3272 
3273 };
3274 
3275 class DefineFontInfo2 : public Tag {
3276 	public:
3277 		DefineFontInfo2();
3278 		virtual ~DefineFontInfo2();
3279 
3280 		virtual bool parse( Reader *r, int end, Context *ctx );
3281 		virtual void dump( int indent, Context *ctx );
3282 		virtual size_t calcSize( Context *ctx, int start_at );
3283 		virtual void write( Writer *w, Context *ctx );
3284 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3285 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3286 
3287 		static DefineFontInfo2* get( Reader *r, int end, Context *ctx );
3288 		static DefineFontInfo2* getByName( const char *name );
3289 
3290 		std::uint16_t getobjectID();
3291 			void setobjectID( std::uint16_t );
3292 	std::uint8_t getnameLength();
3293 			void setnameLength( std::uint8_t );
3294 
3295 			void getnameData( unsigned char **dst, int *size );
3296 			void setnameData( const unsigned char *src, int size );
3297 	std::int32_t getreserved();
3298 			void setreserved( std::int32_t );
3299 	bool getsmallTextOrUnicode();
3300 			void setsmallTextOrUnicode( bool );
3301 	bool getisShiftJIS();
3302 			void setisShiftJIS( bool );
3303 	bool getisANSII();
3304 			void setisANSII( bool );
3305 	bool getisItalic();
3306 			void setisItalic( bool );
3307 	bool getisBold();
3308 			void setisBold( bool );
3309 	bool getisWide();
3310 			void setisWide( bool );
3311 	std::uint8_t getlanguage();
3312 			void setlanguage( std::uint8_t );
3313 	Rest *getmap();
3314 
3315 
3316 	protected:
3317 		std::uint16_t objectID; // word
3318 std::uint8_t nameLength; // byte
3319 unsigned char * nameData; // data
3320 std::int32_t reserved; // integer
3321 bool smallTextOrUnicode; // bit
3322 bool isShiftJIS; // bit
3323 bool isANSII; // bit
3324 bool isItalic; // bit
3325 bool isBold; // bit
3326 bool isWide; // bit
3327 std::uint8_t language; // byte
3328 Rest map; // object
3329 
3330 			static int id;
3331 
3332 };
3333 
3334 class SoundStreamHead : public Tag {
3335 	public:
3336 		SoundStreamHead();
3337 		virtual ~SoundStreamHead();
3338 
3339 		virtual bool parse( Reader *r, int end, Context *ctx );
3340 		virtual void dump( int indent, Context *ctx );
3341 		virtual size_t calcSize( Context *ctx, int start_at );
3342 		virtual void write( Writer *w, Context *ctx );
3343 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3344 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3345 
3346 		static SoundStreamHead* get( Reader *r, int end, Context *ctx );
3347 		static SoundStreamHead* getByName( const char *name );
3348 
3349 		std::int32_t getreserved();
3350 			void setreserved( std::int32_t );
3351 	std::int32_t getplaybackRate();
3352 			void setplaybackRate( std::int32_t );
3353 	bool getplaybackSize();
3354 			void setplaybackSize( bool );
3355 	bool getplaybackStereo();
3356 			void setplaybackStereo( bool );
3357 	std::int32_t getcompression();
3358 			void setcompression( std::int32_t );
3359 	std::int32_t getsoundRate();
3360 			void setsoundRate( std::int32_t );
3361 	bool getsoundSize();
3362 			void setsoundSize( bool );
3363 	bool getsoundStereo();
3364 			void setsoundStereo( bool );
3365 	std::uint16_t getsampleSize();
3366 			void setsampleSize( std::uint16_t );
3367 	Rest *getlatencySeek();
3368 
3369 
3370 	protected:
3371 		std::int32_t reserved; // integer
3372 std::int32_t playbackRate; // integer
3373 bool playbackSize; // bit
3374 bool playbackStereo; // bit
3375 std::int32_t compression; // integer
3376 std::int32_t soundRate; // integer
3377 bool soundSize; // bit
3378 bool soundStereo; // bit
3379 std::uint16_t sampleSize; // word
3380 Rest latencySeek; // object
3381 
3382 			static int id;
3383 
3384 };
3385 
3386 class DefineBitsLossless : public Tag {
3387 	public:
3388 		DefineBitsLossless();
3389 		virtual ~DefineBitsLossless();
3390 
3391 		virtual bool parse( Reader *r, int end, Context *ctx );
3392 		virtual void dump( int indent, Context *ctx );
3393 		virtual size_t calcSize( Context *ctx, int start_at );
3394 		virtual void write( Writer *w, Context *ctx );
3395 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3396 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3397 
3398 		static DefineBitsLossless* get( Reader *r, int end, Context *ctx );
3399 		static DefineBitsLossless* getByName( const char *name );
3400 
3401 		std::uint16_t getobjectID();
3402 			void setobjectID( std::uint16_t );
3403 	std::uint8_t getformat();
3404 			void setformat( std::uint8_t );
3405 	std::uint16_t getwidth();
3406 			void setwidth( std::uint16_t );
3407 	std::uint16_t getheight();
3408 			void setheight( std::uint16_t );
3409 	std::uint8_t getn_colormap();
3410 			void setn_colormap( std::uint8_t );
3411 	Rest *getdata();
3412 
3413 
3414 	protected:
3415 		std::uint16_t objectID; // word
3416 std::uint8_t format; // byte
3417 std::uint16_t width; // word
3418 std::uint16_t height; // word
3419 std::uint8_t n_colormap; // byte
3420 Rest data; // object
3421 
3422 			static int id;
3423 
3424 };
3425 
3426 class DefineBitsJPEG2 : public Tag {
3427 	public:
3428 		DefineBitsJPEG2();
3429 		virtual ~DefineBitsJPEG2();
3430 
3431 		virtual bool parse( Reader *r, int end, Context *ctx );
3432 		virtual void dump( int indent, Context *ctx );
3433 		virtual size_t calcSize( Context *ctx, int start_at );
3434 		virtual void write( Writer *w, Context *ctx );
3435 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3436 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3437 
3438 		static DefineBitsJPEG2* get( Reader *r, int end, Context *ctx );
3439 		static DefineBitsJPEG2* getByName( const char *name );
3440 
3441 		std::uint16_t getobjectID();
3442 			void setobjectID( std::uint16_t );
3443 	Rest *getdata();
3444 
3445 
3446 	protected:
3447 		std::uint16_t objectID; // word
3448 Rest data; // object
3449 
3450 			static int id;
3451 
3452 };
3453 
3454 class DefineBitsJPEG3 : public Tag {
3455 	public:
3456 		DefineBitsJPEG3();
3457 		virtual ~DefineBitsJPEG3();
3458 
3459 		virtual bool parse( Reader *r, int end, Context *ctx );
3460 		virtual void dump( int indent, Context *ctx );
3461 		virtual size_t calcSize( Context *ctx, int start_at );
3462 		virtual void write( Writer *w, Context *ctx );
3463 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3464 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3465 
3466 		static DefineBitsJPEG3* get( Reader *r, int end, Context *ctx );
3467 		static DefineBitsJPEG3* getByName( const char *name );
3468 
3469 		std::uint16_t getobjectID();
3470 			void setobjectID( std::uint16_t );
3471 	std::uint32_t getoffset_to_alpha();
3472 			void setoffset_to_alpha( std::uint32_t );
3473 	Rest *getdata();
3474 
3475 
3476 	protected:
3477 		std::uint16_t objectID; // word
3478 std::uint32_t offset_to_alpha; // uint32
3479 Rest data; // object
3480 
3481 			static int id;
3482 
3483 };
3484 
3485 class DefineBitsLossless2 : public Tag {
3486 	public:
3487 		DefineBitsLossless2();
3488 		virtual ~DefineBitsLossless2();
3489 
3490 		virtual bool parse( Reader *r, int end, Context *ctx );
3491 		virtual void dump( int indent, Context *ctx );
3492 		virtual size_t calcSize( Context *ctx, int start_at );
3493 		virtual void write( Writer *w, Context *ctx );
3494 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3495 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3496 
3497 		static DefineBitsLossless2* get( Reader *r, int end, Context *ctx );
3498 		static DefineBitsLossless2* getByName( const char *name );
3499 
3500 		std::uint16_t getobjectID();
3501 			void setobjectID( std::uint16_t );
3502 	std::uint8_t getformat();
3503 			void setformat( std::uint8_t );
3504 	std::uint16_t getwidth();
3505 			void setwidth( std::uint16_t );
3506 	std::uint16_t getheight();
3507 			void setheight( std::uint16_t );
3508 	std::uint8_t getn_colormap();
3509 			void setn_colormap( std::uint8_t );
3510 	Rest *getdata();
3511 
3512 
3513 	protected:
3514 		std::uint16_t objectID; // word
3515 std::uint8_t format; // byte
3516 std::uint16_t width; // word
3517 std::uint16_t height; // word
3518 std::uint8_t n_colormap; // byte
3519 Rest data; // object
3520 
3521 			static int id;
3522 
3523 };
3524 
3525 class PlaceObject2 : public Tag {
3526 	public:
3527 		PlaceObject2();
3528 		virtual ~PlaceObject2();
3529 
3530 		virtual bool parse( Reader *r, int end, Context *ctx );
3531 		virtual void dump( int indent, Context *ctx );
3532 		virtual size_t calcSize( Context *ctx, int start_at );
3533 		virtual void write( Writer *w, Context *ctx );
3534 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3535 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3536 
3537 		static PlaceObject2* get( Reader *r, int end, Context *ctx );
3538 		static PlaceObject2* getByName( const char *name );
3539 
3540 		bool gethasEventHandler();
3541 			void sethasEventHandler( bool );
3542 	bool gethasClipDepth();
3543 			void sethasClipDepth( bool );
3544 	bool gethasName();
3545 			void sethasName( bool );
3546 	bool gethasMorph();
3547 			void sethasMorph( bool );
3548 	bool gethasColorTransform();
3549 			void sethasColorTransform( bool );
3550 	bool gethasTransform();
3551 			void sethasTransform( bool );
3552 	bool gethasID();
3553 			void sethasID( bool );
3554 	bool getreplace();
3555 			void setreplace( bool );
3556 	std::uint16_t getdepth();
3557 			void setdepth( std::uint16_t );
3558 	std::uint16_t getobjectID();
3559 			void setobjectID( std::uint16_t );
3560 	Transform *gettransform();
3561 	ColorTransform2 *getcolorTransform();
3562 	std::uint16_t getmorph();
3563 			void setmorph( std::uint16_t );
3564 	char * getname();
3565 			void setname( char * );
3566 	std::uint16_t getclipDepth();
3567 			void setclipDepth( std::uint16_t );
3568 	std::uint16_t getreserved();
3569 			void setreserved( std::uint16_t );
3570 	std::uint16_t getallflags1();
3571 			void setallflags1( std::uint16_t );
3572 	std::uint16_t getallflags2();
3573 			void setallflags2( std::uint16_t );
3574 	List<Event> *getevents();
3575 
3576 
3577 	protected:
3578 		bool hasEventHandler; // bit
3579 bool hasClipDepth; // bit
3580 bool hasName; // bit
3581 bool hasMorph; // bit
3582 bool hasColorTransform; // bit
3583 bool hasTransform; // bit
3584 bool hasID; // bit
3585 bool replace; // bit
3586 std::uint16_t depth; // word
3587 std::uint16_t objectID; // word
3588 Transform transform; // object
3589 ColorTransform2 colorTransform; // object
3590 std::uint16_t morph; // word
3591 char * name; // string
3592 std::uint16_t clipDepth; // word
3593 std::uint16_t reserved; // word
3594 std::uint16_t allflags1; // word
3595 std::uint16_t allflags2; // word
3596 List<Event> events; // list
3597 
3598 			static int id;
3599 
3600 };
3601 
3602 class RemoveObject2 : public Tag {
3603 	public:
3604 		RemoveObject2();
3605 		virtual ~RemoveObject2();
3606 
3607 		virtual bool parse( Reader *r, int end, Context *ctx );
3608 		virtual void dump( int indent, Context *ctx );
3609 		virtual size_t calcSize( Context *ctx, int start_at );
3610 		virtual void write( Writer *w, Context *ctx );
3611 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3612 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3613 
3614 		static RemoveObject2* get( Reader *r, int end, Context *ctx );
3615 		static RemoveObject2* getByName( const char *name );
3616 
3617 		std::uint16_t getdepth();
3618 			void setdepth( std::uint16_t );
3619 
3620 
3621 	protected:
3622 		std::uint16_t depth; // word
3623 
3624 			static int id;
3625 
3626 };
3627 
3628 class DefineEditText : public Tag {
3629 	public:
3630 		DefineEditText();
3631 		virtual ~DefineEditText();
3632 
3633 		virtual bool parse( Reader *r, int end, Context *ctx );
3634 		virtual void dump( int indent, Context *ctx );
3635 		virtual size_t calcSize( Context *ctx, int start_at );
3636 		virtual void write( Writer *w, Context *ctx );
3637 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3638 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3639 
3640 		static DefineEditText* get( Reader *r, int end, Context *ctx );
3641 		static DefineEditText* getByName( const char *name );
3642 
3643 		std::uint16_t getobjectID();
3644 			void setobjectID( std::uint16_t );
3645 	Rectangle *getsize();
3646 	bool gethasText();
3647 			void sethasText( bool );
3648 	bool getwordWrap();
3649 			void setwordWrap( bool );
3650 	bool getmultiLine();
3651 			void setmultiLine( bool );
3652 	bool getpassword();
3653 			void setpassword( bool );
3654 	bool getreadOnly();
3655 			void setreadOnly( bool );
3656 	bool gethasColor();
3657 			void sethasColor( bool );
3658 	bool gethasMaxLength();
3659 			void sethasMaxLength( bool );
3660 	bool gethasFont();
3661 			void sethasFont( bool );
3662 	bool getreserved();
3663 			void setreserved( bool );
3664 	bool getautoSize();
3665 			void setautoSize( bool );
3666 	bool gethasLayout();
3667 			void sethasLayout( bool );
3668 	bool getnotSelectable();
3669 			void setnotSelectable( bool );
3670 	bool gethasBorder();
3671 			void sethasBorder( bool );
3672 	bool getreserved2();
3673 			void setreserved2( bool );
3674 	bool getisHTML();
3675 			void setisHTML( bool );
3676 	bool getuseOutlines();
3677 			void setuseOutlines( bool );
3678 	std::uint16_t getfontRef();
3679 			void setfontRef( std::uint16_t );
3680 	std::uint16_t getfontHeight();
3681 			void setfontHeight( std::uint16_t );
3682 	Color *getcolor();
3683 	std::uint16_t getmaxLength();
3684 			void setmaxLength( std::uint16_t );
3685 	std::uint8_t getalign();
3686 			void setalign( std::uint8_t );
3687 	std::uint16_t getleftMargin();
3688 			void setleftMargin( std::uint16_t );
3689 	std::uint16_t getrightMargin();
3690 			void setrightMargin( std::uint16_t );
3691 	std::uint16_t getindent();
3692 			void setindent( std::uint16_t );
3693 	std::uint16_t getleading();
3694 			void setleading( std::uint16_t );
3695 	char * getvariableName();
3696 			void setvariableName( char * );
3697 	char * getinitialText();
3698 			void setinitialText( char * );
3699 
3700 
3701 	protected:
3702 		std::uint16_t objectID; // word
3703 Rectangle size; // object
3704 bool hasText; // bit
3705 bool wordWrap; // bit
3706 bool multiLine; // bit
3707 bool password; // bit
3708 bool readOnly; // bit
3709 bool hasColor; // bit
3710 bool hasMaxLength; // bit
3711 bool hasFont; // bit
3712 bool reserved; // bit
3713 bool autoSize; // bit
3714 bool hasLayout; // bit
3715 bool notSelectable; // bit
3716 bool hasBorder; // bit
3717 bool reserved2; // bit
3718 bool isHTML; // bit
3719 bool useOutlines; // bit
3720 std::uint16_t fontRef; // word
3721 std::uint16_t fontHeight; // word
3722 Color color; // object
3723 std::uint16_t maxLength; // word
3724 std::uint8_t align; // byte
3725 std::uint16_t leftMargin; // word
3726 std::uint16_t rightMargin; // word
3727 std::uint16_t indent; // word
3728 std::uint16_t leading; // word
3729 char * variableName; // string
3730 char * initialText; // string
3731 
3732 			static int id;
3733 
3734 };
3735 
3736 class DefineSprite : public Tag {
3737 	public:
3738 		DefineSprite();
3739 		virtual ~DefineSprite();
3740 
3741 		virtual bool parse( Reader *r, int end, Context *ctx );
3742 		virtual void dump( int indent, Context *ctx );
3743 		virtual size_t calcSize( Context *ctx, int start_at );
3744 		virtual void write( Writer *w, Context *ctx );
3745 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3746 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3747 
3748 		static DefineSprite* get( Reader *r, int end, Context *ctx );
3749 		static DefineSprite* getByName( const char *name );
3750 
3751 		std::uint16_t getobjectID();
3752 			void setobjectID( std::uint16_t );
3753 	std::uint16_t getframes();
3754 			void setframes( std::uint16_t );
3755 	List<Tag> *gettags();
3756 
3757 
3758 	protected:
3759 		std::uint16_t objectID; // word
3760 std::uint16_t frames; // word
3761 List<Tag> tags; // list
3762 
3763 			static int id;
3764 
3765 };
3766 
3767 class FrameLabel : public Tag {
3768 	public:
3769 		FrameLabel();
3770 		virtual ~FrameLabel();
3771 
3772 		virtual bool parse( Reader *r, int end, Context *ctx );
3773 		virtual void dump( int indent, Context *ctx );
3774 		virtual size_t calcSize( Context *ctx, int start_at );
3775 		virtual void write( Writer *w, Context *ctx );
3776 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3777 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3778 
3779 		static FrameLabel* get( Reader *r, int end, Context *ctx );
3780 		static FrameLabel* getByName( const char *name );
3781 
3782 		char * getlabel();
3783 			void setlabel( char * );
3784 	Rest *getflags();
3785 
3786 
3787 	protected:
3788 		char * label; // string
3789 Rest flags; // object
3790 
3791 			static int id;
3792 
3793 };
3794 
3795 class SoundStreamHead2 : public Tag {
3796 	public:
3797 		SoundStreamHead2();
3798 		virtual ~SoundStreamHead2();
3799 
3800 		virtual bool parse( Reader *r, int end, Context *ctx );
3801 		virtual void dump( int indent, Context *ctx );
3802 		virtual size_t calcSize( Context *ctx, int start_at );
3803 		virtual void write( Writer *w, Context *ctx );
3804 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3805 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3806 
3807 		static SoundStreamHead2* get( Reader *r, int end, Context *ctx );
3808 		static SoundStreamHead2* getByName( const char *name );
3809 
3810 		std::int32_t getreserved();
3811 			void setreserved( std::int32_t );
3812 	std::int32_t getplaybackRate();
3813 			void setplaybackRate( std::int32_t );
3814 	bool getplaybackSize();
3815 			void setplaybackSize( bool );
3816 	bool getplaybackStereo();
3817 			void setplaybackStereo( bool );
3818 	std::int32_t getcompression();
3819 			void setcompression( std::int32_t );
3820 	std::int32_t getsoundRate();
3821 			void setsoundRate( std::int32_t );
3822 	bool getsoundSize();
3823 			void setsoundSize( bool );
3824 	bool getsoundStereo();
3825 			void setsoundStereo( bool );
3826 	std::uint16_t getsampleSize();
3827 			void setsampleSize( std::uint16_t );
3828 	Rest *getlatencySeek();
3829 
3830 
3831 	protected:
3832 		std::int32_t reserved; // integer
3833 std::int32_t playbackRate; // integer
3834 bool playbackSize; // bit
3835 bool playbackStereo; // bit
3836 std::int32_t compression; // integer
3837 std::int32_t soundRate; // integer
3838 bool soundSize; // bit
3839 bool soundStereo; // bit
3840 std::uint16_t sampleSize; // word
3841 Rest latencySeek; // object
3842 
3843 			static int id;
3844 
3845 };
3846 
3847 class DefineFont : public Tag {
3848 	public:
3849 		DefineFont();
3850 		virtual ~DefineFont();
3851 
3852 		virtual bool parse( Reader *r, int end, Context *ctx );
3853 		virtual void dump( int indent, Context *ctx );
3854 		virtual size_t calcSize( Context *ctx, int start_at );
3855 		virtual void write( Writer *w, Context *ctx );
3856 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3857 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3858 
3859 		static DefineFont* get( Reader *r, int end, Context *ctx );
3860 		static DefineFont* getByName( const char *name );
3861 
3862 		std::uint16_t getobjectID();
3863 			void setobjectID( std::uint16_t );
3864 	Rest *getdata();
3865 
3866 
3867 	protected:
3868 		std::uint16_t objectID; // word
3869 Rest data; // object
3870 
3871 			static int id;
3872 
3873 };
3874 
3875 class DefineFont2 : public Tag {
3876 	public:
3877 		DefineFont2();
3878 		virtual ~DefineFont2();
3879 
3880 		virtual bool parse( Reader *r, int end, Context *ctx );
3881 		virtual void dump( int indent, Context *ctx );
3882 		virtual size_t calcSize( Context *ctx, int start_at );
3883 		virtual void write( Writer *w, Context *ctx );
3884 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3885 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3886 
3887 		static DefineFont2* get( Reader *r, int end, Context *ctx );
3888 		static DefineFont2* getByName( const char *name );
3889 
3890 		std::uint16_t getobjectID();
3891 			void setobjectID( std::uint16_t );
3892 	bool gethasLayout();
3893 			void sethasLayout( bool );
3894 	bool getisShiftJIS();
3895 			void setisShiftJIS( bool );
3896 	bool getisUnicode();
3897 			void setisUnicode( bool );
3898 	bool getisANSII();
3899 			void setisANSII( bool );
3900 	bool getwideGlyphOffsets();
3901 			void setwideGlyphOffsets( bool );
3902 	bool getwideMap();
3903 			void setwideMap( bool );
3904 	bool getitalic();
3905 			void setitalic( bool );
3906 	bool getbold();
3907 			void setbold( bool );
3908 	std::uint8_t getlanguage();
3909 			void setlanguage( std::uint8_t );
3910 	char * getname();
3911 			void setname( char * );
3912 	std::uint16_t getglyphCount();
3913 			void setglyphCount( std::uint16_t );
3914 	GlyphList *getglyphs();
3915 	std::uint16_t getascent();
3916 			void setascent( std::uint16_t );
3917 	std::uint16_t getdescent();
3918 			void setdescent( std::uint16_t );
3919 	std::uint16_t getleading();
3920 			void setleading( std::uint16_t );
3921 	List<Short> *getadvance();
3922 	List<Rectangle> *getbounds();
3923 	std::uint16_t getkerningCount();
3924 			void setkerningCount( std::uint16_t );
3925 	List<WideKerning> *getwideKerning();
3926 	List<Kerning> *getkerning();
3927 
3928 
3929 	protected:
3930 		std::uint16_t objectID; // word
3931 bool hasLayout; // bit
3932 bool isShiftJIS; // bit
3933 bool isUnicode; // bit
3934 bool isANSII; // bit
3935 bool wideGlyphOffsets; // bit
3936 bool wideMap; // bit
3937 bool italic; // bit
3938 bool bold; // bit
3939 std::uint8_t language; // byte
3940 char * name; // string
3941 std::uint16_t glyphCount; // word
3942 GlyphList glyphs; // object
3943 std::uint16_t ascent; // word
3944 std::uint16_t descent; // word
3945 std::uint16_t leading; // word
3946 List<Short> advance; // list
3947 List<Rectangle> bounds; // list
3948 std::uint16_t kerningCount; // word
3949 List<WideKerning> wideKerning; // list
3950 List<Kerning> kerning; // list
3951 
3952 			static int id;
3953 
3954 };
3955 
3956 class DefineFont3 : public Tag {
3957 	public:
3958 		DefineFont3();
3959 		virtual ~DefineFont3();
3960 
3961 		virtual bool parse( Reader *r, int end, Context *ctx );
3962 		virtual void dump( int indent, Context *ctx );
3963 		virtual size_t calcSize( Context *ctx, int start_at );
3964 		virtual void write( Writer *w, Context *ctx );
3965 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
3966 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
3967 
3968 		static DefineFont3* get( Reader *r, int end, Context *ctx );
3969 		static DefineFont3* getByName( const char *name );
3970 
3971 		std::uint16_t getobjectID();
3972 			void setobjectID( std::uint16_t );
3973 	bool gethasLayout();
3974 			void sethasLayout( bool );
3975 	bool getisShiftJIS();
3976 			void setisShiftJIS( bool );
3977 	bool getisUnicode();
3978 			void setisUnicode( bool );
3979 	bool getisANSII();
3980 			void setisANSII( bool );
3981 	bool getwideGlyphOffsets();
3982 			void setwideGlyphOffsets( bool );
3983 	bool getwideMap();
3984 			void setwideMap( bool );
3985 	bool getitalic();
3986 			void setitalic( bool );
3987 	bool getbold();
3988 			void setbold( bool );
3989 	std::uint8_t getlanguage();
3990 			void setlanguage( std::uint8_t );
3991 	char * getname();
3992 			void setname( char * );
3993 	std::uint16_t getglyphCount();
3994 			void setglyphCount( std::uint16_t );
3995 	GlyphList *getglyphs();
3996 	std::uint16_t getascent();
3997 			void setascent( std::uint16_t );
3998 	std::uint16_t getdescent();
3999 			void setdescent( std::uint16_t );
4000 	std::uint16_t getleading();
4001 			void setleading( std::uint16_t );
4002 	List<Short> *getadvance();
4003 	List<Rectangle> *getbounds();
4004 	std::uint16_t getkerningCount();
4005 			void setkerningCount( std::uint16_t );
4006 	List<WideKerning> *getwideKerning();
4007 	List<Kerning> *getkerning();
4008 
4009 
4010 	protected:
4011 		std::uint16_t objectID; // word
4012 bool hasLayout; // bit
4013 bool isShiftJIS; // bit
4014 bool isUnicode; // bit
4015 bool isANSII; // bit
4016 bool wideGlyphOffsets; // bit
4017 bool wideMap; // bit
4018 bool italic; // bit
4019 bool bold; // bit
4020 std::uint8_t language; // byte
4021 char * name; // string
4022 std::uint16_t glyphCount; // word
4023 GlyphList glyphs; // object
4024 std::uint16_t ascent; // word
4025 std::uint16_t descent; // word
4026 std::uint16_t leading; // word
4027 List<Short> advance; // list
4028 List<Rectangle> bounds; // list
4029 std::uint16_t kerningCount; // word
4030 List<WideKerning> wideKerning; // list
4031 List<Kerning> kerning; // list
4032 
4033 			static int id;
4034 
4035 };
4036 
4037 class DefineButton : public Tag {
4038 	public:
4039 		DefineButton();
4040 		virtual ~DefineButton();
4041 
4042 		virtual bool parse( Reader *r, int end, Context *ctx );
4043 		virtual void dump( int indent, Context *ctx );
4044 		virtual size_t calcSize( Context *ctx, int start_at );
4045 		virtual void write( Writer *w, Context *ctx );
4046 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4047 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4048 
4049 		static DefineButton* get( Reader *r, int end, Context *ctx );
4050 		static DefineButton* getByName( const char *name );
4051 
4052 		std::uint16_t getobjectID();
4053 			void setobjectID( std::uint16_t );
4054 	List<Button> *getbuttons();
4055 	List<Action> *getactions();
4056 
4057 
4058 	protected:
4059 		std::uint16_t objectID; // word
4060 List<Button> buttons; // list
4061 List<Action> actions; // list
4062 
4063 			static int id;
4064 
4065 };
4066 
4067 class DefineButton2 : public Tag {
4068 	public:
4069 		DefineButton2();
4070 		virtual ~DefineButton2();
4071 
4072 		virtual bool parse( Reader *r, int end, Context *ctx );
4073 		virtual void dump( int indent, Context *ctx );
4074 		virtual size_t calcSize( Context *ctx, int start_at );
4075 		virtual void write( Writer *w, Context *ctx );
4076 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4077 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4078 
4079 		static DefineButton2* get( Reader *r, int end, Context *ctx );
4080 		static DefineButton2* getByName( const char *name );
4081 
4082 		std::uint16_t getobjectID();
4083 			void setobjectID( std::uint16_t );
4084 	std::int32_t getreserved();
4085 			void setreserved( std::int32_t );
4086 	bool getmenu();
4087 			void setmenu( bool );
4088 	std::uint16_t getbuttonsSize();
4089 			void setbuttonsSize( std::uint16_t );
4090 	List<Button> *getbuttons();
4091 	List<Condition> *getconditions();
4092 
4093 
4094 	protected:
4095 		std::uint16_t objectID; // word
4096 std::int32_t reserved; // integer
4097 bool menu; // bit
4098 std::uint16_t buttonsSize; // word
4099 List<Button> buttons; // list
4100 List<Condition> conditions; // list
4101 
4102 			static int id;
4103 
4104 };
4105 
4106 class Export : public Tag {
4107 	public:
4108 		Export();
4109 		virtual ~Export();
4110 
4111 		virtual bool parse( Reader *r, int end, Context *ctx );
4112 		virtual void dump( int indent, Context *ctx );
4113 		virtual size_t calcSize( Context *ctx, int start_at );
4114 		virtual void write( Writer *w, Context *ctx );
4115 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4116 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4117 
4118 		static Export* get( Reader *r, int end, Context *ctx );
4119 		static Export* getByName( const char *name );
4120 
4121 		std::uint16_t getcount();
4122 			void setcount( std::uint16_t );
4123 	List<Symbol> *getsymbols();
4124 
4125 
4126 	protected:
4127 		std::uint16_t count; // word
4128 List<Symbol> symbols; // list
4129 
4130 			static int id;
4131 
4132 };
4133 
4134 class Import : public Tag {
4135 	public:
4136 		Import();
4137 		virtual ~Import();
4138 
4139 		virtual bool parse( Reader *r, int end, Context *ctx );
4140 		virtual void dump( int indent, Context *ctx );
4141 		virtual size_t calcSize( Context *ctx, int start_at );
4142 		virtual void write( Writer *w, Context *ctx );
4143 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4144 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4145 
4146 		static Import* get( Reader *r, int end, Context *ctx );
4147 		static Import* getByName( const char *name );
4148 
4149 		char * geturl();
4150 			void seturl( char * );
4151 	std::uint16_t getcount();
4152 			void setcount( std::uint16_t );
4153 	List<Symbol> *getsymbols();
4154 
4155 
4156 	protected:
4157 		char * url; // string
4158 std::uint16_t count; // word
4159 List<Symbol> symbols; // list
4160 
4161 			static int id;
4162 
4163 };
4164 
4165 class DoInitAction : public Tag {
4166 	public:
4167 		DoInitAction();
4168 		virtual ~DoInitAction();
4169 
4170 		virtual bool parse( Reader *r, int end, Context *ctx );
4171 		virtual void dump( int indent, Context *ctx );
4172 		virtual size_t calcSize( Context *ctx, int start_at );
4173 		virtual void write( Writer *w, Context *ctx );
4174 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4175 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4176 
4177 		static DoInitAction* get( Reader *r, int end, Context *ctx );
4178 		static DoInitAction* getByName( const char *name );
4179 
4180 		std::uint16_t getsprite();
4181 			void setsprite( std::uint16_t );
4182 	List<Action> *getactions();
4183 
4184 
4185 	protected:
4186 		std::uint16_t sprite; // word
4187 List<Action> actions; // list
4188 
4189 			static int id;
4190 
4191 };
4192 
4193 class SoundStreamBlock : public Tag {
4194 	public:
4195 		SoundStreamBlock();
4196 		virtual ~SoundStreamBlock();
4197 
4198 		virtual bool parse( Reader *r, int end, Context *ctx );
4199 		virtual void dump( int indent, Context *ctx );
4200 		virtual size_t calcSize( Context *ctx, int start_at );
4201 		virtual void write( Writer *w, Context *ctx );
4202 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4203 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4204 
4205 		static SoundStreamBlock* get( Reader *r, int end, Context *ctx );
4206 		static SoundStreamBlock* getByName( const char *name );
4207 
4208 
4209 			void getdata( unsigned char **dst, int *size );
4210 			void setdata( const unsigned char *src, int size );
4211 
4212 
4213 	protected:
4214 		unsigned char * data; // data
4215 
4216 			static int id;
4217 
4218 };
4219 
4220 class DefineVideoStream : public Tag {
4221 	public:
4222 		DefineVideoStream();
4223 		virtual ~DefineVideoStream();
4224 
4225 		virtual bool parse( Reader *r, int end, Context *ctx );
4226 		virtual void dump( int indent, Context *ctx );
4227 		virtual size_t calcSize( Context *ctx, int start_at );
4228 		virtual void write( Writer *w, Context *ctx );
4229 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4230 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4231 
4232 		static DefineVideoStream* get( Reader *r, int end, Context *ctx );
4233 		static DefineVideoStream* getByName( const char *name );
4234 
4235 		std::uint16_t getobjectID();
4236 			void setobjectID( std::uint16_t );
4237 	std::uint16_t getframes();
4238 			void setframes( std::uint16_t );
4239 	std::uint16_t getwidth();
4240 			void setwidth( std::uint16_t );
4241 	std::uint16_t getheight();
4242 			void setheight( std::uint16_t );
4243 	std::int32_t getreserved();
4244 			void setreserved( std::int32_t );
4245 	std::int32_t getdeblocking();
4246 			void setdeblocking( std::int32_t );
4247 	bool getsmoothing();
4248 			void setsmoothing( bool );
4249 	std::uint8_t getcodec();
4250 			void setcodec( std::uint8_t );
4251 
4252 
4253 	protected:
4254 		std::uint16_t objectID; // word
4255 std::uint16_t frames; // word
4256 std::uint16_t width; // word
4257 std::uint16_t height; // word
4258 std::int32_t reserved; // integer
4259 std::int32_t deblocking; // integer
4260 bool smoothing; // bit
4261 std::uint8_t codec; // byte
4262 
4263 			static int id;
4264 
4265 };
4266 
4267 class VideoFrame : public Tag {
4268 	public:
4269 		VideoFrame();
4270 		virtual ~VideoFrame();
4271 
4272 		virtual bool parse( Reader *r, int end, Context *ctx );
4273 		virtual void dump( int indent, Context *ctx );
4274 		virtual size_t calcSize( Context *ctx, int start_at );
4275 		virtual void write( Writer *w, Context *ctx );
4276 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4277 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4278 
4279 		static VideoFrame* get( Reader *r, int end, Context *ctx );
4280 		static VideoFrame* getByName( const char *name );
4281 
4282 		std::uint16_t getobjectID();
4283 			void setobjectID( std::uint16_t );
4284 	std::uint16_t getframe();
4285 			void setframe( std::uint16_t );
4286 	Rest *getdata();
4287 
4288 
4289 	protected:
4290 		std::uint16_t objectID; // word
4291 std::uint16_t frame; // word
4292 Rest data; // object
4293 
4294 			static int id;
4295 
4296 };
4297 
4298 class ScriptLimits : public Tag {
4299 	public:
4300 		ScriptLimits();
4301 		virtual ~ScriptLimits();
4302 
4303 		virtual bool parse( Reader *r, int end, Context *ctx );
4304 		virtual void dump( int indent, Context *ctx );
4305 		virtual size_t calcSize( Context *ctx, int start_at );
4306 		virtual void write( Writer *w, Context *ctx );
4307 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4308 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4309 
4310 		static ScriptLimits* get( Reader *r, int end, Context *ctx );
4311 		static ScriptLimits* getByName( const char *name );
4312 
4313 		std::uint16_t getmaxRecursionDepth();
4314 			void setmaxRecursionDepth( std::uint16_t );
4315 	std::uint16_t gettimeout();
4316 			void settimeout( std::uint16_t );
4317 
4318 
4319 	protected:
4320 		std::uint16_t maxRecursionDepth; // word
4321 std::uint16_t timeout; // word
4322 
4323 			static int id;
4324 
4325 };
4326 
4327 class SetTabIndex : public Tag {
4328 	public:
4329 		SetTabIndex();
4330 		virtual ~SetTabIndex();
4331 
4332 		virtual bool parse( Reader *r, int end, Context *ctx );
4333 		virtual void dump( int indent, Context *ctx );
4334 		virtual size_t calcSize( Context *ctx, int start_at );
4335 		virtual void write( Writer *w, Context *ctx );
4336 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4337 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4338 
4339 		static SetTabIndex* get( Reader *r, int end, Context *ctx );
4340 		static SetTabIndex* getByName( const char *name );
4341 
4342 		std::uint16_t getdepth();
4343 			void setdepth( std::uint16_t );
4344 	std::uint16_t gettabIndex();
4345 			void settabIndex( std::uint16_t );
4346 
4347 
4348 	protected:
4349 		std::uint16_t depth; // word
4350 std::uint16_t tabIndex; // word
4351 
4352 			static int id;
4353 
4354 };
4355 
4356 class PlaceObject3 : public Tag {
4357 	public:
4358 		PlaceObject3();
4359 		virtual ~PlaceObject3();
4360 
4361 		virtual bool parse( Reader *r, int end, Context *ctx );
4362 		virtual void dump( int indent, Context *ctx );
4363 		virtual size_t calcSize( Context *ctx, int start_at );
4364 		virtual void write( Writer *w, Context *ctx );
4365 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4366 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4367 
4368 		static PlaceObject3* get( Reader *r, int end, Context *ctx );
4369 		static PlaceObject3* getByName( const char *name );
4370 
4371 		bool gethasEventHandler();
4372 			void sethasEventHandler( bool );
4373 	bool gethasClipDepth();
4374 			void sethasClipDepth( bool );
4375 	bool gethasName();
4376 			void sethasName( bool );
4377 	bool gethasMorph();
4378 			void sethasMorph( bool );
4379 	bool gethasColorTransform();
4380 			void sethasColorTransform( bool );
4381 	bool gethasTransform();
4382 			void sethasTransform( bool );
4383 	bool gethasID();
4384 			void sethasID( bool );
4385 	bool getreplace();
4386 			void setreplace( bool );
4387 	std::int32_t getreserved1();
4388 			void setreserved1( std::int32_t );
4389 	bool gethasCacheAsBitmap();
4390 			void sethasCacheAsBitmap( bool );
4391 	bool gethasBlendMode();
4392 			void sethasBlendMode( bool );
4393 	bool gethasFilterList();
4394 			void sethasFilterList( bool );
4395 	std::uint16_t getdepth();
4396 			void setdepth( std::uint16_t );
4397 	std::uint16_t getobjectID();
4398 			void setobjectID( std::uint16_t );
4399 	Transform *gettransform();
4400 	ColorTransform2 *getcolorTransform();
4401 	std::uint16_t getmorph();
4402 			void setmorph( std::uint16_t );
4403 	char * getname();
4404 			void setname( char * );
4405 	std::uint16_t getclipDepth();
4406 			void setclipDepth( std::uint16_t );
4407 	std::uint8_t getnumFilters();
4408 			void setnumFilters( std::uint8_t );
4409 	List<Filter> *getfilters();
4410 	std::uint8_t getblendMode();
4411 			void setblendMode( std::uint8_t );
4412 	std::uint8_t getbitmapCaching();
4413 			void setbitmapCaching( std::uint8_t );
4414 	std::uint16_t getreserved();
4415 			void setreserved( std::uint16_t );
4416 	std::uint16_t getallflags1();
4417 			void setallflags1( std::uint16_t );
4418 	std::uint16_t getallflags2();
4419 			void setallflags2( std::uint16_t );
4420 	List<Event> *getevents();
4421 
4422 
4423 	protected:
4424 		bool hasEventHandler; // bit
4425 bool hasClipDepth; // bit
4426 bool hasName; // bit
4427 bool hasMorph; // bit
4428 bool hasColorTransform; // bit
4429 bool hasTransform; // bit
4430 bool hasID; // bit
4431 bool replace; // bit
4432 std::int32_t reserved1; // integer
4433 bool hasCacheAsBitmap; // bit
4434 bool hasBlendMode; // bit
4435 bool hasFilterList; // bit
4436 std::uint16_t depth; // word
4437 std::uint16_t objectID; // word
4438 Transform transform; // object
4439 ColorTransform2 colorTransform; // object
4440 std::uint16_t morph; // word
4441 char * name; // string
4442 std::uint16_t clipDepth; // word
4443 std::uint8_t numFilters; // byte
4444 List<Filter> filters; // list
4445 std::uint8_t blendMode; // byte
4446 std::uint8_t bitmapCaching; // byte
4447 std::uint16_t reserved; // word
4448 std::uint16_t allflags1; // word
4449 std::uint16_t allflags2; // word
4450 List<Event> events; // list
4451 
4452 			static int id;
4453 
4454 };
4455 
4456 class ImportAssets2 : public Tag {
4457 	public:
4458 		ImportAssets2();
4459 		virtual ~ImportAssets2();
4460 
4461 		virtual bool parse( Reader *r, int end, Context *ctx );
4462 		virtual void dump( int indent, Context *ctx );
4463 		virtual size_t calcSize( Context *ctx, int start_at );
4464 		virtual void write( Writer *w, Context *ctx );
4465 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4466 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4467 
4468 		static ImportAssets2* get( Reader *r, int end, Context *ctx );
4469 		static ImportAssets2* getByName( const char *name );
4470 
4471 		char * geturl();
4472 			void seturl( char * );
4473 	std::uint8_t getreserved1();
4474 			void setreserved1( std::uint8_t );
4475 	std::uint8_t getreserved2();
4476 			void setreserved2( std::uint8_t );
4477 	std::uint16_t getcount();
4478 			void setcount( std::uint16_t );
4479 	List<Symbol> *getsymbols();
4480 
4481 
4482 	protected:
4483 		char * url; // string
4484 std::uint8_t reserved1; // byte
4485 std::uint8_t reserved2; // byte
4486 std::uint16_t count; // word
4487 List<Symbol> symbols; // list
4488 
4489 			static int id;
4490 
4491 };
4492 
4493 class FileAttributes : public Tag {
4494 	public:
4495 		FileAttributes();
4496 		virtual ~FileAttributes();
4497 
4498 		virtual bool parse( Reader *r, int end, Context *ctx );
4499 		virtual void dump( int indent, Context *ctx );
4500 		virtual size_t calcSize( Context *ctx, int start_at );
4501 		virtual void write( Writer *w, Context *ctx );
4502 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4503 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4504 
4505 		static FileAttributes* get( Reader *r, int end, Context *ctx );
4506 		static FileAttributes* getByName( const char *name );
4507 
4508 		std::int32_t getreserved1();
4509 			void setreserved1( std::int32_t );
4510 	bool gethasMetaData();
4511 			void sethasMetaData( bool );
4512 	std::int32_t getreserved2();
4513 			void setreserved2( std::int32_t );
4514 	bool getallowABC();
4515 			void setallowABC( bool );
4516 	bool getsuppressCrossDomainCaching();
4517 			void setsuppressCrossDomainCaching( bool );
4518 	bool getswfRelativeURLs();
4519 			void setswfRelativeURLs( bool );
4520 	bool getuseNetwork();
4521 			void setuseNetwork( bool );
4522 	std::int32_t getreserved3();
4523 			void setreserved3( std::int32_t );
4524 
4525 
4526 	protected:
4527 		std::int32_t reserved1; // integer
4528 bool hasMetaData; // bit
4529 std::int32_t reserved2; // integer
4530 bool allowABC; // bit
4531 bool suppressCrossDomainCaching; // bit
4532 bool swfRelativeURLs; // bit
4533 bool useNetwork; // bit
4534 std::int32_t reserved3; // integer
4535 
4536 			static int id;
4537 
4538 };
4539 
4540 class DefineFontAlignZones : public Tag {
4541 	public:
4542 		DefineFontAlignZones();
4543 		virtual ~DefineFontAlignZones();
4544 
4545 		virtual bool parse( Reader *r, int end, Context *ctx );
4546 		virtual void dump( int indent, Context *ctx );
4547 		virtual size_t calcSize( Context *ctx, int start_at );
4548 		virtual void write( Writer *w, Context *ctx );
4549 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4550 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4551 
4552 		static DefineFontAlignZones* get( Reader *r, int end, Context *ctx );
4553 		static DefineFontAlignZones* getByName( const char *name );
4554 
4555 		std::uint16_t getobjectID();
4556 			void setobjectID( std::uint16_t );
4557 	std::int32_t getcsmTableHint();
4558 			void setcsmTableHint( std::int32_t );
4559 	std::int32_t getreserved();
4560 			void setreserved( std::int32_t );
4561 	List<ZoneArray> *getzoneArrays();
4562 
4563 
4564 	protected:
4565 		std::uint16_t objectID; // word
4566 std::int32_t csmTableHint; // integer
4567 std::int32_t reserved; // integer
4568 List<ZoneArray> zoneArrays; // list
4569 
4570 			static int id;
4571 
4572 };
4573 
4574 class CSMTextSettings : public Tag {
4575 	public:
4576 		CSMTextSettings();
4577 		virtual ~CSMTextSettings();
4578 
4579 		virtual bool parse( Reader *r, int end, Context *ctx );
4580 		virtual void dump( int indent, Context *ctx );
4581 		virtual size_t calcSize( Context *ctx, int start_at );
4582 		virtual void write( Writer *w, Context *ctx );
4583 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4584 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4585 
4586 		static CSMTextSettings* get( Reader *r, int end, Context *ctx );
4587 		static CSMTextSettings* getByName( const char *name );
4588 
4589 		std::uint16_t getobjectID();
4590 			void setobjectID( std::uint16_t );
4591 	std::int32_t getuseFlashType();
4592 			void setuseFlashType( std::int32_t );
4593 	std::int32_t getgridFit();
4594 			void setgridFit( std::int32_t );
4595 	std::int32_t getreserved1();
4596 			void setreserved1( std::int32_t );
4597 	float getthickness();
4598 			void setthickness( float );
4599 	float getsharpness();
4600 			void setsharpness( float );
4601 	std::uint8_t getreserved2();
4602 			void setreserved2( std::uint8_t );
4603 
4604 
4605 	protected:
4606 		std::uint16_t objectID; // word
4607 std::int32_t useFlashType; // integer
4608 std::int32_t gridFit; // integer
4609 std::int32_t reserved1; // integer
4610 float thickness; // float
4611 float sharpness; // float
4612 std::uint8_t reserved2; // byte
4613 
4614 			static int id;
4615 
4616 };
4617 
4618 class Metadata : public Tag {
4619 	public:
4620 		Metadata();
4621 		virtual ~Metadata();
4622 
4623 		virtual bool parse( Reader *r, int end, Context *ctx );
4624 		virtual void dump( int indent, Context *ctx );
4625 		virtual size_t calcSize( Context *ctx, int start_at );
4626 		virtual void write( Writer *w, Context *ctx );
4627 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4628 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4629 
4630 		static Metadata* get( Reader *r, int end, Context *ctx );
4631 		static Metadata* getByName( const char *name );
4632 
4633 		char * getRDF();
4634 			void setRDF( char * );
4635 
4636 
4637 	protected:
4638 		char * RDF; // xml
4639 
4640 			static int id;
4641 
4642 };
4643 
4644 class DefineScalingGrid : public Tag {
4645 	public:
4646 		DefineScalingGrid();
4647 		virtual ~DefineScalingGrid();
4648 
4649 		virtual bool parse( Reader *r, int end, Context *ctx );
4650 		virtual void dump( int indent, Context *ctx );
4651 		virtual size_t calcSize( Context *ctx, int start_at );
4652 		virtual void write( Writer *w, Context *ctx );
4653 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4654 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4655 
4656 		static DefineScalingGrid* get( Reader *r, int end, Context *ctx );
4657 		static DefineScalingGrid* getByName( const char *name );
4658 
4659 		std::uint16_t getobjectID();
4660 			void setobjectID( std::uint16_t );
4661 	Rectangle *getsplitter();
4662 
4663 
4664 	protected:
4665 		std::uint16_t objectID; // word
4666 Rectangle splitter; // object
4667 
4668 			static int id;
4669 
4670 };
4671 
4672 class DoABC : public Tag {
4673 	public:
4674 		DoABC();
4675 		virtual ~DoABC();
4676 
4677 		virtual bool parse( Reader *r, int end, Context *ctx );
4678 		virtual void dump( int indent, Context *ctx );
4679 		virtual size_t calcSize( Context *ctx, int start_at );
4680 		virtual void write( Writer *w, Context *ctx );
4681 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4682 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4683 
4684 		static DoABC* get( Reader *r, int end, Context *ctx );
4685 		static DoABC* getByName( const char *name );
4686 
4687 		Action3 *getactions();
4688 
4689 
4690 	protected:
4691 		Action3 actions; // object
4692 
4693 			static int id;
4694 
4695 };
4696 
4697 class DoABCDefine : public Tag {
4698 	public:
4699 		DoABCDefine();
4700 		virtual ~DoABCDefine();
4701 
4702 		virtual bool parse( Reader *r, int end, Context *ctx );
4703 		virtual void dump( int indent, Context *ctx );
4704 		virtual size_t calcSize( Context *ctx, int start_at );
4705 		virtual void write( Writer *w, Context *ctx );
4706 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4707 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4708 
4709 		static DoABCDefine* get( Reader *r, int end, Context *ctx );
4710 		static DoABCDefine* getByName( const char *name );
4711 
4712 		std::uint32_t getflags();
4713 			void setflags( std::uint32_t );
4714 	char * getname();
4715 			void setname( char * );
4716 	Action3 *getactions();
4717 
4718 
4719 	protected:
4720 		std::uint32_t flags; // uint32
4721 char * name; // string
4722 Action3 actions; // object
4723 
4724 			static int id;
4725 
4726 };
4727 
4728 class SymbolClass : public Tag {
4729 	public:
4730 		SymbolClass();
4731 		virtual ~SymbolClass();
4732 
4733 		virtual bool parse( Reader *r, int end, Context *ctx );
4734 		virtual void dump( int indent, Context *ctx );
4735 		virtual size_t calcSize( Context *ctx, int start_at );
4736 		virtual void write( Writer *w, Context *ctx );
4737 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4738 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4739 
4740 		static SymbolClass* get( Reader *r, int end, Context *ctx );
4741 		static SymbolClass* getByName( const char *name );
4742 
4743 		std::uint16_t getcount();
4744 			void setcount( std::uint16_t );
4745 	List<Symbol> *getsymbols();
4746 
4747 
4748 	protected:
4749 		std::uint16_t count; // word
4750 List<Symbol> symbols; // list
4751 
4752 			static int id;
4753 
4754 };
4755 
4756 class DefineSceneAndFrameLabelData : public Tag {
4757 	public:
4758 		DefineSceneAndFrameLabelData();
4759 		virtual ~DefineSceneAndFrameLabelData();
4760 
4761 		virtual bool parse( Reader *r, int end, Context *ctx );
4762 		virtual void dump( int indent, Context *ctx );
4763 		virtual size_t calcSize( Context *ctx, int start_at );
4764 		virtual void write( Writer *w, Context *ctx );
4765 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4766 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4767 
4768 		static DefineSceneAndFrameLabelData* get( Reader *r, int end, Context *ctx );
4769 		static DefineSceneAndFrameLabelData* getByName( const char *name );
4770 
4771 		std::uint32_t getsceneCount();
4772 			void setsceneCount( std::uint32_t );
4773 	List<Scene> *getscenes();
4774 	std::uint32_t getframeCount();
4775 			void setframeCount( std::uint32_t );
4776 	List<Frame> *getframes();
4777 
4778 
4779 	protected:
4780 		std::uint32_t sceneCount; // encodedu32
4781 List<Scene> scenes; // list
4782 std::uint32_t frameCount; // encodedu32
4783 List<Frame> frames; // list
4784 
4785 			static int id;
4786 
4787 };
4788 
4789 class DefineBinaryData : public Tag {
4790 	public:
4791 		DefineBinaryData();
4792 		virtual ~DefineBinaryData();
4793 
4794 		virtual bool parse( Reader *r, int end, Context *ctx );
4795 		virtual void dump( int indent, Context *ctx );
4796 		virtual size_t calcSize( Context *ctx, int start_at );
4797 		virtual void write( Writer *w, Context *ctx );
4798 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4799 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4800 
4801 		static DefineBinaryData* get( Reader *r, int end, Context *ctx );
4802 		static DefineBinaryData* getByName( const char *name );
4803 
4804 		std::uint16_t getobjectID();
4805 			void setobjectID( std::uint16_t );
4806 	std::uint32_t getreserved();
4807 			void setreserved( std::uint32_t );
4808 	Rest *getdata();
4809 
4810 
4811 	protected:
4812 		std::uint16_t objectID; // word
4813 std::uint32_t reserved; // uint32
4814 Rest data; // object
4815 
4816 			static int id;
4817 
4818 };
4819 
4820 class DefineFontName : public Tag {
4821 	public:
4822 		DefineFontName();
4823 		virtual ~DefineFontName();
4824 
4825 		virtual bool parse( Reader *r, int end, Context *ctx );
4826 		virtual void dump( int indent, Context *ctx );
4827 		virtual size_t calcSize( Context *ctx, int start_at );
4828 		virtual void write( Writer *w, Context *ctx );
4829 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4830 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4831 
4832 		static DefineFontName* get( Reader *r, int end, Context *ctx );
4833 		static DefineFontName* getByName( const char *name );
4834 
4835 		std::uint16_t getobjectID();
4836 			void setobjectID( std::uint16_t );
4837 	char * getname();
4838 			void setname( char * );
4839 	char * getcopyright();
4840 			void setcopyright( char * );
4841 
4842 
4843 	protected:
4844 		std::uint16_t objectID; // word
4845 char * name; // string
4846 char * copyright; // string
4847 
4848 			static int id;
4849 
4850 };
4851 
4852 class EnableDebugger : public Tag {
4853 	public:
4854 		EnableDebugger();
4855 		virtual ~EnableDebugger();
4856 
4857 		virtual bool parse( Reader *r, int end, Context *ctx );
4858 		virtual void dump( int indent, Context *ctx );
4859 		virtual size_t calcSize( Context *ctx, int start_at );
4860 		virtual void write( Writer *w, Context *ctx );
4861 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4862 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4863 
4864 		static EnableDebugger* get( Reader *r, int end, Context *ctx );
4865 		static EnableDebugger* getByName( const char *name );
4866 
4867 		char * getpassword();
4868 			void setpassword( char * );
4869 
4870 
4871 	protected:
4872 		char * password; // string
4873 
4874 			static int id;
4875 
4876 };
4877 
4878 class EnableDebugger2 : public Tag {
4879 	public:
4880 		EnableDebugger2();
4881 		virtual ~EnableDebugger2();
4882 
4883 		virtual bool parse( Reader *r, int end, Context *ctx );
4884 		virtual void dump( int indent, Context *ctx );
4885 		virtual size_t calcSize( Context *ctx, int start_at );
4886 		virtual void write( Writer *w, Context *ctx );
4887 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4888 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4889 
4890 		static EnableDebugger2* get( Reader *r, int end, Context *ctx );
4891 		static EnableDebugger2* getByName( const char *name );
4892 
4893 		std::uint16_t getreserved();
4894 			void setreserved( std::uint16_t );
4895 	char * getpassword();
4896 			void setpassword( char * );
4897 
4898 
4899 	protected:
4900 		std::uint16_t reserved; // word
4901 char * password; // string
4902 
4903 			static int id;
4904 
4905 };
4906 
4907 class StackString : public StackItem {
4908 	public:
4909 		StackString();
4910 		virtual ~StackString();
4911 
4912 		virtual bool parse( Reader *r, int end, Context *ctx );
4913 		virtual void dump( int indent, Context *ctx );
4914 		virtual size_t calcSize( Context *ctx, int start_at );
4915 		virtual void write( Writer *w, Context *ctx );
4916 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4917 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4918 
4919 		static StackString* get( Reader *r, int end, Context *ctx );
4920 		static StackString* getByName( const char *name );
4921 
4922 		char * getvalue();
4923 			void setvalue( char * );
4924 
4925 
4926 	protected:
4927 		char * value; // string
4928 
4929 			static int id;
4930 
4931 };
4932 
4933 class StackFloat : public StackItem {
4934 	public:
4935 		StackFloat();
4936 		virtual ~StackFloat();
4937 
4938 		virtual bool parse( Reader *r, int end, Context *ctx );
4939 		virtual void dump( int indent, Context *ctx );
4940 		virtual size_t calcSize( Context *ctx, int start_at );
4941 		virtual void write( Writer *w, Context *ctx );
4942 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4943 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4944 
4945 		static StackFloat* get( Reader *r, int end, Context *ctx );
4946 		static StackFloat* getByName( const char *name );
4947 
4948 		float getvalue();
4949 			void setvalue( float );
4950 
4951 
4952 	protected:
4953 		float value; // float
4954 
4955 			static int id;
4956 
4957 };
4958 
4959 class StackNull : public StackItem {
4960 	public:
4961 		StackNull();
4962 		virtual ~StackNull();
4963 
4964 		virtual bool parse( Reader *r, int end, Context *ctx );
4965 		virtual void dump( int indent, Context *ctx );
4966 		virtual size_t calcSize( Context *ctx, int start_at );
4967 		virtual void write( Writer *w, Context *ctx );
4968 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4969 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4970 
4971 		static StackNull* get( Reader *r, int end, Context *ctx );
4972 		static StackNull* getByName( const char *name );
4973 
4974 
4975 
4976 	protected:
4977 
4978 			static int id;
4979 
4980 };
4981 
4982 class StackUndefined : public StackItem {
4983 	public:
4984 		StackUndefined();
4985 		virtual ~StackUndefined();
4986 
4987 		virtual bool parse( Reader *r, int end, Context *ctx );
4988 		virtual void dump( int indent, Context *ctx );
4989 		virtual size_t calcSize( Context *ctx, int start_at );
4990 		virtual void write( Writer *w, Context *ctx );
4991 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
4992 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
4993 
4994 		static StackUndefined* get( Reader *r, int end, Context *ctx );
4995 		static StackUndefined* getByName( const char *name );
4996 
4997 
4998 
4999 	protected:
5000 
5001 			static int id;
5002 
5003 };
5004 
5005 class StackRegister : public StackItem {
5006 	public:
5007 		StackRegister();
5008 		virtual ~StackRegister();
5009 
5010 		virtual bool parse( Reader *r, int end, Context *ctx );
5011 		virtual void dump( int indent, Context *ctx );
5012 		virtual size_t calcSize( Context *ctx, int start_at );
5013 		virtual void write( Writer *w, Context *ctx );
5014 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5015 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5016 
5017 		static StackRegister* get( Reader *r, int end, Context *ctx );
5018 		static StackRegister* getByName( const char *name );
5019 
5020 		std::uint8_t getreg();
5021 			void setreg( std::uint8_t );
5022 
5023 
5024 	protected:
5025 		std::uint8_t reg; // byte
5026 
5027 			static int id;
5028 
5029 };
5030 
5031 class StackBoolean : public StackItem {
5032 	public:
5033 		StackBoolean();
5034 		virtual ~StackBoolean();
5035 
5036 		virtual bool parse( Reader *r, int end, Context *ctx );
5037 		virtual void dump( int indent, Context *ctx );
5038 		virtual size_t calcSize( Context *ctx, int start_at );
5039 		virtual void write( Writer *w, Context *ctx );
5040 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5041 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5042 
5043 		static StackBoolean* get( Reader *r, int end, Context *ctx );
5044 		static StackBoolean* getByName( const char *name );
5045 
5046 		std::uint8_t getvalue();
5047 			void setvalue( std::uint8_t );
5048 
5049 
5050 	protected:
5051 		std::uint8_t value; // byte
5052 
5053 			static int id;
5054 
5055 };
5056 
5057 class StackDouble : public StackItem {
5058 	public:
5059 		StackDouble();
5060 		virtual ~StackDouble();
5061 
5062 		virtual bool parse( Reader *r, int end, Context *ctx );
5063 		virtual void dump( int indent, Context *ctx );
5064 		virtual size_t calcSize( Context *ctx, int start_at );
5065 		virtual void write( Writer *w, Context *ctx );
5066 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5067 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5068 
5069 		static StackDouble* get( Reader *r, int end, Context *ctx );
5070 		static StackDouble* getByName( const char *name );
5071 
5072 		double getvalue();
5073 			void setvalue( double );
5074 
5075 
5076 	protected:
5077 		double value; // double
5078 
5079 			static int id;
5080 
5081 };
5082 
5083 class StackInteger : public StackItem {
5084 	public:
5085 		StackInteger();
5086 		virtual ~StackInteger();
5087 
5088 		virtual bool parse( Reader *r, int end, Context *ctx );
5089 		virtual void dump( int indent, Context *ctx );
5090 		virtual size_t calcSize( Context *ctx, int start_at );
5091 		virtual void write( Writer *w, Context *ctx );
5092 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5093 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5094 
5095 		static StackInteger* get( Reader *r, int end, Context *ctx );
5096 		static StackInteger* getByName( const char *name );
5097 
5098 		std::uint32_t getvalue();
5099 			void setvalue( std::uint32_t );
5100 
5101 
5102 	protected:
5103 		std::uint32_t value; // uint32
5104 
5105 			static int id;
5106 
5107 };
5108 
5109 class StackDictionaryLookup : public StackItem {
5110 	public:
5111 		StackDictionaryLookup();
5112 		virtual ~StackDictionaryLookup();
5113 
5114 		virtual bool parse( Reader *r, int end, Context *ctx );
5115 		virtual void dump( int indent, Context *ctx );
5116 		virtual size_t calcSize( Context *ctx, int start_at );
5117 		virtual void write( Writer *w, Context *ctx );
5118 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5119 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5120 
5121 		static StackDictionaryLookup* get( Reader *r, int end, Context *ctx );
5122 		static StackDictionaryLookup* getByName( const char *name );
5123 
5124 		std::uint8_t getindex();
5125 			void setindex( std::uint8_t );
5126 
5127 
5128 	protected:
5129 		std::uint8_t index; // byte
5130 
5131 			static int id;
5132 
5133 };
5134 
5135 class StackLargeDictionaryLookup : public StackItem {
5136 	public:
5137 		StackLargeDictionaryLookup();
5138 		virtual ~StackLargeDictionaryLookup();
5139 
5140 		virtual bool parse( Reader *r, int end, Context *ctx );
5141 		virtual void dump( int indent, Context *ctx );
5142 		virtual size_t calcSize( Context *ctx, int start_at );
5143 		virtual void write( Writer *w, Context *ctx );
5144 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5145 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5146 
5147 		static StackLargeDictionaryLookup* get( Reader *r, int end, Context *ctx );
5148 		static StackLargeDictionaryLookup* getByName( const char *name );
5149 
5150 		std::uint16_t getindex();
5151 			void setindex( std::uint16_t );
5152 
5153 
5154 	protected:
5155 		std::uint16_t index; // word
5156 
5157 			static int id;
5158 
5159 };
5160 
5161 class UnknownAction : public Action {
5162 	public:
5163 		UnknownAction();
5164 		virtual ~UnknownAction();
5165 
5166 		virtual bool parse( Reader *r, int end, Context *ctx );
5167 		virtual void dump( int indent, Context *ctx );
5168 		virtual size_t calcSize( Context *ctx, int start_at );
5169 		virtual void write( Writer *w, Context *ctx );
5170 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5171 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5172 
5173 		static UnknownAction* get( Reader *r, int end, Context *ctx );
5174 		static UnknownAction* getByName( const char *name );
5175 
5176 
5177 			void getdata( unsigned char **dst, int *size );
5178 			void setdata( const unsigned char *src, int size );
5179 
5180 
5181 	protected:
5182 		unsigned char * data; // data
5183 
5184 			static int id;
5185 
5186 };
5187 
5188 class EndAction : public Action {
5189 	public:
5190 		EndAction();
5191 		virtual ~EndAction();
5192 
5193 		virtual bool parse( Reader *r, int end, Context *ctx );
5194 		virtual void dump( int indent, Context *ctx );
5195 		virtual size_t calcSize( Context *ctx, int start_at );
5196 		virtual void write( Writer *w, Context *ctx );
5197 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5198 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5199 
5200 		static EndAction* get( Reader *r, int end, Context *ctx );
5201 		static EndAction* getByName( const char *name );
5202 
5203 
5204 
5205 	protected:
5206 
5207 			static int id;
5208 
5209 };
5210 
5211 class NextFrame : public Action {
5212 	public:
5213 		NextFrame();
5214 		virtual ~NextFrame();
5215 
5216 		virtual bool parse( Reader *r, int end, Context *ctx );
5217 		virtual void dump( int indent, Context *ctx );
5218 		virtual size_t calcSize( Context *ctx, int start_at );
5219 		virtual void write( Writer *w, Context *ctx );
5220 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5221 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5222 
5223 		static NextFrame* get( Reader *r, int end, Context *ctx );
5224 		static NextFrame* getByName( const char *name );
5225 
5226 
5227 
5228 	protected:
5229 
5230 			static int id;
5231 
5232 };
5233 
5234 class PreviousFrame : public Action {
5235 	public:
5236 		PreviousFrame();
5237 		virtual ~PreviousFrame();
5238 
5239 		virtual bool parse( Reader *r, int end, Context *ctx );
5240 		virtual void dump( int indent, Context *ctx );
5241 		virtual size_t calcSize( Context *ctx, int start_at );
5242 		virtual void write( Writer *w, Context *ctx );
5243 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5244 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5245 
5246 		static PreviousFrame* get( Reader *r, int end, Context *ctx );
5247 		static PreviousFrame* getByName( const char *name );
5248 
5249 
5250 
5251 	protected:
5252 
5253 			static int id;
5254 
5255 };
5256 
5257 class Play : public Action {
5258 	public:
5259 		Play();
5260 		virtual ~Play();
5261 
5262 		virtual bool parse( Reader *r, int end, Context *ctx );
5263 		virtual void dump( int indent, Context *ctx );
5264 		virtual size_t calcSize( Context *ctx, int start_at );
5265 		virtual void write( Writer *w, Context *ctx );
5266 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5267 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5268 
5269 		static Play* get( Reader *r, int end, Context *ctx );
5270 		static Play* getByName( const char *name );
5271 
5272 
5273 
5274 	protected:
5275 
5276 			static int id;
5277 
5278 };
5279 
5280 class Stop : public Action {
5281 	public:
5282 		Stop();
5283 		virtual ~Stop();
5284 
5285 		virtual bool parse( Reader *r, int end, Context *ctx );
5286 		virtual void dump( int indent, Context *ctx );
5287 		virtual size_t calcSize( Context *ctx, int start_at );
5288 		virtual void write( Writer *w, Context *ctx );
5289 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5290 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5291 
5292 		static Stop* get( Reader *r, int end, Context *ctx );
5293 		static Stop* getByName( const char *name );
5294 
5295 
5296 
5297 	protected:
5298 
5299 			static int id;
5300 
5301 };
5302 
5303 class ToggleQuality : public Action {
5304 	public:
5305 		ToggleQuality();
5306 		virtual ~ToggleQuality();
5307 
5308 		virtual bool parse( Reader *r, int end, Context *ctx );
5309 		virtual void dump( int indent, Context *ctx );
5310 		virtual size_t calcSize( Context *ctx, int start_at );
5311 		virtual void write( Writer *w, Context *ctx );
5312 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5313 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5314 
5315 		static ToggleQuality* get( Reader *r, int end, Context *ctx );
5316 		static ToggleQuality* getByName( const char *name );
5317 
5318 
5319 
5320 	protected:
5321 
5322 			static int id;
5323 
5324 };
5325 
5326 class StopSound : public Action {
5327 	public:
5328 		StopSound();
5329 		virtual ~StopSound();
5330 
5331 		virtual bool parse( Reader *r, int end, Context *ctx );
5332 		virtual void dump( int indent, Context *ctx );
5333 		virtual size_t calcSize( Context *ctx, int start_at );
5334 		virtual void write( Writer *w, Context *ctx );
5335 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5336 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5337 
5338 		static StopSound* get( Reader *r, int end, Context *ctx );
5339 		static StopSound* getByName( const char *name );
5340 
5341 
5342 
5343 	protected:
5344 
5345 			static int id;
5346 
5347 };
5348 
5349 class AddCast : public Action {
5350 	public:
5351 		AddCast();
5352 		virtual ~AddCast();
5353 
5354 		virtual bool parse( Reader *r, int end, Context *ctx );
5355 		virtual void dump( int indent, Context *ctx );
5356 		virtual size_t calcSize( Context *ctx, int start_at );
5357 		virtual void write( Writer *w, Context *ctx );
5358 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5359 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5360 
5361 		static AddCast* get( Reader *r, int end, Context *ctx );
5362 		static AddCast* getByName( const char *name );
5363 
5364 
5365 
5366 	protected:
5367 
5368 			static int id;
5369 
5370 };
5371 
5372 class Substract : public Action {
5373 	public:
5374 		Substract();
5375 		virtual ~Substract();
5376 
5377 		virtual bool parse( Reader *r, int end, Context *ctx );
5378 		virtual void dump( int indent, Context *ctx );
5379 		virtual size_t calcSize( Context *ctx, int start_at );
5380 		virtual void write( Writer *w, Context *ctx );
5381 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5382 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5383 
5384 		static Substract* get( Reader *r, int end, Context *ctx );
5385 		static Substract* getByName( const char *name );
5386 
5387 
5388 
5389 	protected:
5390 
5391 			static int id;
5392 
5393 };
5394 
5395 class Mulitply : public Action {
5396 	public:
5397 		Mulitply();
5398 		virtual ~Mulitply();
5399 
5400 		virtual bool parse( Reader *r, int end, Context *ctx );
5401 		virtual void dump( int indent, Context *ctx );
5402 		virtual size_t calcSize( Context *ctx, int start_at );
5403 		virtual void write( Writer *w, Context *ctx );
5404 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5405 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5406 
5407 		static Mulitply* get( Reader *r, int end, Context *ctx );
5408 		static Mulitply* getByName( const char *name );
5409 
5410 
5411 
5412 	protected:
5413 
5414 			static int id;
5415 
5416 };
5417 
5418 class Divide : public Action {
5419 	public:
5420 		Divide();
5421 		virtual ~Divide();
5422 
5423 		virtual bool parse( Reader *r, int end, Context *ctx );
5424 		virtual void dump( int indent, Context *ctx );
5425 		virtual size_t calcSize( Context *ctx, int start_at );
5426 		virtual void write( Writer *w, Context *ctx );
5427 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5428 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5429 
5430 		static Divide* get( Reader *r, int end, Context *ctx );
5431 		static Divide* getByName( const char *name );
5432 
5433 
5434 
5435 	protected:
5436 
5437 			static int id;
5438 
5439 };
5440 
5441 class EqualCast : public Action {
5442 	public:
5443 		EqualCast();
5444 		virtual ~EqualCast();
5445 
5446 		virtual bool parse( Reader *r, int end, Context *ctx );
5447 		virtual void dump( int indent, Context *ctx );
5448 		virtual size_t calcSize( Context *ctx, int start_at );
5449 		virtual void write( Writer *w, Context *ctx );
5450 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5451 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5452 
5453 		static EqualCast* get( Reader *r, int end, Context *ctx );
5454 		static EqualCast* getByName( const char *name );
5455 
5456 
5457 
5458 	protected:
5459 
5460 			static int id;
5461 
5462 };
5463 
5464 class LessThanCast : public Action {
5465 	public:
5466 		LessThanCast();
5467 		virtual ~LessThanCast();
5468 
5469 		virtual bool parse( Reader *r, int end, Context *ctx );
5470 		virtual void dump( int indent, Context *ctx );
5471 		virtual size_t calcSize( Context *ctx, int start_at );
5472 		virtual void write( Writer *w, Context *ctx );
5473 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5474 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5475 
5476 		static LessThanCast* get( Reader *r, int end, Context *ctx );
5477 		static LessThanCast* getByName( const char *name );
5478 
5479 
5480 
5481 	protected:
5482 
5483 			static int id;
5484 
5485 };
5486 
5487 class LogicalAND : public Action {
5488 	public:
5489 		LogicalAND();
5490 		virtual ~LogicalAND();
5491 
5492 		virtual bool parse( Reader *r, int end, Context *ctx );
5493 		virtual void dump( int indent, Context *ctx );
5494 		virtual size_t calcSize( Context *ctx, int start_at );
5495 		virtual void write( Writer *w, Context *ctx );
5496 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5497 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5498 
5499 		static LogicalAND* get( Reader *r, int end, Context *ctx );
5500 		static LogicalAND* getByName( const char *name );
5501 
5502 
5503 
5504 	protected:
5505 
5506 			static int id;
5507 
5508 };
5509 
5510 class LogicalOR : public Action {
5511 	public:
5512 		LogicalOR();
5513 		virtual ~LogicalOR();
5514 
5515 		virtual bool parse( Reader *r, int end, Context *ctx );
5516 		virtual void dump( int indent, Context *ctx );
5517 		virtual size_t calcSize( Context *ctx, int start_at );
5518 		virtual void write( Writer *w, Context *ctx );
5519 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5520 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5521 
5522 		static LogicalOR* get( Reader *r, int end, Context *ctx );
5523 		static LogicalOR* getByName( const char *name );
5524 
5525 
5526 
5527 	protected:
5528 
5529 			static int id;
5530 
5531 };
5532 
5533 class LogicalNOT : public Action {
5534 	public:
5535 		LogicalNOT();
5536 		virtual ~LogicalNOT();
5537 
5538 		virtual bool parse( Reader *r, int end, Context *ctx );
5539 		virtual void dump( int indent, Context *ctx );
5540 		virtual size_t calcSize( Context *ctx, int start_at );
5541 		virtual void write( Writer *w, Context *ctx );
5542 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5543 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5544 
5545 		static LogicalNOT* get( Reader *r, int end, Context *ctx );
5546 		static LogicalNOT* getByName( const char *name );
5547 
5548 
5549 
5550 	protected:
5551 
5552 			static int id;
5553 
5554 };
5555 
5556 class StringEqual : public Action {
5557 	public:
5558 		StringEqual();
5559 		virtual ~StringEqual();
5560 
5561 		virtual bool parse( Reader *r, int end, Context *ctx );
5562 		virtual void dump( int indent, Context *ctx );
5563 		virtual size_t calcSize( Context *ctx, int start_at );
5564 		virtual void write( Writer *w, Context *ctx );
5565 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5566 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5567 
5568 		static StringEqual* get( Reader *r, int end, Context *ctx );
5569 		static StringEqual* getByName( const char *name );
5570 
5571 
5572 
5573 	protected:
5574 
5575 			static int id;
5576 
5577 };
5578 
5579 class StringLength : public Action {
5580 	public:
5581 		StringLength();
5582 		virtual ~StringLength();
5583 
5584 		virtual bool parse( Reader *r, int end, Context *ctx );
5585 		virtual void dump( int indent, Context *ctx );
5586 		virtual size_t calcSize( Context *ctx, int start_at );
5587 		virtual void write( Writer *w, Context *ctx );
5588 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5589 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5590 
5591 		static StringLength* get( Reader *r, int end, Context *ctx );
5592 		static StringLength* getByName( const char *name );
5593 
5594 
5595 
5596 	protected:
5597 
5598 			static int id;
5599 
5600 };
5601 
5602 class SubString : public Action {
5603 	public:
5604 		SubString();
5605 		virtual ~SubString();
5606 
5607 		virtual bool parse( Reader *r, int end, Context *ctx );
5608 		virtual void dump( int indent, Context *ctx );
5609 		virtual size_t calcSize( Context *ctx, int start_at );
5610 		virtual void write( Writer *w, Context *ctx );
5611 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5612 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5613 
5614 		static SubString* get( Reader *r, int end, Context *ctx );
5615 		static SubString* getByName( const char *name );
5616 
5617 
5618 
5619 	protected:
5620 
5621 			static int id;
5622 
5623 };
5624 
5625 class Pop : public Action {
5626 	public:
5627 		Pop();
5628 		virtual ~Pop();
5629 
5630 		virtual bool parse( Reader *r, int end, Context *ctx );
5631 		virtual void dump( int indent, Context *ctx );
5632 		virtual size_t calcSize( Context *ctx, int start_at );
5633 		virtual void write( Writer *w, Context *ctx );
5634 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5635 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5636 
5637 		static Pop* get( Reader *r, int end, Context *ctx );
5638 		static Pop* getByName( const char *name );
5639 
5640 
5641 
5642 	protected:
5643 
5644 			static int id;
5645 
5646 };
5647 
5648 class IntegralPart : public Action {
5649 	public:
5650 		IntegralPart();
5651 		virtual ~IntegralPart();
5652 
5653 		virtual bool parse( Reader *r, int end, Context *ctx );
5654 		virtual void dump( int indent, Context *ctx );
5655 		virtual size_t calcSize( Context *ctx, int start_at );
5656 		virtual void write( Writer *w, Context *ctx );
5657 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5658 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5659 
5660 		static IntegralPart* get( Reader *r, int end, Context *ctx );
5661 		static IntegralPart* getByName( const char *name );
5662 
5663 
5664 
5665 	protected:
5666 
5667 			static int id;
5668 
5669 };
5670 
5671 class GetVariable : public Action {
5672 	public:
5673 		GetVariable();
5674 		virtual ~GetVariable();
5675 
5676 		virtual bool parse( Reader *r, int end, Context *ctx );
5677 		virtual void dump( int indent, Context *ctx );
5678 		virtual size_t calcSize( Context *ctx, int start_at );
5679 		virtual void write( Writer *w, Context *ctx );
5680 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5681 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5682 
5683 		static GetVariable* get( Reader *r, int end, Context *ctx );
5684 		static GetVariable* getByName( const char *name );
5685 
5686 
5687 
5688 	protected:
5689 
5690 			static int id;
5691 
5692 };
5693 
5694 class SetVariable : public Action {
5695 	public:
5696 		SetVariable();
5697 		virtual ~SetVariable();
5698 
5699 		virtual bool parse( Reader *r, int end, Context *ctx );
5700 		virtual void dump( int indent, Context *ctx );
5701 		virtual size_t calcSize( Context *ctx, int start_at );
5702 		virtual void write( Writer *w, Context *ctx );
5703 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5704 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5705 
5706 		static SetVariable* get( Reader *r, int end, Context *ctx );
5707 		static SetVariable* getByName( const char *name );
5708 
5709 
5710 
5711 	protected:
5712 
5713 			static int id;
5714 
5715 };
5716 
5717 class SetTargetDynamic : public Action {
5718 	public:
5719 		SetTargetDynamic();
5720 		virtual ~SetTargetDynamic();
5721 
5722 		virtual bool parse( Reader *r, int end, Context *ctx );
5723 		virtual void dump( int indent, Context *ctx );
5724 		virtual size_t calcSize( Context *ctx, int start_at );
5725 		virtual void write( Writer *w, Context *ctx );
5726 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5727 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5728 
5729 		static SetTargetDynamic* get( Reader *r, int end, Context *ctx );
5730 		static SetTargetDynamic* getByName( const char *name );
5731 
5732 
5733 
5734 	protected:
5735 
5736 			static int id;
5737 
5738 };
5739 
5740 class ConcatenateString : public Action {
5741 	public:
5742 		ConcatenateString();
5743 		virtual ~ConcatenateString();
5744 
5745 		virtual bool parse( Reader *r, int end, Context *ctx );
5746 		virtual void dump( int indent, Context *ctx );
5747 		virtual size_t calcSize( Context *ctx, int start_at );
5748 		virtual void write( Writer *w, Context *ctx );
5749 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5750 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5751 
5752 		static ConcatenateString* get( Reader *r, int end, Context *ctx );
5753 		static ConcatenateString* getByName( const char *name );
5754 
5755 
5756 
5757 	protected:
5758 
5759 			static int id;
5760 
5761 };
5762 
5763 class GetProperty : public Action {
5764 	public:
5765 		GetProperty();
5766 		virtual ~GetProperty();
5767 
5768 		virtual bool parse( Reader *r, int end, Context *ctx );
5769 		virtual void dump( int indent, Context *ctx );
5770 		virtual size_t calcSize( Context *ctx, int start_at );
5771 		virtual void write( Writer *w, Context *ctx );
5772 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5773 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5774 
5775 		static GetProperty* get( Reader *r, int end, Context *ctx );
5776 		static GetProperty* getByName( const char *name );
5777 
5778 
5779 
5780 	protected:
5781 
5782 			static int id;
5783 
5784 };
5785 
5786 class SetProperty : public Action {
5787 	public:
5788 		SetProperty();
5789 		virtual ~SetProperty();
5790 
5791 		virtual bool parse( Reader *r, int end, Context *ctx );
5792 		virtual void dump( int indent, Context *ctx );
5793 		virtual size_t calcSize( Context *ctx, int start_at );
5794 		virtual void write( Writer *w, Context *ctx );
5795 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5796 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5797 
5798 		static SetProperty* get( Reader *r, int end, Context *ctx );
5799 		static SetProperty* getByName( const char *name );
5800 
5801 
5802 
5803 	protected:
5804 
5805 			static int id;
5806 
5807 };
5808 
5809 class DuplicateSprite : public Action {
5810 	public:
5811 		DuplicateSprite();
5812 		virtual ~DuplicateSprite();
5813 
5814 		virtual bool parse( Reader *r, int end, Context *ctx );
5815 		virtual void dump( int indent, Context *ctx );
5816 		virtual size_t calcSize( Context *ctx, int start_at );
5817 		virtual void write( Writer *w, Context *ctx );
5818 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5819 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5820 
5821 		static DuplicateSprite* get( Reader *r, int end, Context *ctx );
5822 		static DuplicateSprite* getByName( const char *name );
5823 
5824 
5825 
5826 	protected:
5827 
5828 			static int id;
5829 
5830 };
5831 
5832 class RemoveSprite : public Action {
5833 	public:
5834 		RemoveSprite();
5835 		virtual ~RemoveSprite();
5836 
5837 		virtual bool parse( Reader *r, int end, Context *ctx );
5838 		virtual void dump( int indent, Context *ctx );
5839 		virtual size_t calcSize( Context *ctx, int start_at );
5840 		virtual void write( Writer *w, Context *ctx );
5841 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5842 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5843 
5844 		static RemoveSprite* get( Reader *r, int end, Context *ctx );
5845 		static RemoveSprite* getByName( const char *name );
5846 
5847 
5848 
5849 	protected:
5850 
5851 			static int id;
5852 
5853 };
5854 
5855 class Trace : public Action {
5856 	public:
5857 		Trace();
5858 		virtual ~Trace();
5859 
5860 		virtual bool parse( Reader *r, int end, Context *ctx );
5861 		virtual void dump( int indent, Context *ctx );
5862 		virtual size_t calcSize( Context *ctx, int start_at );
5863 		virtual void write( Writer *w, Context *ctx );
5864 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5865 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5866 
5867 		static Trace* get( Reader *r, int end, Context *ctx );
5868 		static Trace* getByName( const char *name );
5869 
5870 
5871 
5872 	protected:
5873 
5874 			static int id;
5875 
5876 };
5877 
5878 class StartDrag : public Action {
5879 	public:
5880 		StartDrag();
5881 		virtual ~StartDrag();
5882 
5883 		virtual bool parse( Reader *r, int end, Context *ctx );
5884 		virtual void dump( int indent, Context *ctx );
5885 		virtual size_t calcSize( Context *ctx, int start_at );
5886 		virtual void write( Writer *w, Context *ctx );
5887 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5888 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5889 
5890 		static StartDrag* get( Reader *r, int end, Context *ctx );
5891 		static StartDrag* getByName( const char *name );
5892 
5893 
5894 
5895 	protected:
5896 
5897 			static int id;
5898 
5899 };
5900 
5901 class StopDrag : public Action {
5902 	public:
5903 		StopDrag();
5904 		virtual ~StopDrag();
5905 
5906 		virtual bool parse( Reader *r, int end, Context *ctx );
5907 		virtual void dump( int indent, Context *ctx );
5908 		virtual size_t calcSize( Context *ctx, int start_at );
5909 		virtual void write( Writer *w, Context *ctx );
5910 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5911 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5912 
5913 		static StopDrag* get( Reader *r, int end, Context *ctx );
5914 		static StopDrag* getByName( const char *name );
5915 
5916 
5917 
5918 	protected:
5919 
5920 			static int id;
5921 
5922 };
5923 
5924 class StringLessThan : public Action {
5925 	public:
5926 		StringLessThan();
5927 		virtual ~StringLessThan();
5928 
5929 		virtual bool parse( Reader *r, int end, Context *ctx );
5930 		virtual void dump( int indent, Context *ctx );
5931 		virtual size_t calcSize( Context *ctx, int start_at );
5932 		virtual void write( Writer *w, Context *ctx );
5933 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5934 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5935 
5936 		static StringLessThan* get( Reader *r, int end, Context *ctx );
5937 		static StringLessThan* getByName( const char *name );
5938 
5939 
5940 
5941 	protected:
5942 
5943 			static int id;
5944 
5945 };
5946 
5947 class Throw : public Action {
5948 	public:
5949 		Throw();
5950 		virtual ~Throw();
5951 
5952 		virtual bool parse( Reader *r, int end, Context *ctx );
5953 		virtual void dump( int indent, Context *ctx );
5954 		virtual size_t calcSize( Context *ctx, int start_at );
5955 		virtual void write( Writer *w, Context *ctx );
5956 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5957 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5958 
5959 		static Throw* get( Reader *r, int end, Context *ctx );
5960 		static Throw* getByName( const char *name );
5961 
5962 
5963 
5964 	protected:
5965 
5966 			static int id;
5967 
5968 };
5969 
5970 class CastObject : public Action {
5971 	public:
5972 		CastObject();
5973 		virtual ~CastObject();
5974 
5975 		virtual bool parse( Reader *r, int end, Context *ctx );
5976 		virtual void dump( int indent, Context *ctx );
5977 		virtual size_t calcSize( Context *ctx, int start_at );
5978 		virtual void write( Writer *w, Context *ctx );
5979 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
5980 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
5981 
5982 		static CastObject* get( Reader *r, int end, Context *ctx );
5983 		static CastObject* getByName( const char *name );
5984 
5985 
5986 
5987 	protected:
5988 
5989 			static int id;
5990 
5991 };
5992 
5993 class Implements : public Action {
5994 	public:
5995 		Implements();
5996 		virtual ~Implements();
5997 
5998 		virtual bool parse( Reader *r, int end, Context *ctx );
5999 		virtual void dump( int indent, Context *ctx );
6000 		virtual size_t calcSize( Context *ctx, int start_at );
6001 		virtual void write( Writer *w, Context *ctx );
6002 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6003 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6004 
6005 		static Implements* get( Reader *r, int end, Context *ctx );
6006 		static Implements* getByName( const char *name );
6007 
6008 
6009 
6010 	protected:
6011 
6012 			static int id;
6013 
6014 };
6015 
6016 class Random : public Action {
6017 	public:
6018 		Random();
6019 		virtual ~Random();
6020 
6021 		virtual bool parse( Reader *r, int end, Context *ctx );
6022 		virtual void dump( int indent, Context *ctx );
6023 		virtual size_t calcSize( Context *ctx, int start_at );
6024 		virtual void write( Writer *w, Context *ctx );
6025 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6026 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6027 
6028 		static Random* get( Reader *r, int end, Context *ctx );
6029 		static Random* getByName( const char *name );
6030 
6031 
6032 
6033 	protected:
6034 
6035 			static int id;
6036 
6037 };
6038 
6039 class MultibyteStringLength : public Action {
6040 	public:
6041 		MultibyteStringLength();
6042 		virtual ~MultibyteStringLength();
6043 
6044 		virtual bool parse( Reader *r, int end, Context *ctx );
6045 		virtual void dump( int indent, Context *ctx );
6046 		virtual size_t calcSize( Context *ctx, int start_at );
6047 		virtual void write( Writer *w, Context *ctx );
6048 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6049 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6050 
6051 		static MultibyteStringLength* get( Reader *r, int end, Context *ctx );
6052 		static MultibyteStringLength* getByName( const char *name );
6053 
6054 
6055 
6056 	protected:
6057 
6058 			static int id;
6059 
6060 };
6061 
6062 class ORD : public Action {
6063 	public:
6064 		ORD();
6065 		virtual ~ORD();
6066 
6067 		virtual bool parse( Reader *r, int end, Context *ctx );
6068 		virtual void dump( int indent, Context *ctx );
6069 		virtual size_t calcSize( Context *ctx, int start_at );
6070 		virtual void write( Writer *w, Context *ctx );
6071 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6072 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6073 
6074 		static ORD* get( Reader *r, int end, Context *ctx );
6075 		static ORD* getByName( const char *name );
6076 
6077 
6078 
6079 	protected:
6080 
6081 			static int id;
6082 
6083 };
6084 
6085 class CHR : public Action {
6086 	public:
6087 		CHR();
6088 		virtual ~CHR();
6089 
6090 		virtual bool parse( Reader *r, int end, Context *ctx );
6091 		virtual void dump( int indent, Context *ctx );
6092 		virtual size_t calcSize( Context *ctx, int start_at );
6093 		virtual void write( Writer *w, Context *ctx );
6094 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6095 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6096 
6097 		static CHR* get( Reader *r, int end, Context *ctx );
6098 		static CHR* getByName( const char *name );
6099 
6100 
6101 
6102 	protected:
6103 
6104 			static int id;
6105 
6106 };
6107 
6108 class GetTimer : public Action {
6109 	public:
6110 		GetTimer();
6111 		virtual ~GetTimer();
6112 
6113 		virtual bool parse( Reader *r, int end, Context *ctx );
6114 		virtual void dump( int indent, Context *ctx );
6115 		virtual size_t calcSize( Context *ctx, int start_at );
6116 		virtual void write( Writer *w, Context *ctx );
6117 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6118 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6119 
6120 		static GetTimer* get( Reader *r, int end, Context *ctx );
6121 		static GetTimer* getByName( const char *name );
6122 
6123 
6124 
6125 	protected:
6126 
6127 			static int id;
6128 
6129 };
6130 
6131 class MultibyteSubString : public Action {
6132 	public:
6133 		MultibyteSubString();
6134 		virtual ~MultibyteSubString();
6135 
6136 		virtual bool parse( Reader *r, int end, Context *ctx );
6137 		virtual void dump( int indent, Context *ctx );
6138 		virtual size_t calcSize( Context *ctx, int start_at );
6139 		virtual void write( Writer *w, Context *ctx );
6140 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6141 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6142 
6143 		static MultibyteSubString* get( Reader *r, int end, Context *ctx );
6144 		static MultibyteSubString* getByName( const char *name );
6145 
6146 
6147 
6148 	protected:
6149 
6150 			static int id;
6151 
6152 };
6153 
6154 class MultibyteORD : public Action {
6155 	public:
6156 		MultibyteORD();
6157 		virtual ~MultibyteORD();
6158 
6159 		virtual bool parse( Reader *r, int end, Context *ctx );
6160 		virtual void dump( int indent, Context *ctx );
6161 		virtual size_t calcSize( Context *ctx, int start_at );
6162 		virtual void write( Writer *w, Context *ctx );
6163 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6164 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6165 
6166 		static MultibyteORD* get( Reader *r, int end, Context *ctx );
6167 		static MultibyteORD* getByName( const char *name );
6168 
6169 
6170 
6171 	protected:
6172 
6173 			static int id;
6174 
6175 };
6176 
6177 class MultibyteCHR : public Action {
6178 	public:
6179 		MultibyteCHR();
6180 		virtual ~MultibyteCHR();
6181 
6182 		virtual bool parse( Reader *r, int end, Context *ctx );
6183 		virtual void dump( int indent, Context *ctx );
6184 		virtual size_t calcSize( Context *ctx, int start_at );
6185 		virtual void write( Writer *w, Context *ctx );
6186 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6187 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6188 
6189 		static MultibyteCHR* get( Reader *r, int end, Context *ctx );
6190 		static MultibyteCHR* getByName( const char *name );
6191 
6192 
6193 
6194 	protected:
6195 
6196 			static int id;
6197 
6198 };
6199 
6200 class Delete : public Action {
6201 	public:
6202 		Delete();
6203 		virtual ~Delete();
6204 
6205 		virtual bool parse( Reader *r, int end, Context *ctx );
6206 		virtual void dump( int indent, Context *ctx );
6207 		virtual size_t calcSize( Context *ctx, int start_at );
6208 		virtual void write( Writer *w, Context *ctx );
6209 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6210 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6211 
6212 		static Delete* get( Reader *r, int end, Context *ctx );
6213 		static Delete* getByName( const char *name );
6214 
6215 
6216 
6217 	protected:
6218 
6219 			static int id;
6220 
6221 };
6222 
6223 class DeleteAll : public Action {
6224 	public:
6225 		DeleteAll();
6226 		virtual ~DeleteAll();
6227 
6228 		virtual bool parse( Reader *r, int end, Context *ctx );
6229 		virtual void dump( int indent, Context *ctx );
6230 		virtual size_t calcSize( Context *ctx, int start_at );
6231 		virtual void write( Writer *w, Context *ctx );
6232 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6233 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6234 
6235 		static DeleteAll* get( Reader *r, int end, Context *ctx );
6236 		static DeleteAll* getByName( const char *name );
6237 
6238 
6239 
6240 	protected:
6241 
6242 			static int id;
6243 
6244 };
6245 
6246 class SetLocalVariable : public Action {
6247 	public:
6248 		SetLocalVariable();
6249 		virtual ~SetLocalVariable();
6250 
6251 		virtual bool parse( Reader *r, int end, Context *ctx );
6252 		virtual void dump( int indent, Context *ctx );
6253 		virtual size_t calcSize( Context *ctx, int start_at );
6254 		virtual void write( Writer *w, Context *ctx );
6255 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6256 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6257 
6258 		static SetLocalVariable* get( Reader *r, int end, Context *ctx );
6259 		static SetLocalVariable* getByName( const char *name );
6260 
6261 
6262 
6263 	protected:
6264 
6265 			static int id;
6266 
6267 };
6268 
6269 class CallFunction : public Action {
6270 	public:
6271 		CallFunction();
6272 		virtual ~CallFunction();
6273 
6274 		virtual bool parse( Reader *r, int end, Context *ctx );
6275 		virtual void dump( int indent, Context *ctx );
6276 		virtual size_t calcSize( Context *ctx, int start_at );
6277 		virtual void write( Writer *w, Context *ctx );
6278 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6279 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6280 
6281 		static CallFunction* get( Reader *r, int end, Context *ctx );
6282 		static CallFunction* getByName( const char *name );
6283 
6284 
6285 
6286 	protected:
6287 
6288 			static int id;
6289 
6290 };
6291 
6292 class Return : public Action {
6293 	public:
6294 		Return();
6295 		virtual ~Return();
6296 
6297 		virtual bool parse( Reader *r, int end, Context *ctx );
6298 		virtual void dump( int indent, Context *ctx );
6299 		virtual size_t calcSize( Context *ctx, int start_at );
6300 		virtual void write( Writer *w, Context *ctx );
6301 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6302 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6303 
6304 		static Return* get( Reader *r, int end, Context *ctx );
6305 		static Return* getByName( const char *name );
6306 
6307 
6308 
6309 	protected:
6310 
6311 			static int id;
6312 
6313 };
6314 
6315 class Modulo : public Action {
6316 	public:
6317 		Modulo();
6318 		virtual ~Modulo();
6319 
6320 		virtual bool parse( Reader *r, int end, Context *ctx );
6321 		virtual void dump( int indent, Context *ctx );
6322 		virtual size_t calcSize( Context *ctx, int start_at );
6323 		virtual void write( Writer *w, Context *ctx );
6324 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6325 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6326 
6327 		static Modulo* get( Reader *r, int end, Context *ctx );
6328 		static Modulo* getByName( const char *name );
6329 
6330 
6331 
6332 	protected:
6333 
6334 			static int id;
6335 
6336 };
6337 
6338 class New : public Action {
6339 	public:
6340 		New();
6341 		virtual ~New();
6342 
6343 		virtual bool parse( Reader *r, int end, Context *ctx );
6344 		virtual void dump( int indent, Context *ctx );
6345 		virtual size_t calcSize( Context *ctx, int start_at );
6346 		virtual void write( Writer *w, Context *ctx );
6347 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6348 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6349 
6350 		static New* get( Reader *r, int end, Context *ctx );
6351 		static New* getByName( const char *name );
6352 
6353 
6354 
6355 	protected:
6356 
6357 			static int id;
6358 
6359 };
6360 
6361 class DeclareLocalVariable : public Action {
6362 	public:
6363 		DeclareLocalVariable();
6364 		virtual ~DeclareLocalVariable();
6365 
6366 		virtual bool parse( Reader *r, int end, Context *ctx );
6367 		virtual void dump( int indent, Context *ctx );
6368 		virtual size_t calcSize( Context *ctx, int start_at );
6369 		virtual void write( Writer *w, Context *ctx );
6370 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6371 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6372 
6373 		static DeclareLocalVariable* get( Reader *r, int end, Context *ctx );
6374 		static DeclareLocalVariable* getByName( const char *name );
6375 
6376 
6377 
6378 	protected:
6379 
6380 			static int id;
6381 
6382 };
6383 
6384 class DeclareArray : public Action {
6385 	public:
6386 		DeclareArray();
6387 		virtual ~DeclareArray();
6388 
6389 		virtual bool parse( Reader *r, int end, Context *ctx );
6390 		virtual void dump( int indent, Context *ctx );
6391 		virtual size_t calcSize( Context *ctx, int start_at );
6392 		virtual void write( Writer *w, Context *ctx );
6393 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6394 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6395 
6396 		static DeclareArray* get( Reader *r, int end, Context *ctx );
6397 		static DeclareArray* getByName( const char *name );
6398 
6399 
6400 
6401 	protected:
6402 
6403 			static int id;
6404 
6405 };
6406 
6407 class DeclareObject : public Action {
6408 	public:
6409 		DeclareObject();
6410 		virtual ~DeclareObject();
6411 
6412 		virtual bool parse( Reader *r, int end, Context *ctx );
6413 		virtual void dump( int indent, Context *ctx );
6414 		virtual size_t calcSize( Context *ctx, int start_at );
6415 		virtual void write( Writer *w, Context *ctx );
6416 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6417 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6418 
6419 		static DeclareObject* get( Reader *r, int end, Context *ctx );
6420 		static DeclareObject* getByName( const char *name );
6421 
6422 
6423 
6424 	protected:
6425 
6426 			static int id;
6427 
6428 };
6429 
6430 class TypeOf : public Action {
6431 	public:
6432 		TypeOf();
6433 		virtual ~TypeOf();
6434 
6435 		virtual bool parse( Reader *r, int end, Context *ctx );
6436 		virtual void dump( int indent, Context *ctx );
6437 		virtual size_t calcSize( Context *ctx, int start_at );
6438 		virtual void write( Writer *w, Context *ctx );
6439 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6440 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6441 
6442 		static TypeOf* get( Reader *r, int end, Context *ctx );
6443 		static TypeOf* getByName( const char *name );
6444 
6445 
6446 
6447 	protected:
6448 
6449 			static int id;
6450 
6451 };
6452 
6453 class GetTarget : public Action {
6454 	public:
6455 		GetTarget();
6456 		virtual ~GetTarget();
6457 
6458 		virtual bool parse( Reader *r, int end, Context *ctx );
6459 		virtual void dump( int indent, Context *ctx );
6460 		virtual size_t calcSize( Context *ctx, int start_at );
6461 		virtual void write( Writer *w, Context *ctx );
6462 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6463 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6464 
6465 		static GetTarget* get( Reader *r, int end, Context *ctx );
6466 		static GetTarget* getByName( const char *name );
6467 
6468 
6469 
6470 	protected:
6471 
6472 			static int id;
6473 
6474 };
6475 
6476 class Enumerate : public Action {
6477 	public:
6478 		Enumerate();
6479 		virtual ~Enumerate();
6480 
6481 		virtual bool parse( Reader *r, int end, Context *ctx );
6482 		virtual void dump( int indent, Context *ctx );
6483 		virtual size_t calcSize( Context *ctx, int start_at );
6484 		virtual void write( Writer *w, Context *ctx );
6485 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6486 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6487 
6488 		static Enumerate* get( Reader *r, int end, Context *ctx );
6489 		static Enumerate* getByName( const char *name );
6490 
6491 
6492 
6493 	protected:
6494 
6495 			static int id;
6496 
6497 };
6498 
6499 class AddTyped : public Action {
6500 	public:
6501 		AddTyped();
6502 		virtual ~AddTyped();
6503 
6504 		virtual bool parse( Reader *r, int end, Context *ctx );
6505 		virtual void dump( int indent, Context *ctx );
6506 		virtual size_t calcSize( Context *ctx, int start_at );
6507 		virtual void write( Writer *w, Context *ctx );
6508 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6509 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6510 
6511 		static AddTyped* get( Reader *r, int end, Context *ctx );
6512 		static AddTyped* getByName( const char *name );
6513 
6514 
6515 
6516 	protected:
6517 
6518 			static int id;
6519 
6520 };
6521 
6522 class LessThanTyped : public Action {
6523 	public:
6524 		LessThanTyped();
6525 		virtual ~LessThanTyped();
6526 
6527 		virtual bool parse( Reader *r, int end, Context *ctx );
6528 		virtual void dump( int indent, Context *ctx );
6529 		virtual size_t calcSize( Context *ctx, int start_at );
6530 		virtual void write( Writer *w, Context *ctx );
6531 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6532 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6533 
6534 		static LessThanTyped* get( Reader *r, int end, Context *ctx );
6535 		static LessThanTyped* getByName( const char *name );
6536 
6537 
6538 
6539 	protected:
6540 
6541 			static int id;
6542 
6543 };
6544 
6545 class EqualTyped : public Action {
6546 	public:
6547 		EqualTyped();
6548 		virtual ~EqualTyped();
6549 
6550 		virtual bool parse( Reader *r, int end, Context *ctx );
6551 		virtual void dump( int indent, Context *ctx );
6552 		virtual size_t calcSize( Context *ctx, int start_at );
6553 		virtual void write( Writer *w, Context *ctx );
6554 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6555 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6556 
6557 		static EqualTyped* get( Reader *r, int end, Context *ctx );
6558 		static EqualTyped* getByName( const char *name );
6559 
6560 
6561 
6562 	protected:
6563 
6564 			static int id;
6565 
6566 };
6567 
6568 class DefineNumber : public Action {
6569 	public:
6570 		DefineNumber();
6571 		virtual ~DefineNumber();
6572 
6573 		virtual bool parse( Reader *r, int end, Context *ctx );
6574 		virtual void dump( int indent, Context *ctx );
6575 		virtual size_t calcSize( Context *ctx, int start_at );
6576 		virtual void write( Writer *w, Context *ctx );
6577 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6578 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6579 
6580 		static DefineNumber* get( Reader *r, int end, Context *ctx );
6581 		static DefineNumber* getByName( const char *name );
6582 
6583 
6584 
6585 	protected:
6586 
6587 			static int id;
6588 
6589 };
6590 
6591 class DefineString : public Action {
6592 	public:
6593 		DefineString();
6594 		virtual ~DefineString();
6595 
6596 		virtual bool parse( Reader *r, int end, Context *ctx );
6597 		virtual void dump( int indent, Context *ctx );
6598 		virtual size_t calcSize( Context *ctx, int start_at );
6599 		virtual void write( Writer *w, Context *ctx );
6600 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6601 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6602 
6603 		static DefineString* get( Reader *r, int end, Context *ctx );
6604 		static DefineString* getByName( const char *name );
6605 
6606 
6607 
6608 	protected:
6609 
6610 			static int id;
6611 
6612 };
6613 
6614 class Duplicate : public Action {
6615 	public:
6616 		Duplicate();
6617 		virtual ~Duplicate();
6618 
6619 		virtual bool parse( Reader *r, int end, Context *ctx );
6620 		virtual void dump( int indent, Context *ctx );
6621 		virtual size_t calcSize( Context *ctx, int start_at );
6622 		virtual void write( Writer *w, Context *ctx );
6623 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6624 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6625 
6626 		static Duplicate* get( Reader *r, int end, Context *ctx );
6627 		static Duplicate* getByName( const char *name );
6628 
6629 
6630 
6631 	protected:
6632 
6633 			static int id;
6634 
6635 };
6636 
6637 class Swap : public Action {
6638 	public:
6639 		Swap();
6640 		virtual ~Swap();
6641 
6642 		virtual bool parse( Reader *r, int end, Context *ctx );
6643 		virtual void dump( int indent, Context *ctx );
6644 		virtual size_t calcSize( Context *ctx, int start_at );
6645 		virtual void write( Writer *w, Context *ctx );
6646 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6647 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6648 
6649 		static Swap* get( Reader *r, int end, Context *ctx );
6650 		static Swap* getByName( const char *name );
6651 
6652 
6653 
6654 	protected:
6655 
6656 			static int id;
6657 
6658 };
6659 
6660 class GetMember : public Action {
6661 	public:
6662 		GetMember();
6663 		virtual ~GetMember();
6664 
6665 		virtual bool parse( Reader *r, int end, Context *ctx );
6666 		virtual void dump( int indent, Context *ctx );
6667 		virtual size_t calcSize( Context *ctx, int start_at );
6668 		virtual void write( Writer *w, Context *ctx );
6669 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6670 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6671 
6672 		static GetMember* get( Reader *r, int end, Context *ctx );
6673 		static GetMember* getByName( const char *name );
6674 
6675 
6676 
6677 	protected:
6678 
6679 			static int id;
6680 
6681 };
6682 
6683 class SetMember : public Action {
6684 	public:
6685 		SetMember();
6686 		virtual ~SetMember();
6687 
6688 		virtual bool parse( Reader *r, int end, Context *ctx );
6689 		virtual void dump( int indent, Context *ctx );
6690 		virtual size_t calcSize( Context *ctx, int start_at );
6691 		virtual void write( Writer *w, Context *ctx );
6692 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6693 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6694 
6695 		static SetMember* get( Reader *r, int end, Context *ctx );
6696 		static SetMember* getByName( const char *name );
6697 
6698 
6699 
6700 	protected:
6701 
6702 			static int id;
6703 
6704 };
6705 
6706 class Increment : public Action {
6707 	public:
6708 		Increment();
6709 		virtual ~Increment();
6710 
6711 		virtual bool parse( Reader *r, int end, Context *ctx );
6712 		virtual void dump( int indent, Context *ctx );
6713 		virtual size_t calcSize( Context *ctx, int start_at );
6714 		virtual void write( Writer *w, Context *ctx );
6715 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6716 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6717 
6718 		static Increment* get( Reader *r, int end, Context *ctx );
6719 		static Increment* getByName( const char *name );
6720 
6721 
6722 
6723 	protected:
6724 
6725 			static int id;
6726 
6727 };
6728 
6729 class Decrement : public Action {
6730 	public:
6731 		Decrement();
6732 		virtual ~Decrement();
6733 
6734 		virtual bool parse( Reader *r, int end, Context *ctx );
6735 		virtual void dump( int indent, Context *ctx );
6736 		virtual size_t calcSize( Context *ctx, int start_at );
6737 		virtual void write( Writer *w, Context *ctx );
6738 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6739 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6740 
6741 		static Decrement* get( Reader *r, int end, Context *ctx );
6742 		static Decrement* getByName( const char *name );
6743 
6744 
6745 
6746 	protected:
6747 
6748 			static int id;
6749 
6750 };
6751 
6752 class CallMethod : public Action {
6753 	public:
6754 		CallMethod();
6755 		virtual ~CallMethod();
6756 
6757 		virtual bool parse( Reader *r, int end, Context *ctx );
6758 		virtual void dump( int indent, Context *ctx );
6759 		virtual size_t calcSize( Context *ctx, int start_at );
6760 		virtual void write( Writer *w, Context *ctx );
6761 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6762 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6763 
6764 		static CallMethod* get( Reader *r, int end, Context *ctx );
6765 		static CallMethod* getByName( const char *name );
6766 
6767 
6768 
6769 	protected:
6770 
6771 			static int id;
6772 
6773 };
6774 
6775 class NewMethod : public Action {
6776 	public:
6777 		NewMethod();
6778 		virtual ~NewMethod();
6779 
6780 		virtual bool parse( Reader *r, int end, Context *ctx );
6781 		virtual void dump( int indent, Context *ctx );
6782 		virtual size_t calcSize( Context *ctx, int start_at );
6783 		virtual void write( Writer *w, Context *ctx );
6784 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6785 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6786 
6787 		static NewMethod* get( Reader *r, int end, Context *ctx );
6788 		static NewMethod* getByName( const char *name );
6789 
6790 
6791 
6792 	protected:
6793 
6794 			static int id;
6795 
6796 };
6797 
6798 class InstanceOf : public Action {
6799 	public:
6800 		InstanceOf();
6801 		virtual ~InstanceOf();
6802 
6803 		virtual bool parse( Reader *r, int end, Context *ctx );
6804 		virtual void dump( int indent, Context *ctx );
6805 		virtual size_t calcSize( Context *ctx, int start_at );
6806 		virtual void write( Writer *w, Context *ctx );
6807 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6808 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6809 
6810 		static InstanceOf* get( Reader *r, int end, Context *ctx );
6811 		static InstanceOf* getByName( const char *name );
6812 
6813 
6814 
6815 	protected:
6816 
6817 			static int id;
6818 
6819 };
6820 
6821 class EnumerateObject : public Action {
6822 	public:
6823 		EnumerateObject();
6824 		virtual ~EnumerateObject();
6825 
6826 		virtual bool parse( Reader *r, int end, Context *ctx );
6827 		virtual void dump( int indent, Context *ctx );
6828 		virtual size_t calcSize( Context *ctx, int start_at );
6829 		virtual void write( Writer *w, Context *ctx );
6830 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6831 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6832 
6833 		static EnumerateObject* get( Reader *r, int end, Context *ctx );
6834 		static EnumerateObject* getByName( const char *name );
6835 
6836 
6837 
6838 	protected:
6839 
6840 			static int id;
6841 
6842 };
6843 
6844 class AND : public Action {
6845 	public:
6846 		AND();
6847 		virtual ~AND();
6848 
6849 		virtual bool parse( Reader *r, int end, Context *ctx );
6850 		virtual void dump( int indent, Context *ctx );
6851 		virtual size_t calcSize( Context *ctx, int start_at );
6852 		virtual void write( Writer *w, Context *ctx );
6853 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6854 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6855 
6856 		static AND* get( Reader *r, int end, Context *ctx );
6857 		static AND* getByName( const char *name );
6858 
6859 
6860 
6861 	protected:
6862 
6863 			static int id;
6864 
6865 };
6866 
6867 class OR : public Action {
6868 	public:
6869 		OR();
6870 		virtual ~OR();
6871 
6872 		virtual bool parse( Reader *r, int end, Context *ctx );
6873 		virtual void dump( int indent, Context *ctx );
6874 		virtual size_t calcSize( Context *ctx, int start_at );
6875 		virtual void write( Writer *w, Context *ctx );
6876 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6877 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6878 
6879 		static OR* get( Reader *r, int end, Context *ctx );
6880 		static OR* getByName( const char *name );
6881 
6882 
6883 
6884 	protected:
6885 
6886 			static int id;
6887 
6888 };
6889 
6890 class XOR : public Action {
6891 	public:
6892 		XOR();
6893 		virtual ~XOR();
6894 
6895 		virtual bool parse( Reader *r, int end, Context *ctx );
6896 		virtual void dump( int indent, Context *ctx );
6897 		virtual size_t calcSize( Context *ctx, int start_at );
6898 		virtual void write( Writer *w, Context *ctx );
6899 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6900 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6901 
6902 		static XOR* get( Reader *r, int end, Context *ctx );
6903 		static XOR* getByName( const char *name );
6904 
6905 
6906 
6907 	protected:
6908 
6909 			static int id;
6910 
6911 };
6912 
6913 class ShiftLeft : public Action {
6914 	public:
6915 		ShiftLeft();
6916 		virtual ~ShiftLeft();
6917 
6918 		virtual bool parse( Reader *r, int end, Context *ctx );
6919 		virtual void dump( int indent, Context *ctx );
6920 		virtual size_t calcSize( Context *ctx, int start_at );
6921 		virtual void write( Writer *w, Context *ctx );
6922 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6923 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6924 
6925 		static ShiftLeft* get( Reader *r, int end, Context *ctx );
6926 		static ShiftLeft* getByName( const char *name );
6927 
6928 
6929 
6930 	protected:
6931 
6932 			static int id;
6933 
6934 };
6935 
6936 class ShiftRight : public Action {
6937 	public:
6938 		ShiftRight();
6939 		virtual ~ShiftRight();
6940 
6941 		virtual bool parse( Reader *r, int end, Context *ctx );
6942 		virtual void dump( int indent, Context *ctx );
6943 		virtual size_t calcSize( Context *ctx, int start_at );
6944 		virtual void write( Writer *w, Context *ctx );
6945 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6946 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6947 
6948 		static ShiftRight* get( Reader *r, int end, Context *ctx );
6949 		static ShiftRight* getByName( const char *name );
6950 
6951 
6952 
6953 	protected:
6954 
6955 			static int id;
6956 
6957 };
6958 
6959 class ShiftRightUnsigned : public Action {
6960 	public:
6961 		ShiftRightUnsigned();
6962 		virtual ~ShiftRightUnsigned();
6963 
6964 		virtual bool parse( Reader *r, int end, Context *ctx );
6965 		virtual void dump( int indent, Context *ctx );
6966 		virtual size_t calcSize( Context *ctx, int start_at );
6967 		virtual void write( Writer *w, Context *ctx );
6968 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6969 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6970 
6971 		static ShiftRightUnsigned* get( Reader *r, int end, Context *ctx );
6972 		static ShiftRightUnsigned* getByName( const char *name );
6973 
6974 
6975 
6976 	protected:
6977 
6978 			static int id;
6979 
6980 };
6981 
6982 class StrictEqual : public Action {
6983 	public:
6984 		StrictEqual();
6985 		virtual ~StrictEqual();
6986 
6987 		virtual bool parse( Reader *r, int end, Context *ctx );
6988 		virtual void dump( int indent, Context *ctx );
6989 		virtual size_t calcSize( Context *ctx, int start_at );
6990 		virtual void write( Writer *w, Context *ctx );
6991 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
6992 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
6993 
6994 		static StrictEqual* get( Reader *r, int end, Context *ctx );
6995 		static StrictEqual* getByName( const char *name );
6996 
6997 
6998 
6999 	protected:
7000 
7001 			static int id;
7002 
7003 };
7004 
7005 class GreaterThanTyped : public Action {
7006 	public:
7007 		GreaterThanTyped();
7008 		virtual ~GreaterThanTyped();
7009 
7010 		virtual bool parse( Reader *r, int end, Context *ctx );
7011 		virtual void dump( int indent, Context *ctx );
7012 		virtual size_t calcSize( Context *ctx, int start_at );
7013 		virtual void write( Writer *w, Context *ctx );
7014 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7015 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7016 
7017 		static GreaterThanTyped* get( Reader *r, int end, Context *ctx );
7018 		static GreaterThanTyped* getByName( const char *name );
7019 
7020 
7021 
7022 	protected:
7023 
7024 			static int id;
7025 
7026 };
7027 
7028 class StringGreaterThan : public Action {
7029 	public:
7030 		StringGreaterThan();
7031 		virtual ~StringGreaterThan();
7032 
7033 		virtual bool parse( Reader *r, int end, Context *ctx );
7034 		virtual void dump( int indent, Context *ctx );
7035 		virtual size_t calcSize( Context *ctx, int start_at );
7036 		virtual void write( Writer *w, Context *ctx );
7037 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7038 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7039 
7040 		static StringGreaterThan* get( Reader *r, int end, Context *ctx );
7041 		static StringGreaterThan* getByName( const char *name );
7042 
7043 
7044 
7045 	protected:
7046 
7047 			static int id;
7048 
7049 };
7050 
7051 class Extends : public Action {
7052 	public:
7053 		Extends();
7054 		virtual ~Extends();
7055 
7056 		virtual bool parse( Reader *r, int end, Context *ctx );
7057 		virtual void dump( int indent, Context *ctx );
7058 		virtual size_t calcSize( Context *ctx, int start_at );
7059 		virtual void write( Writer *w, Context *ctx );
7060 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7061 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7062 
7063 		static Extends* get( Reader *r, int end, Context *ctx );
7064 		static Extends* getByName( const char *name );
7065 
7066 
7067 
7068 	protected:
7069 
7070 			static int id;
7071 
7072 };
7073 
7074 class GotoFrame : public Action {
7075 	public:
7076 		GotoFrame();
7077 		virtual ~GotoFrame();
7078 
7079 		virtual bool parse( Reader *r, int end, Context *ctx );
7080 		virtual void dump( int indent, Context *ctx );
7081 		virtual size_t calcSize( Context *ctx, int start_at );
7082 		virtual void write( Writer *w, Context *ctx );
7083 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7084 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7085 
7086 		static GotoFrame* get( Reader *r, int end, Context *ctx );
7087 		static GotoFrame* getByName( const char *name );
7088 
7089 		std::uint16_t getframe();
7090 			void setframe( std::uint16_t );
7091 
7092 
7093 	protected:
7094 		std::uint16_t frame; // word
7095 
7096 			static int id;
7097 
7098 };
7099 
7100 class GetURL : public Action {
7101 	public:
7102 		GetURL();
7103 		virtual ~GetURL();
7104 
7105 		virtual bool parse( Reader *r, int end, Context *ctx );
7106 		virtual void dump( int indent, Context *ctx );
7107 		virtual size_t calcSize( Context *ctx, int start_at );
7108 		virtual void write( Writer *w, Context *ctx );
7109 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7110 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7111 
7112 		static GetURL* get( Reader *r, int end, Context *ctx );
7113 		static GetURL* getByName( const char *name );
7114 
7115 		char * geturl();
7116 			void seturl( char * );
7117 	char * gettarget();
7118 			void settarget( char * );
7119 
7120 
7121 	protected:
7122 		char * url; // string
7123 char * target; // string
7124 
7125 			static int id;
7126 
7127 };
7128 
7129 class StoreRegister : public Action {
7130 	public:
7131 		StoreRegister();
7132 		virtual ~StoreRegister();
7133 
7134 		virtual bool parse( Reader *r, int end, Context *ctx );
7135 		virtual void dump( int indent, Context *ctx );
7136 		virtual size_t calcSize( Context *ctx, int start_at );
7137 		virtual void write( Writer *w, Context *ctx );
7138 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7139 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7140 
7141 		static StoreRegister* get( Reader *r, int end, Context *ctx );
7142 		static StoreRegister* getByName( const char *name );
7143 
7144 		std::uint8_t getreg();
7145 			void setreg( std::uint8_t );
7146 
7147 
7148 	protected:
7149 		std::uint8_t reg; // byte
7150 
7151 			static int id;
7152 
7153 };
7154 
7155 class Dictionary : public Action {
7156 	public:
7157 		Dictionary();
7158 		virtual ~Dictionary();
7159 
7160 		virtual bool parse( Reader *r, int end, Context *ctx );
7161 		virtual void dump( int indent, Context *ctx );
7162 		virtual size_t calcSize( Context *ctx, int start_at );
7163 		virtual void write( Writer *w, Context *ctx );
7164 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7165 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7166 
7167 		static Dictionary* get( Reader *r, int end, Context *ctx );
7168 		static Dictionary* getByName( const char *name );
7169 
7170 		std::uint16_t getlength();
7171 			void setlength( std::uint16_t );
7172 	List<String> *getstrings();
7173 
7174 
7175 	protected:
7176 		std::uint16_t length; // word
7177 List<String> strings; // list
7178 
7179 			static int id;
7180 
7181 };
7182 
7183 class WaitForFrame : public Action {
7184 	public:
7185 		WaitForFrame();
7186 		virtual ~WaitForFrame();
7187 
7188 		virtual bool parse( Reader *r, int end, Context *ctx );
7189 		virtual void dump( int indent, Context *ctx );
7190 		virtual size_t calcSize( Context *ctx, int start_at );
7191 		virtual void write( Writer *w, Context *ctx );
7192 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7193 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7194 
7195 		static WaitForFrame* get( Reader *r, int end, Context *ctx );
7196 		static WaitForFrame* getByName( const char *name );
7197 
7198 		std::uint16_t getframe();
7199 			void setframe( std::uint16_t );
7200 	std::uint8_t getskip();
7201 			void setskip( std::uint8_t );
7202 
7203 
7204 	protected:
7205 		std::uint16_t frame; // word
7206 std::uint8_t skip; // byte
7207 
7208 			static int id;
7209 
7210 };
7211 
7212 class SetTarget : public Action {
7213 	public:
7214 		SetTarget();
7215 		virtual ~SetTarget();
7216 
7217 		virtual bool parse( Reader *r, int end, Context *ctx );
7218 		virtual void dump( int indent, Context *ctx );
7219 		virtual size_t calcSize( Context *ctx, int start_at );
7220 		virtual void write( Writer *w, Context *ctx );
7221 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7222 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7223 
7224 		static SetTarget* get( Reader *r, int end, Context *ctx );
7225 		static SetTarget* getByName( const char *name );
7226 
7227 		char * getlabel();
7228 			void setlabel( char * );
7229 
7230 
7231 	protected:
7232 		char * label; // string
7233 
7234 			static int id;
7235 
7236 };
7237 
7238 class GotoLabel : public Action {
7239 	public:
7240 		GotoLabel();
7241 		virtual ~GotoLabel();
7242 
7243 		virtual bool parse( Reader *r, int end, Context *ctx );
7244 		virtual void dump( int indent, Context *ctx );
7245 		virtual size_t calcSize( Context *ctx, int start_at );
7246 		virtual void write( Writer *w, Context *ctx );
7247 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7248 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7249 
7250 		static GotoLabel* get( Reader *r, int end, Context *ctx );
7251 		static GotoLabel* getByName( const char *name );
7252 
7253 		char * getlabel();
7254 			void setlabel( char * );
7255 
7256 
7257 	protected:
7258 		char * label; // string
7259 
7260 			static int id;
7261 
7262 };
7263 
7264 class WaitForFrameDynamic : public Action {
7265 	public:
7266 		WaitForFrameDynamic();
7267 		virtual ~WaitForFrameDynamic();
7268 
7269 		virtual bool parse( Reader *r, int end, Context *ctx );
7270 		virtual void dump( int indent, Context *ctx );
7271 		virtual size_t calcSize( Context *ctx, int start_at );
7272 		virtual void write( Writer *w, Context *ctx );
7273 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7274 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7275 
7276 		static WaitForFrameDynamic* get( Reader *r, int end, Context *ctx );
7277 		static WaitForFrameDynamic* getByName( const char *name );
7278 
7279 		std::uint16_t getframe();
7280 			void setframe( std::uint16_t );
7281 	std::uint8_t getskip();
7282 			void setskip( std::uint8_t );
7283 
7284 
7285 	protected:
7286 		std::uint16_t frame; // word
7287 std::uint8_t skip; // byte
7288 
7289 			static int id;
7290 
7291 };
7292 
7293 class DeclareFunction2 : public Action {
7294 	public:
7295 		DeclareFunction2();
7296 		virtual ~DeclareFunction2();
7297 
7298 		virtual bool parse( Reader *r, int end, Context *ctx );
7299 		virtual void dump( int indent, Context *ctx );
7300 		virtual size_t calcSize( Context *ctx, int start_at );
7301 		virtual void write( Writer *w, Context *ctx );
7302 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7303 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7304 
7305 		static DeclareFunction2* get( Reader *r, int end, Context *ctx );
7306 		static DeclareFunction2* getByName( const char *name );
7307 
7308 		char * getname();
7309 			void setname( char * );
7310 	std::uint16_t getargc();
7311 			void setargc( std::uint16_t );
7312 	std::uint8_t getregc();
7313 			void setregc( std::uint8_t );
7314 	bool getpreloadParent();
7315 			void setpreloadParent( bool );
7316 	bool getpreloadRoot();
7317 			void setpreloadRoot( bool );
7318 	bool getsuppressSuper();
7319 			void setsuppressSuper( bool );
7320 	bool getpreloadSuper();
7321 			void setpreloadSuper( bool );
7322 	bool getsuppressArguments();
7323 			void setsuppressArguments( bool );
7324 	bool getpreloadArguments();
7325 			void setpreloadArguments( bool );
7326 	bool getsuppressThis();
7327 			void setsuppressThis( bool );
7328 	bool getpreloadThis();
7329 			void setpreloadThis( bool );
7330 	std::int32_t getreserved();
7331 			void setreserved( std::int32_t );
7332 	bool getpreloadGlobal();
7333 			void setpreloadGlobal( bool );
7334 	List<Parameter> *getargs();
7335 	std::uint16_t getlength();
7336 			void setlength( std::uint16_t );
7337 	List<Action> *getactions();
7338 
7339 
7340 	protected:
7341 		char * name; // string
7342 std::uint16_t argc; // word
7343 std::uint8_t regc; // byte
7344 bool preloadParent; // bit
7345 bool preloadRoot; // bit
7346 bool suppressSuper; // bit
7347 bool preloadSuper; // bit
7348 bool suppressArguments; // bit
7349 bool preloadArguments; // bit
7350 bool suppressThis; // bit
7351 bool preloadThis; // bit
7352 std::int32_t reserved; // integer
7353 bool preloadGlobal; // bit
7354 List<Parameter> args; // list
7355 std::uint16_t length; // word
7356 List<Action> actions; // list
7357 
7358 			static int id;
7359 
7360 };
7361 
7362 class Try : public Action {
7363 	public:
7364 		Try();
7365 		virtual ~Try();
7366 
7367 		virtual bool parse( Reader *r, int end, Context *ctx );
7368 		virtual void dump( int indent, Context *ctx );
7369 		virtual size_t calcSize( Context *ctx, int start_at );
7370 		virtual void write( Writer *w, Context *ctx );
7371 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7372 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7373 
7374 		static Try* get( Reader *r, int end, Context *ctx );
7375 		static Try* getByName( const char *name );
7376 
7377 		std::int32_t getreserved();
7378 			void setreserved( std::int32_t );
7379 	bool getcatchInRegister();
7380 			void setcatchInRegister( bool );
7381 	bool getdoFinally();
7382 			void setdoFinally( bool );
7383 	bool getdoCatch();
7384 			void setdoCatch( bool );
7385 	std::uint16_t gettrySize();
7386 			void settrySize( std::uint16_t );
7387 	std::uint16_t getcatchSize();
7388 			void setcatchSize( std::uint16_t );
7389 	std::uint16_t getfinallySize();
7390 			void setfinallySize( std::uint16_t );
7391 	std::uint8_t getreg();
7392 			void setreg( std::uint8_t );
7393 
7394 
7395 	protected:
7396 		std::int32_t reserved; // integer
7397 bool catchInRegister; // bit
7398 bool doFinally; // bit
7399 bool doCatch; // bit
7400 std::uint16_t trySize; // word
7401 std::uint16_t catchSize; // word
7402 std::uint16_t finallySize; // word
7403 std::uint8_t reg; // byte
7404 
7405 			static int id;
7406 
7407 };
7408 
7409 class With : public Action {
7410 	public:
7411 		With();
7412 		virtual ~With();
7413 
7414 		virtual bool parse( Reader *r, int end, Context *ctx );
7415 		virtual void dump( int indent, Context *ctx );
7416 		virtual size_t calcSize( Context *ctx, int start_at );
7417 		virtual void write( Writer *w, Context *ctx );
7418 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7419 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7420 
7421 		static With* get( Reader *r, int end, Context *ctx );
7422 		static With* getByName( const char *name );
7423 
7424 		std::uint16_t getsize();
7425 			void setsize( std::uint16_t );
7426 
7427 
7428 	protected:
7429 		std::uint16_t size; // word
7430 
7431 			static int id;
7432 
7433 };
7434 
7435 class PushData : public Action {
7436 	public:
7437 		PushData();
7438 		virtual ~PushData();
7439 
7440 		virtual bool parse( Reader *r, int end, Context *ctx );
7441 		virtual void dump( int indent, Context *ctx );
7442 		virtual size_t calcSize( Context *ctx, int start_at );
7443 		virtual void write( Writer *w, Context *ctx );
7444 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7445 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7446 
7447 		static PushData* get( Reader *r, int end, Context *ctx );
7448 		static PushData* getByName( const char *name );
7449 
7450 		List<StackItem> *getitems();
7451 
7452 
7453 	protected:
7454 		List<StackItem> items; // list
7455 
7456 			static int id;
7457 
7458 };
7459 
7460 class GetURL2 : public Action {
7461 	public:
7462 		GetURL2();
7463 		virtual ~GetURL2();
7464 
7465 		virtual bool parse( Reader *r, int end, Context *ctx );
7466 		virtual void dump( int indent, Context *ctx );
7467 		virtual size_t calcSize( Context *ctx, int start_at );
7468 		virtual void write( Writer *w, Context *ctx );
7469 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7470 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7471 
7472 		static GetURL2* get( Reader *r, int end, Context *ctx );
7473 		static GetURL2* getByName( const char *name );
7474 
7475 		std::uint8_t getmethod();
7476 			void setmethod( std::uint8_t );
7477 
7478 
7479 	protected:
7480 		std::uint8_t method; // byte
7481 
7482 			static int id;
7483 
7484 };
7485 
7486 class DeclareFunction : public Action {
7487 	public:
7488 		DeclareFunction();
7489 		virtual ~DeclareFunction();
7490 
7491 		virtual bool parse( Reader *r, int end, Context *ctx );
7492 		virtual void dump( int indent, Context *ctx );
7493 		virtual size_t calcSize( Context *ctx, int start_at );
7494 		virtual void write( Writer *w, Context *ctx );
7495 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7496 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7497 
7498 		static DeclareFunction* get( Reader *r, int end, Context *ctx );
7499 		static DeclareFunction* getByName( const char *name );
7500 
7501 		char * getname();
7502 			void setname( char * );
7503 	std::uint16_t getargc();
7504 			void setargc( std::uint16_t );
7505 	List<String> *getargs();
7506 	std::uint16_t getlength();
7507 			void setlength( std::uint16_t );
7508 
7509 
7510 	protected:
7511 		char * name; // string
7512 std::uint16_t argc; // word
7513 List<String> args; // list
7514 std::uint16_t length; // word
7515 
7516 			static int id;
7517 
7518 };
7519 
7520 class BranchAlways : public Action {
7521 	public:
7522 		BranchAlways();
7523 		virtual ~BranchAlways();
7524 
7525 		virtual bool parse( Reader *r, int end, Context *ctx );
7526 		virtual void dump( int indent, Context *ctx );
7527 		virtual size_t calcSize( Context *ctx, int start_at );
7528 		virtual void write( Writer *w, Context *ctx );
7529 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7530 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7531 
7532 		static BranchAlways* get( Reader *r, int end, Context *ctx );
7533 		static BranchAlways* getByName( const char *name );
7534 
7535 		std::uint16_t getbyteOffset();
7536 			void setbyteOffset( std::uint16_t );
7537 
7538 
7539 	protected:
7540 		std::uint16_t byteOffset; // word
7541 
7542 			static int id;
7543 
7544 };
7545 
7546 class BranchIfTrue : public Action {
7547 	public:
7548 		BranchIfTrue();
7549 		virtual ~BranchIfTrue();
7550 
7551 		virtual bool parse( Reader *r, int end, Context *ctx );
7552 		virtual void dump( int indent, Context *ctx );
7553 		virtual size_t calcSize( Context *ctx, int start_at );
7554 		virtual void write( Writer *w, Context *ctx );
7555 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7556 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7557 
7558 		static BranchIfTrue* get( Reader *r, int end, Context *ctx );
7559 		static BranchIfTrue* getByName( const char *name );
7560 
7561 		std::uint16_t getbyteOffset();
7562 			void setbyteOffset( std::uint16_t );
7563 
7564 
7565 	protected:
7566 		std::uint16_t byteOffset; // word
7567 
7568 			static int id;
7569 
7570 };
7571 
7572 class CallFrame : public Action {
7573 	public:
7574 		CallFrame();
7575 		virtual ~CallFrame();
7576 
7577 		virtual bool parse( Reader *r, int end, Context *ctx );
7578 		virtual void dump( int indent, Context *ctx );
7579 		virtual size_t calcSize( Context *ctx, int start_at );
7580 		virtual void write( Writer *w, Context *ctx );
7581 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7582 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7583 
7584 		static CallFrame* get( Reader *r, int end, Context *ctx );
7585 		static CallFrame* getByName( const char *name );
7586 
7587 
7588 
7589 	protected:
7590 
7591 			static int id;
7592 
7593 };
7594 
7595 class GotoExpression : public Action {
7596 	public:
7597 		GotoExpression();
7598 		virtual ~GotoExpression();
7599 
7600 		virtual bool parse( Reader *r, int end, Context *ctx );
7601 		virtual void dump( int indent, Context *ctx );
7602 		virtual size_t calcSize( Context *ctx, int start_at );
7603 		virtual void write( Writer *w, Context *ctx );
7604 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7605 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7606 
7607 		static GotoExpression* get( Reader *r, int end, Context *ctx );
7608 		static GotoExpression* getByName( const char *name );
7609 
7610 		std::uint8_t getplay();
7611 			void setplay( std::uint8_t );
7612 
7613 
7614 	protected:
7615 		std::uint8_t play; // byte
7616 
7617 			static int id;
7618 
7619 };
7620 
7621 class PrivateNamespace : public NamespaceConstant {
7622 	public:
7623 		PrivateNamespace();
7624 		virtual ~PrivateNamespace();
7625 
7626 		virtual bool parse( Reader *r, int end, Context *ctx );
7627 		virtual void dump( int indent, Context *ctx );
7628 		virtual size_t calcSize( Context *ctx, int start_at );
7629 		virtual void write( Writer *w, Context *ctx );
7630 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7631 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7632 
7633 		static PrivateNamespace* get( Reader *r, int end, Context *ctx );
7634 		static PrivateNamespace* getByName( const char *name );
7635 
7636 		std::uint32_t getindex();
7637 			void setindex( std::uint32_t );
7638 
7639 
7640 	protected:
7641 		std::uint32_t index; // u30
7642 
7643 			static int id;
7644 
7645 };
7646 
7647 class Namespace : public NamespaceConstant {
7648 	public:
7649 		Namespace();
7650 		virtual ~Namespace();
7651 
7652 		virtual bool parse( Reader *r, int end, Context *ctx );
7653 		virtual void dump( int indent, Context *ctx );
7654 		virtual size_t calcSize( Context *ctx, int start_at );
7655 		virtual void write( Writer *w, Context *ctx );
7656 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7657 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7658 
7659 		static Namespace* get( Reader *r, int end, Context *ctx );
7660 		static Namespace* getByName( const char *name );
7661 
7662 		std::uint32_t getindex();
7663 			void setindex( std::uint32_t );
7664 
7665 
7666 	protected:
7667 		std::uint32_t index; // u30
7668 
7669 			static int id;
7670 
7671 };
7672 
7673 class PackageNamespace : public NamespaceConstant {
7674 	public:
7675 		PackageNamespace();
7676 		virtual ~PackageNamespace();
7677 
7678 		virtual bool parse( Reader *r, int end, Context *ctx );
7679 		virtual void dump( int indent, Context *ctx );
7680 		virtual size_t calcSize( Context *ctx, int start_at );
7681 		virtual void write( Writer *w, Context *ctx );
7682 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7683 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7684 
7685 		static PackageNamespace* get( Reader *r, int end, Context *ctx );
7686 		static PackageNamespace* getByName( const char *name );
7687 
7688 		std::uint32_t getindex();
7689 			void setindex( std::uint32_t );
7690 
7691 
7692 	protected:
7693 		std::uint32_t index; // u30
7694 
7695 			static int id;
7696 
7697 };
7698 
7699 class PackageInternalNamespace : public NamespaceConstant {
7700 	public:
7701 		PackageInternalNamespace();
7702 		virtual ~PackageInternalNamespace();
7703 
7704 		virtual bool parse( Reader *r, int end, Context *ctx );
7705 		virtual void dump( int indent, Context *ctx );
7706 		virtual size_t calcSize( Context *ctx, int start_at );
7707 		virtual void write( Writer *w, Context *ctx );
7708 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7709 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7710 
7711 		static PackageInternalNamespace* get( Reader *r, int end, Context *ctx );
7712 		static PackageInternalNamespace* getByName( const char *name );
7713 
7714 		std::uint32_t getindex();
7715 			void setindex( std::uint32_t );
7716 
7717 
7718 	protected:
7719 		std::uint32_t index; // u30
7720 
7721 			static int id;
7722 
7723 };
7724 
7725 class ProtectedNamespace : public NamespaceConstant {
7726 	public:
7727 		ProtectedNamespace();
7728 		virtual ~ProtectedNamespace();
7729 
7730 		virtual bool parse( Reader *r, int end, Context *ctx );
7731 		virtual void dump( int indent, Context *ctx );
7732 		virtual size_t calcSize( Context *ctx, int start_at );
7733 		virtual void write( Writer *w, Context *ctx );
7734 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7735 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7736 
7737 		static ProtectedNamespace* get( Reader *r, int end, Context *ctx );
7738 		static ProtectedNamespace* getByName( const char *name );
7739 
7740 		std::uint32_t getindex();
7741 			void setindex( std::uint32_t );
7742 
7743 
7744 	protected:
7745 		std::uint32_t index; // u30
7746 
7747 			static int id;
7748 
7749 };
7750 
7751 class ExplicitNamespace : public NamespaceConstant {
7752 	public:
7753 		ExplicitNamespace();
7754 		virtual ~ExplicitNamespace();
7755 
7756 		virtual bool parse( Reader *r, int end, Context *ctx );
7757 		virtual void dump( int indent, Context *ctx );
7758 		virtual size_t calcSize( Context *ctx, int start_at );
7759 		virtual void write( Writer *w, Context *ctx );
7760 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7761 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7762 
7763 		static ExplicitNamespace* get( Reader *r, int end, Context *ctx );
7764 		static ExplicitNamespace* getByName( const char *name );
7765 
7766 		std::uint32_t getindex();
7767 			void setindex( std::uint32_t );
7768 
7769 
7770 	protected:
7771 		std::uint32_t index; // u30
7772 
7773 			static int id;
7774 
7775 };
7776 
7777 class MultinameLNamespace : public NamespaceConstant {
7778 	public:
7779 		MultinameLNamespace();
7780 		virtual ~MultinameLNamespace();
7781 
7782 		virtual bool parse( Reader *r, int end, Context *ctx );
7783 		virtual void dump( int indent, Context *ctx );
7784 		virtual size_t calcSize( Context *ctx, int start_at );
7785 		virtual void write( Writer *w, Context *ctx );
7786 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7787 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7788 
7789 		static MultinameLNamespace* get( Reader *r, int end, Context *ctx );
7790 		static MultinameLNamespace* getByName( const char *name );
7791 
7792 		std::uint32_t getindex();
7793 			void setindex( std::uint32_t );
7794 
7795 
7796 	protected:
7797 		std::uint32_t index; // u30
7798 
7799 			static int id;
7800 
7801 };
7802 
7803 class QName : public MultinameConstant {
7804 	public:
7805 		QName();
7806 		virtual ~QName();
7807 
7808 		virtual bool parse( Reader *r, int end, Context *ctx );
7809 		virtual void dump( int indent, Context *ctx );
7810 		virtual size_t calcSize( Context *ctx, int start_at );
7811 		virtual void write( Writer *w, Context *ctx );
7812 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7813 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7814 
7815 		static QName* get( Reader *r, int end, Context *ctx );
7816 		static QName* getByName( const char *name );
7817 
7818 		std::uint32_t getnamespaceIndex();
7819 			void setnamespaceIndex( std::uint32_t );
7820 	std::uint32_t getnameIndex();
7821 			void setnameIndex( std::uint32_t );
7822 
7823 
7824 	protected:
7825 		std::uint32_t namespaceIndex; // u30
7826 std::uint32_t nameIndex; // u30
7827 
7828 			static int id;
7829 
7830 };
7831 
7832 class QNameA : public MultinameConstant {
7833 	public:
7834 		QNameA();
7835 		virtual ~QNameA();
7836 
7837 		virtual bool parse( Reader *r, int end, Context *ctx );
7838 		virtual void dump( int indent, Context *ctx );
7839 		virtual size_t calcSize( Context *ctx, int start_at );
7840 		virtual void write( Writer *w, Context *ctx );
7841 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7842 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7843 
7844 		static QNameA* get( Reader *r, int end, Context *ctx );
7845 		static QNameA* getByName( const char *name );
7846 
7847 		std::uint32_t getnamespaceIndex();
7848 			void setnamespaceIndex( std::uint32_t );
7849 	std::uint32_t getnameIndex();
7850 			void setnameIndex( std::uint32_t );
7851 
7852 
7853 	protected:
7854 		std::uint32_t namespaceIndex; // u30
7855 std::uint32_t nameIndex; // u30
7856 
7857 			static int id;
7858 
7859 };
7860 
7861 class Multiname : public MultinameConstant {
7862 	public:
7863 		Multiname();
7864 		virtual ~Multiname();
7865 
7866 		virtual bool parse( Reader *r, int end, Context *ctx );
7867 		virtual void dump( int indent, Context *ctx );
7868 		virtual size_t calcSize( Context *ctx, int start_at );
7869 		virtual void write( Writer *w, Context *ctx );
7870 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7871 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7872 
7873 		static Multiname* get( Reader *r, int end, Context *ctx );
7874 		static Multiname* getByName( const char *name );
7875 
7876 		std::uint32_t getnameIndex();
7877 			void setnameIndex( std::uint32_t );
7878 	std::uint32_t getnamespaceSetIndex();
7879 			void setnamespaceSetIndex( std::uint32_t );
7880 
7881 
7882 	protected:
7883 		std::uint32_t nameIndex; // u30
7884 std::uint32_t namespaceSetIndex; // u30
7885 
7886 			static int id;
7887 
7888 };
7889 
7890 class MultinameA : public MultinameConstant {
7891 	public:
7892 		MultinameA();
7893 		virtual ~MultinameA();
7894 
7895 		virtual bool parse( Reader *r, int end, Context *ctx );
7896 		virtual void dump( int indent, Context *ctx );
7897 		virtual size_t calcSize( Context *ctx, int start_at );
7898 		virtual void write( Writer *w, Context *ctx );
7899 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7900 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7901 
7902 		static MultinameA* get( Reader *r, int end, Context *ctx );
7903 		static MultinameA* getByName( const char *name );
7904 
7905 		std::uint32_t getnameIndex();
7906 			void setnameIndex( std::uint32_t );
7907 	std::uint32_t getnamespaceSetIndex();
7908 			void setnamespaceSetIndex( std::uint32_t );
7909 
7910 
7911 	protected:
7912 		std::uint32_t nameIndex; // u30
7913 std::uint32_t namespaceSetIndex; // u30
7914 
7915 			static int id;
7916 
7917 };
7918 
7919 class RTQName : public MultinameConstant {
7920 	public:
7921 		RTQName();
7922 		virtual ~RTQName();
7923 
7924 		virtual bool parse( Reader *r, int end, Context *ctx );
7925 		virtual void dump( int indent, Context *ctx );
7926 		virtual size_t calcSize( Context *ctx, int start_at );
7927 		virtual void write( Writer *w, Context *ctx );
7928 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7929 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7930 
7931 		static RTQName* get( Reader *r, int end, Context *ctx );
7932 		static RTQName* getByName( const char *name );
7933 
7934 		std::uint32_t getnameIndex();
7935 			void setnameIndex( std::uint32_t );
7936 
7937 
7938 	protected:
7939 		std::uint32_t nameIndex; // u30
7940 
7941 			static int id;
7942 
7943 };
7944 
7945 class RTQNameA : public MultinameConstant {
7946 	public:
7947 		RTQNameA();
7948 		virtual ~RTQNameA();
7949 
7950 		virtual bool parse( Reader *r, int end, Context *ctx );
7951 		virtual void dump( int indent, Context *ctx );
7952 		virtual size_t calcSize( Context *ctx, int start_at );
7953 		virtual void write( Writer *w, Context *ctx );
7954 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7955 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7956 
7957 		static RTQNameA* get( Reader *r, int end, Context *ctx );
7958 		static RTQNameA* getByName( const char *name );
7959 
7960 		std::uint32_t getnameIndex();
7961 			void setnameIndex( std::uint32_t );
7962 
7963 
7964 	protected:
7965 		std::uint32_t nameIndex; // u30
7966 
7967 			static int id;
7968 
7969 };
7970 
7971 class MultinameL : public MultinameConstant {
7972 	public:
7973 		MultinameL();
7974 		virtual ~MultinameL();
7975 
7976 		virtual bool parse( Reader *r, int end, Context *ctx );
7977 		virtual void dump( int indent, Context *ctx );
7978 		virtual size_t calcSize( Context *ctx, int start_at );
7979 		virtual void write( Writer *w, Context *ctx );
7980 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
7981 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
7982 
7983 		static MultinameL* get( Reader *r, int end, Context *ctx );
7984 		static MultinameL* getByName( const char *name );
7985 
7986 		std::uint32_t getnamespaceSetIndex();
7987 			void setnamespaceSetIndex( std::uint32_t );
7988 
7989 
7990 	protected:
7991 		std::uint32_t namespaceSetIndex; // u30
7992 
7993 			static int id;
7994 
7995 };
7996 
7997 class RTQNameL : public MultinameConstant {
7998 	public:
7999 		RTQNameL();
8000 		virtual ~RTQNameL();
8001 
8002 		virtual bool parse( Reader *r, int end, Context *ctx );
8003 		virtual void dump( int indent, Context *ctx );
8004 		virtual size_t calcSize( Context *ctx, int start_at );
8005 		virtual void write( Writer *w, Context *ctx );
8006 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8007 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8008 
8009 		static RTQNameL* get( Reader *r, int end, Context *ctx );
8010 		static RTQNameL* getByName( const char *name );
8011 
8012 
8013 
8014 	protected:
8015 
8016 			static int id;
8017 
8018 };
8019 
8020 class RTQNameLA : public MultinameConstant {
8021 	public:
8022 		RTQNameLA();
8023 		virtual ~RTQNameLA();
8024 
8025 		virtual bool parse( Reader *r, int end, Context *ctx );
8026 		virtual void dump( int indent, Context *ctx );
8027 		virtual size_t calcSize( Context *ctx, int start_at );
8028 		virtual void write( Writer *w, Context *ctx );
8029 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8030 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8031 
8032 		static RTQNameLA* get( Reader *r, int end, Context *ctx );
8033 		static RTQNameLA* getByName( const char *name );
8034 
8035 
8036 
8037 	protected:
8038 
8039 			static int id;
8040 
8041 };
8042 
8043 class TypeName : public MultinameConstant {
8044 	public:
8045 		TypeName();
8046 		virtual ~TypeName();
8047 
8048 		virtual bool parse( Reader *r, int end, Context *ctx );
8049 		virtual void dump( int indent, Context *ctx );
8050 		virtual size_t calcSize( Context *ctx, int start_at );
8051 		virtual void write( Writer *w, Context *ctx );
8052 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8053 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8054 
8055 		static TypeName* get( Reader *r, int end, Context *ctx );
8056 		static TypeName* getByName( const char *name );
8057 
8058 		std::uint32_t getnameIndex();
8059 			void setnameIndex( std::uint32_t );
8060 	std::uint32_t getnameCount();
8061 			void setnameCount( std::uint32_t );
8062 	List<U30> *gettypes();
8063 
8064 
8065 	protected:
8066 		std::uint32_t nameIndex; // u30
8067 std::uint32_t nameCount; // u30
8068 List<U30> types; // list
8069 
8070 			static int id;
8071 
8072 };
8073 
8074 class Slot : public Trait {
8075 	public:
8076 		Slot();
8077 		virtual ~Slot();
8078 
8079 		virtual bool parse( Reader *r, int end, Context *ctx );
8080 		virtual void dump( int indent, Context *ctx );
8081 		virtual size_t calcSize( Context *ctx, int start_at );
8082 		virtual void write( Writer *w, Context *ctx );
8083 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8084 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8085 
8086 		static Slot* get( Reader *r, int end, Context *ctx );
8087 		static Slot* getByName( const char *name );
8088 
8089 		std::uint32_t getslotID();
8090 			void setslotID( std::uint32_t );
8091 	std::uint32_t gettypeIndex();
8092 			void settypeIndex( std::uint32_t );
8093 	std::uint32_t getvalueIndex();
8094 			void setvalueIndex( std::uint32_t );
8095 	std::uint8_t getvalueKind();
8096 			void setvalueKind( std::uint8_t );
8097 
8098 
8099 	protected:
8100 		std::uint32_t slotID; // u30
8101 std::uint32_t typeIndex; // u30
8102 std::uint32_t valueIndex; // u30
8103 std::uint8_t valueKind; // byte
8104 
8105 			static int id;
8106 
8107 };
8108 
8109 class Const : public Trait {
8110 	public:
8111 		Const();
8112 		virtual ~Const();
8113 
8114 		virtual bool parse( Reader *r, int end, Context *ctx );
8115 		virtual void dump( int indent, Context *ctx );
8116 		virtual size_t calcSize( Context *ctx, int start_at );
8117 		virtual void write( Writer *w, Context *ctx );
8118 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8119 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8120 
8121 		static Const* get( Reader *r, int end, Context *ctx );
8122 		static Const* getByName( const char *name );
8123 
8124 		std::uint32_t getslotID();
8125 			void setslotID( std::uint32_t );
8126 	std::uint32_t gettypeIndex();
8127 			void settypeIndex( std::uint32_t );
8128 	std::uint32_t getvalueIndex();
8129 			void setvalueIndex( std::uint32_t );
8130 	std::uint8_t getvalueKind();
8131 			void setvalueKind( std::uint8_t );
8132 
8133 
8134 	protected:
8135 		std::uint32_t slotID; // u30
8136 std::uint32_t typeIndex; // u30
8137 std::uint32_t valueIndex; // u30
8138 std::uint8_t valueKind; // byte
8139 
8140 			static int id;
8141 
8142 };
8143 
8144 class Method : public Trait {
8145 	public:
8146 		Method();
8147 		virtual ~Method();
8148 
8149 		virtual bool parse( Reader *r, int end, Context *ctx );
8150 		virtual void dump( int indent, Context *ctx );
8151 		virtual size_t calcSize( Context *ctx, int start_at );
8152 		virtual void write( Writer *w, Context *ctx );
8153 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8154 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8155 
8156 		static Method* get( Reader *r, int end, Context *ctx );
8157 		static Method* getByName( const char *name );
8158 
8159 		std::uint32_t getdispID();
8160 			void setdispID( std::uint32_t );
8161 	std::uint32_t getmethodInfo();
8162 			void setmethodInfo( std::uint32_t );
8163 
8164 
8165 	protected:
8166 		std::uint32_t dispID; // u30
8167 std::uint32_t methodInfo; // u30
8168 
8169 			static int id;
8170 
8171 };
8172 
8173 class Getter : public Trait {
8174 	public:
8175 		Getter();
8176 		virtual ~Getter();
8177 
8178 		virtual bool parse( Reader *r, int end, Context *ctx );
8179 		virtual void dump( int indent, Context *ctx );
8180 		virtual size_t calcSize( Context *ctx, int start_at );
8181 		virtual void write( Writer *w, Context *ctx );
8182 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8183 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8184 
8185 		static Getter* get( Reader *r, int end, Context *ctx );
8186 		static Getter* getByName( const char *name );
8187 
8188 		std::uint32_t getdispID();
8189 			void setdispID( std::uint32_t );
8190 	std::uint32_t getmethodInfo();
8191 			void setmethodInfo( std::uint32_t );
8192 
8193 
8194 	protected:
8195 		std::uint32_t dispID; // u30
8196 std::uint32_t methodInfo; // u30
8197 
8198 			static int id;
8199 
8200 };
8201 
8202 class Setter : public Trait {
8203 	public:
8204 		Setter();
8205 		virtual ~Setter();
8206 
8207 		virtual bool parse( Reader *r, int end, Context *ctx );
8208 		virtual void dump( int indent, Context *ctx );
8209 		virtual size_t calcSize( Context *ctx, int start_at );
8210 		virtual void write( Writer *w, Context *ctx );
8211 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8212 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8213 
8214 		static Setter* get( Reader *r, int end, Context *ctx );
8215 		static Setter* getByName( const char *name );
8216 
8217 		std::uint32_t getdispID();
8218 			void setdispID( std::uint32_t );
8219 	std::uint32_t getmethodInfo();
8220 			void setmethodInfo( std::uint32_t );
8221 
8222 
8223 	protected:
8224 		std::uint32_t dispID; // u30
8225 std::uint32_t methodInfo; // u30
8226 
8227 			static int id;
8228 
8229 };
8230 
8231 class Class : public Trait {
8232 	public:
8233 		Class();
8234 		virtual ~Class();
8235 
8236 		virtual bool parse( Reader *r, int end, Context *ctx );
8237 		virtual void dump( int indent, Context *ctx );
8238 		virtual size_t calcSize( Context *ctx, int start_at );
8239 		virtual void write( Writer *w, Context *ctx );
8240 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8241 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8242 
8243 		static Class* get( Reader *r, int end, Context *ctx );
8244 		static Class* getByName( const char *name );
8245 
8246 		std::uint32_t getslotID();
8247 			void setslotID( std::uint32_t );
8248 	std::uint32_t getclassInfo();
8249 			void setclassInfo( std::uint32_t );
8250 
8251 
8252 	protected:
8253 		std::uint32_t slotID; // u30
8254 std::uint32_t classInfo; // u30
8255 
8256 			static int id;
8257 
8258 };
8259 
8260 class Function : public Trait {
8261 	public:
8262 		Function();
8263 		virtual ~Function();
8264 
8265 		virtual bool parse( Reader *r, int end, Context *ctx );
8266 		virtual void dump( int indent, Context *ctx );
8267 		virtual size_t calcSize( Context *ctx, int start_at );
8268 		virtual void write( Writer *w, Context *ctx );
8269 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8270 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8271 
8272 		static Function* get( Reader *r, int end, Context *ctx );
8273 		static Function* getByName( const char *name );
8274 
8275 		std::uint32_t getslotID();
8276 			void setslotID( std::uint32_t );
8277 	std::uint32_t getmethodInfo();
8278 			void setmethodInfo( std::uint32_t );
8279 
8280 
8281 	protected:
8282 		std::uint32_t slotID; // u30
8283 std::uint32_t methodInfo; // u30
8284 
8285 			static int id;
8286 
8287 };
8288 
8289 class UnknownOpCode : public OpCode {
8290 	public:
8291 		UnknownOpCode();
8292 		virtual ~UnknownOpCode();
8293 
8294 		virtual bool parse( Reader *r, int end, Context *ctx );
8295 		virtual void dump( int indent, Context *ctx );
8296 		virtual size_t calcSize( Context *ctx, int start_at );
8297 		virtual void write( Writer *w, Context *ctx );
8298 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8299 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8300 
8301 		static UnknownOpCode* get( Reader *r, int end, Context *ctx );
8302 		static UnknownOpCode* getByName( const char *name );
8303 
8304 
8305 			void getdata( unsigned char **dst, int *size );
8306 			void setdata( const unsigned char *src, int size );
8307 
8308 
8309 	protected:
8310 		unsigned char * data; // data
8311 
8312 			static int id;
8313 
8314 };
8315 
8316 class OpBkPt : public OpCode {
8317 	public:
8318 		OpBkPt();
8319 		virtual ~OpBkPt();
8320 
8321 		virtual bool parse( Reader *r, int end, Context *ctx );
8322 		virtual void dump( int indent, Context *ctx );
8323 		virtual size_t calcSize( Context *ctx, int start_at );
8324 		virtual void write( Writer *w, Context *ctx );
8325 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8326 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8327 
8328 		static OpBkPt* get( Reader *r, int end, Context *ctx );
8329 		static OpBkPt* getByName( const char *name );
8330 
8331 
8332 
8333 	protected:
8334 
8335 			static int id;
8336 
8337 };
8338 
8339 class OpNop : public OpCode {
8340 	public:
8341 		OpNop();
8342 		virtual ~OpNop();
8343 
8344 		virtual bool parse( Reader *r, int end, Context *ctx );
8345 		virtual void dump( int indent, Context *ctx );
8346 		virtual size_t calcSize( Context *ctx, int start_at );
8347 		virtual void write( Writer *w, Context *ctx );
8348 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8349 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8350 
8351 		static OpNop* get( Reader *r, int end, Context *ctx );
8352 		static OpNop* getByName( const char *name );
8353 
8354 
8355 
8356 	protected:
8357 
8358 			static int id;
8359 
8360 };
8361 
8362 class OpThrow : public OpCode {
8363 	public:
8364 		OpThrow();
8365 		virtual ~OpThrow();
8366 
8367 		virtual bool parse( Reader *r, int end, Context *ctx );
8368 		virtual void dump( int indent, Context *ctx );
8369 		virtual size_t calcSize( Context *ctx, int start_at );
8370 		virtual void write( Writer *w, Context *ctx );
8371 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8372 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8373 
8374 		static OpThrow* get( Reader *r, int end, Context *ctx );
8375 		static OpThrow* getByName( const char *name );
8376 
8377 
8378 
8379 	protected:
8380 
8381 			static int id;
8382 
8383 };
8384 
8385 class OpGetSuper : public OpCode {
8386 	public:
8387 		OpGetSuper();
8388 		virtual ~OpGetSuper();
8389 
8390 		virtual bool parse( Reader *r, int end, Context *ctx );
8391 		virtual void dump( int indent, Context *ctx );
8392 		virtual size_t calcSize( Context *ctx, int start_at );
8393 		virtual void write( Writer *w, Context *ctx );
8394 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8395 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8396 
8397 		static OpGetSuper* get( Reader *r, int end, Context *ctx );
8398 		static OpGetSuper* getByName( const char *name );
8399 
8400 		std::uint32_t getname();
8401 			void setname( std::uint32_t );
8402 
8403 
8404 	protected:
8405 		std::uint32_t name; // u30
8406 
8407 			static int id;
8408 
8409 };
8410 
8411 class OpSetSuper : public OpCode {
8412 	public:
8413 		OpSetSuper();
8414 		virtual ~OpSetSuper();
8415 
8416 		virtual bool parse( Reader *r, int end, Context *ctx );
8417 		virtual void dump( int indent, Context *ctx );
8418 		virtual size_t calcSize( Context *ctx, int start_at );
8419 		virtual void write( Writer *w, Context *ctx );
8420 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8421 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8422 
8423 		static OpSetSuper* get( Reader *r, int end, Context *ctx );
8424 		static OpSetSuper* getByName( const char *name );
8425 
8426 		std::uint32_t getname();
8427 			void setname( std::uint32_t );
8428 
8429 
8430 	protected:
8431 		std::uint32_t name; // u30
8432 
8433 			static int id;
8434 
8435 };
8436 
8437 class OpDXNs : public OpCode {
8438 	public:
8439 		OpDXNs();
8440 		virtual ~OpDXNs();
8441 
8442 		virtual bool parse( Reader *r, int end, Context *ctx );
8443 		virtual void dump( int indent, Context *ctx );
8444 		virtual size_t calcSize( Context *ctx, int start_at );
8445 		virtual void write( Writer *w, Context *ctx );
8446 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8447 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8448 
8449 		static OpDXNs* get( Reader *r, int end, Context *ctx );
8450 		static OpDXNs* getByName( const char *name );
8451 
8452 		std::uint32_t getdxns();
8453 			void setdxns( std::uint32_t );
8454 
8455 
8456 	protected:
8457 		std::uint32_t dxns; // u30
8458 
8459 			static int id;
8460 
8461 };
8462 
8463 class OpDXNsLate : public OpCode {
8464 	public:
8465 		OpDXNsLate();
8466 		virtual ~OpDXNsLate();
8467 
8468 		virtual bool parse( Reader *r, int end, Context *ctx );
8469 		virtual void dump( int indent, Context *ctx );
8470 		virtual size_t calcSize( Context *ctx, int start_at );
8471 		virtual void write( Writer *w, Context *ctx );
8472 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8473 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8474 
8475 		static OpDXNsLate* get( Reader *r, int end, Context *ctx );
8476 		static OpDXNsLate* getByName( const char *name );
8477 
8478 
8479 
8480 	protected:
8481 
8482 			static int id;
8483 
8484 };
8485 
8486 class OpKill : public OpCode {
8487 	public:
8488 		OpKill();
8489 		virtual ~OpKill();
8490 
8491 		virtual bool parse( Reader *r, int end, Context *ctx );
8492 		virtual void dump( int indent, Context *ctx );
8493 		virtual size_t calcSize( Context *ctx, int start_at );
8494 		virtual void write( Writer *w, Context *ctx );
8495 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8496 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8497 
8498 		static OpKill* get( Reader *r, int end, Context *ctx );
8499 		static OpKill* getByName( const char *name );
8500 
8501 		std::uint32_t getaddress();
8502 			void setaddress( std::uint32_t );
8503 
8504 
8505 	protected:
8506 		std::uint32_t address; // u30
8507 
8508 			static int id;
8509 
8510 };
8511 
8512 class OpLabel : public OpCode {
8513 	public:
8514 		OpLabel();
8515 		virtual ~OpLabel();
8516 
8517 		virtual bool parse( Reader *r, int end, Context *ctx );
8518 		virtual void dump( int indent, Context *ctx );
8519 		virtual size_t calcSize( Context *ctx, int start_at );
8520 		virtual void write( Writer *w, Context *ctx );
8521 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8522 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8523 
8524 		static OpLabel* get( Reader *r, int end, Context *ctx );
8525 		static OpLabel* getByName( const char *name );
8526 
8527 
8528 
8529 	protected:
8530 
8531 			static int id;
8532 
8533 };
8534 
8535 class OpIfNlt : public OpCode {
8536 	public:
8537 		OpIfNlt();
8538 		virtual ~OpIfNlt();
8539 
8540 		virtual bool parse( Reader *r, int end, Context *ctx );
8541 		virtual void dump( int indent, Context *ctx );
8542 		virtual size_t calcSize( Context *ctx, int start_at );
8543 		virtual void write( Writer *w, Context *ctx );
8544 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8545 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8546 
8547 		static OpIfNlt* get( Reader *r, int end, Context *ctx );
8548 		static OpIfNlt* getByName( const char *name );
8549 
8550 		std::int32_t gettarget();
8551 			void settarget( std::int32_t );
8552 
8553 
8554 	protected:
8555 		std::int32_t target; // s24
8556 
8557 			static int id;
8558 
8559 };
8560 
8561 class OpIfNle : public OpCode {
8562 	public:
8563 		OpIfNle();
8564 		virtual ~OpIfNle();
8565 
8566 		virtual bool parse( Reader *r, int end, Context *ctx );
8567 		virtual void dump( int indent, Context *ctx );
8568 		virtual size_t calcSize( Context *ctx, int start_at );
8569 		virtual void write( Writer *w, Context *ctx );
8570 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8571 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8572 
8573 		static OpIfNle* get( Reader *r, int end, Context *ctx );
8574 		static OpIfNle* getByName( const char *name );
8575 
8576 		std::int32_t gettarget();
8577 			void settarget( std::int32_t );
8578 
8579 
8580 	protected:
8581 		std::int32_t target; // s24
8582 
8583 			static int id;
8584 
8585 };
8586 
8587 class OpIfNgt : public OpCode {
8588 	public:
8589 		OpIfNgt();
8590 		virtual ~OpIfNgt();
8591 
8592 		virtual bool parse( Reader *r, int end, Context *ctx );
8593 		virtual void dump( int indent, Context *ctx );
8594 		virtual size_t calcSize( Context *ctx, int start_at );
8595 		virtual void write( Writer *w, Context *ctx );
8596 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8597 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8598 
8599 		static OpIfNgt* get( Reader *r, int end, Context *ctx );
8600 		static OpIfNgt* getByName( const char *name );
8601 
8602 		std::int32_t gettarget();
8603 			void settarget( std::int32_t );
8604 
8605 
8606 	protected:
8607 		std::int32_t target; // s24
8608 
8609 			static int id;
8610 
8611 };
8612 
8613 class OpIfNge : public OpCode {
8614 	public:
8615 		OpIfNge();
8616 		virtual ~OpIfNge();
8617 
8618 		virtual bool parse( Reader *r, int end, Context *ctx );
8619 		virtual void dump( int indent, Context *ctx );
8620 		virtual size_t calcSize( Context *ctx, int start_at );
8621 		virtual void write( Writer *w, Context *ctx );
8622 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8623 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8624 
8625 		static OpIfNge* get( Reader *r, int end, Context *ctx );
8626 		static OpIfNge* getByName( const char *name );
8627 
8628 		std::int32_t gettarget();
8629 			void settarget( std::int32_t );
8630 
8631 
8632 	protected:
8633 		std::int32_t target; // s24
8634 
8635 			static int id;
8636 
8637 };
8638 
8639 class OpJump : public OpCode {
8640 	public:
8641 		OpJump();
8642 		virtual ~OpJump();
8643 
8644 		virtual bool parse( Reader *r, int end, Context *ctx );
8645 		virtual void dump( int indent, Context *ctx );
8646 		virtual size_t calcSize( Context *ctx, int start_at );
8647 		virtual void write( Writer *w, Context *ctx );
8648 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8649 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8650 
8651 		static OpJump* get( Reader *r, int end, Context *ctx );
8652 		static OpJump* getByName( const char *name );
8653 
8654 		std::int32_t gettarget();
8655 			void settarget( std::int32_t );
8656 
8657 
8658 	protected:
8659 		std::int32_t target; // s24
8660 
8661 			static int id;
8662 
8663 };
8664 
8665 class OpIfTrue : public OpCode {
8666 	public:
8667 		OpIfTrue();
8668 		virtual ~OpIfTrue();
8669 
8670 		virtual bool parse( Reader *r, int end, Context *ctx );
8671 		virtual void dump( int indent, Context *ctx );
8672 		virtual size_t calcSize( Context *ctx, int start_at );
8673 		virtual void write( Writer *w, Context *ctx );
8674 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8675 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8676 
8677 		static OpIfTrue* get( Reader *r, int end, Context *ctx );
8678 		static OpIfTrue* getByName( const char *name );
8679 
8680 		std::int32_t gettarget();
8681 			void settarget( std::int32_t );
8682 
8683 
8684 	protected:
8685 		std::int32_t target; // s24
8686 
8687 			static int id;
8688 
8689 };
8690 
8691 class OpIfFalse : public OpCode {
8692 	public:
8693 		OpIfFalse();
8694 		virtual ~OpIfFalse();
8695 
8696 		virtual bool parse( Reader *r, int end, Context *ctx );
8697 		virtual void dump( int indent, Context *ctx );
8698 		virtual size_t calcSize( Context *ctx, int start_at );
8699 		virtual void write( Writer *w, Context *ctx );
8700 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8701 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8702 
8703 		static OpIfFalse* get( Reader *r, int end, Context *ctx );
8704 		static OpIfFalse* getByName( const char *name );
8705 
8706 		std::int32_t gettarget();
8707 			void settarget( std::int32_t );
8708 
8709 
8710 	protected:
8711 		std::int32_t target; // s24
8712 
8713 			static int id;
8714 
8715 };
8716 
8717 class OpIfEq : public OpCode {
8718 	public:
8719 		OpIfEq();
8720 		virtual ~OpIfEq();
8721 
8722 		virtual bool parse( Reader *r, int end, Context *ctx );
8723 		virtual void dump( int indent, Context *ctx );
8724 		virtual size_t calcSize( Context *ctx, int start_at );
8725 		virtual void write( Writer *w, Context *ctx );
8726 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8727 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8728 
8729 		static OpIfEq* get( Reader *r, int end, Context *ctx );
8730 		static OpIfEq* getByName( const char *name );
8731 
8732 		std::int32_t gettarget();
8733 			void settarget( std::int32_t );
8734 
8735 
8736 	protected:
8737 		std::int32_t target; // s24
8738 
8739 			static int id;
8740 
8741 };
8742 
8743 class OpIfNe : public OpCode {
8744 	public:
8745 		OpIfNe();
8746 		virtual ~OpIfNe();
8747 
8748 		virtual bool parse( Reader *r, int end, Context *ctx );
8749 		virtual void dump( int indent, Context *ctx );
8750 		virtual size_t calcSize( Context *ctx, int start_at );
8751 		virtual void write( Writer *w, Context *ctx );
8752 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8753 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8754 
8755 		static OpIfNe* get( Reader *r, int end, Context *ctx );
8756 		static OpIfNe* getByName( const char *name );
8757 
8758 		std::int32_t gettarget();
8759 			void settarget( std::int32_t );
8760 
8761 
8762 	protected:
8763 		std::int32_t target; // s24
8764 
8765 			static int id;
8766 
8767 };
8768 
8769 class OpIfLt : public OpCode {
8770 	public:
8771 		OpIfLt();
8772 		virtual ~OpIfLt();
8773 
8774 		virtual bool parse( Reader *r, int end, Context *ctx );
8775 		virtual void dump( int indent, Context *ctx );
8776 		virtual size_t calcSize( Context *ctx, int start_at );
8777 		virtual void write( Writer *w, Context *ctx );
8778 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8779 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8780 
8781 		static OpIfLt* get( Reader *r, int end, Context *ctx );
8782 		static OpIfLt* getByName( const char *name );
8783 
8784 		std::int32_t gettarget();
8785 			void settarget( std::int32_t );
8786 
8787 
8788 	protected:
8789 		std::int32_t target; // s24
8790 
8791 			static int id;
8792 
8793 };
8794 
8795 class OpIfLe : public OpCode {
8796 	public:
8797 		OpIfLe();
8798 		virtual ~OpIfLe();
8799 
8800 		virtual bool parse( Reader *r, int end, Context *ctx );
8801 		virtual void dump( int indent, Context *ctx );
8802 		virtual size_t calcSize( Context *ctx, int start_at );
8803 		virtual void write( Writer *w, Context *ctx );
8804 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8805 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8806 
8807 		static OpIfLe* get( Reader *r, int end, Context *ctx );
8808 		static OpIfLe* getByName( const char *name );
8809 
8810 		std::int32_t gettarget();
8811 			void settarget( std::int32_t );
8812 
8813 
8814 	protected:
8815 		std::int32_t target; // s24
8816 
8817 			static int id;
8818 
8819 };
8820 
8821 class OpIfGt : public OpCode {
8822 	public:
8823 		OpIfGt();
8824 		virtual ~OpIfGt();
8825 
8826 		virtual bool parse( Reader *r, int end, Context *ctx );
8827 		virtual void dump( int indent, Context *ctx );
8828 		virtual size_t calcSize( Context *ctx, int start_at );
8829 		virtual void write( Writer *w, Context *ctx );
8830 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8831 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8832 
8833 		static OpIfGt* get( Reader *r, int end, Context *ctx );
8834 		static OpIfGt* getByName( const char *name );
8835 
8836 		std::int32_t gettarget();
8837 			void settarget( std::int32_t );
8838 
8839 
8840 	protected:
8841 		std::int32_t target; // s24
8842 
8843 			static int id;
8844 
8845 };
8846 
8847 class OpIfGe : public OpCode {
8848 	public:
8849 		OpIfGe();
8850 		virtual ~OpIfGe();
8851 
8852 		virtual bool parse( Reader *r, int end, Context *ctx );
8853 		virtual void dump( int indent, Context *ctx );
8854 		virtual size_t calcSize( Context *ctx, int start_at );
8855 		virtual void write( Writer *w, Context *ctx );
8856 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8857 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8858 
8859 		static OpIfGe* get( Reader *r, int end, Context *ctx );
8860 		static OpIfGe* getByName( const char *name );
8861 
8862 		std::int32_t gettarget();
8863 			void settarget( std::int32_t );
8864 
8865 
8866 	protected:
8867 		std::int32_t target; // s24
8868 
8869 			static int id;
8870 
8871 };
8872 
8873 class OpIfStrictEq : public OpCode {
8874 	public:
8875 		OpIfStrictEq();
8876 		virtual ~OpIfStrictEq();
8877 
8878 		virtual bool parse( Reader *r, int end, Context *ctx );
8879 		virtual void dump( int indent, Context *ctx );
8880 		virtual size_t calcSize( Context *ctx, int start_at );
8881 		virtual void write( Writer *w, Context *ctx );
8882 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8883 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8884 
8885 		static OpIfStrictEq* get( Reader *r, int end, Context *ctx );
8886 		static OpIfStrictEq* getByName( const char *name );
8887 
8888 		std::int32_t gettarget();
8889 			void settarget( std::int32_t );
8890 
8891 
8892 	protected:
8893 		std::int32_t target; // s24
8894 
8895 			static int id;
8896 
8897 };
8898 
8899 class OpIfStrictNe : public OpCode {
8900 	public:
8901 		OpIfStrictNe();
8902 		virtual ~OpIfStrictNe();
8903 
8904 		virtual bool parse( Reader *r, int end, Context *ctx );
8905 		virtual void dump( int indent, Context *ctx );
8906 		virtual size_t calcSize( Context *ctx, int start_at );
8907 		virtual void write( Writer *w, Context *ctx );
8908 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8909 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8910 
8911 		static OpIfStrictNe* get( Reader *r, int end, Context *ctx );
8912 		static OpIfStrictNe* getByName( const char *name );
8913 
8914 		std::int32_t gettarget();
8915 			void settarget( std::int32_t );
8916 
8917 
8918 	protected:
8919 		std::int32_t target; // s24
8920 
8921 			static int id;
8922 
8923 };
8924 
8925 class OpLookupSwitch : public OpCode {
8926 	public:
8927 		OpLookupSwitch();
8928 		virtual ~OpLookupSwitch();
8929 
8930 		virtual bool parse( Reader *r, int end, Context *ctx );
8931 		virtual void dump( int indent, Context *ctx );
8932 		virtual size_t calcSize( Context *ctx, int start_at );
8933 		virtual void write( Writer *w, Context *ctx );
8934 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8935 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8936 
8937 		static OpLookupSwitch* get( Reader *r, int end, Context *ctx );
8938 		static OpLookupSwitch* getByName( const char *name );
8939 
8940 		std::int32_t getdefaulTarget();
8941 			void setdefaulTarget( std::int32_t );
8942 	std::uint32_t getcaseCount();
8943 			void setcaseCount( std::uint32_t );
8944 	List<S24> *gettargetTable();
8945 
8946 
8947 	protected:
8948 		std::int32_t defaulTarget; // s24
8949 std::uint32_t caseCount; // u30
8950 List<S24> targetTable; // list
8951 
8952 			static int id;
8953 
8954 };
8955 
8956 class OpPushWith : public OpCode {
8957 	public:
8958 		OpPushWith();
8959 		virtual ~OpPushWith();
8960 
8961 		virtual bool parse( Reader *r, int end, Context *ctx );
8962 		virtual void dump( int indent, Context *ctx );
8963 		virtual size_t calcSize( Context *ctx, int start_at );
8964 		virtual void write( Writer *w, Context *ctx );
8965 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8966 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8967 
8968 		static OpPushWith* get( Reader *r, int end, Context *ctx );
8969 		static OpPushWith* getByName( const char *name );
8970 
8971 
8972 
8973 	protected:
8974 
8975 			static int id;
8976 
8977 };
8978 
8979 class OpPopScope : public OpCode {
8980 	public:
8981 		OpPopScope();
8982 		virtual ~OpPopScope();
8983 
8984 		virtual bool parse( Reader *r, int end, Context *ctx );
8985 		virtual void dump( int indent, Context *ctx );
8986 		virtual size_t calcSize( Context *ctx, int start_at );
8987 		virtual void write( Writer *w, Context *ctx );
8988 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
8989 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
8990 
8991 		static OpPopScope* get( Reader *r, int end, Context *ctx );
8992 		static OpPopScope* getByName( const char *name );
8993 
8994 
8995 
8996 	protected:
8997 
8998 			static int id;
8999 
9000 };
9001 
9002 class OpNextName : public OpCode {
9003 	public:
9004 		OpNextName();
9005 		virtual ~OpNextName();
9006 
9007 		virtual bool parse( Reader *r, int end, Context *ctx );
9008 		virtual void dump( int indent, Context *ctx );
9009 		virtual size_t calcSize( Context *ctx, int start_at );
9010 		virtual void write( Writer *w, Context *ctx );
9011 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9012 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9013 
9014 		static OpNextName* get( Reader *r, int end, Context *ctx );
9015 		static OpNextName* getByName( const char *name );
9016 
9017 
9018 
9019 	protected:
9020 
9021 			static int id;
9022 
9023 };
9024 
9025 class OpHasNext : public OpCode {
9026 	public:
9027 		OpHasNext();
9028 		virtual ~OpHasNext();
9029 
9030 		virtual bool parse( Reader *r, int end, Context *ctx );
9031 		virtual void dump( int indent, Context *ctx );
9032 		virtual size_t calcSize( Context *ctx, int start_at );
9033 		virtual void write( Writer *w, Context *ctx );
9034 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9035 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9036 
9037 		static OpHasNext* get( Reader *r, int end, Context *ctx );
9038 		static OpHasNext* getByName( const char *name );
9039 
9040 
9041 
9042 	protected:
9043 
9044 			static int id;
9045 
9046 };
9047 
9048 class OpPushNull : public OpCode {
9049 	public:
9050 		OpPushNull();
9051 		virtual ~OpPushNull();
9052 
9053 		virtual bool parse( Reader *r, int end, Context *ctx );
9054 		virtual void dump( int indent, Context *ctx );
9055 		virtual size_t calcSize( Context *ctx, int start_at );
9056 		virtual void write( Writer *w, Context *ctx );
9057 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9058 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9059 
9060 		static OpPushNull* get( Reader *r, int end, Context *ctx );
9061 		static OpPushNull* getByName( const char *name );
9062 
9063 
9064 
9065 	protected:
9066 
9067 			static int id;
9068 
9069 };
9070 
9071 class OpPushUndefined : public OpCode {
9072 	public:
9073 		OpPushUndefined();
9074 		virtual ~OpPushUndefined();
9075 
9076 		virtual bool parse( Reader *r, int end, Context *ctx );
9077 		virtual void dump( int indent, Context *ctx );
9078 		virtual size_t calcSize( Context *ctx, int start_at );
9079 		virtual void write( Writer *w, Context *ctx );
9080 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9081 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9082 
9083 		static OpPushUndefined* get( Reader *r, int end, Context *ctx );
9084 		static OpPushUndefined* getByName( const char *name );
9085 
9086 
9087 
9088 	protected:
9089 
9090 			static int id;
9091 
9092 };
9093 
9094 class OpNextValue : public OpCode {
9095 	public:
9096 		OpNextValue();
9097 		virtual ~OpNextValue();
9098 
9099 		virtual bool parse( Reader *r, int end, Context *ctx );
9100 		virtual void dump( int indent, Context *ctx );
9101 		virtual size_t calcSize( Context *ctx, int start_at );
9102 		virtual void write( Writer *w, Context *ctx );
9103 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9104 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9105 
9106 		static OpNextValue* get( Reader *r, int end, Context *ctx );
9107 		static OpNextValue* getByName( const char *name );
9108 
9109 
9110 
9111 	protected:
9112 
9113 			static int id;
9114 
9115 };
9116 
9117 class OpPushByte : public OpCode {
9118 	public:
9119 		OpPushByte();
9120 		virtual ~OpPushByte();
9121 
9122 		virtual bool parse( Reader *r, int end, Context *ctx );
9123 		virtual void dump( int indent, Context *ctx );
9124 		virtual size_t calcSize( Context *ctx, int start_at );
9125 		virtual void write( Writer *w, Context *ctx );
9126 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9127 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9128 
9129 		static OpPushByte* get( Reader *r, int end, Context *ctx );
9130 		static OpPushByte* getByName( const char *name );
9131 
9132 		std::uint8_t getvalue();
9133 			void setvalue( std::uint8_t );
9134 
9135 
9136 	protected:
9137 		std::uint8_t value; // byte
9138 
9139 			static int id;
9140 
9141 };
9142 
9143 class OpPushShort : public OpCode {
9144 	public:
9145 		OpPushShort();
9146 		virtual ~OpPushShort();
9147 
9148 		virtual bool parse( Reader *r, int end, Context *ctx );
9149 		virtual void dump( int indent, Context *ctx );
9150 		virtual size_t calcSize( Context *ctx, int start_at );
9151 		virtual void write( Writer *w, Context *ctx );
9152 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9153 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9154 
9155 		static OpPushShort* get( Reader *r, int end, Context *ctx );
9156 		static OpPushShort* getByName( const char *name );
9157 
9158 		std::uint32_t getvalue();
9159 			void setvalue( std::uint32_t );
9160 
9161 
9162 	protected:
9163 		std::uint32_t value; // u30
9164 
9165 			static int id;
9166 
9167 };
9168 
9169 class OpPushTrue : public OpCode {
9170 	public:
9171 		OpPushTrue();
9172 		virtual ~OpPushTrue();
9173 
9174 		virtual bool parse( Reader *r, int end, Context *ctx );
9175 		virtual void dump( int indent, Context *ctx );
9176 		virtual size_t calcSize( Context *ctx, int start_at );
9177 		virtual void write( Writer *w, Context *ctx );
9178 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9179 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9180 
9181 		static OpPushTrue* get( Reader *r, int end, Context *ctx );
9182 		static OpPushTrue* getByName( const char *name );
9183 
9184 
9185 
9186 	protected:
9187 
9188 			static int id;
9189 
9190 };
9191 
9192 class OpPushFalse : public OpCode {
9193 	public:
9194 		OpPushFalse();
9195 		virtual ~OpPushFalse();
9196 
9197 		virtual bool parse( Reader *r, int end, Context *ctx );
9198 		virtual void dump( int indent, Context *ctx );
9199 		virtual size_t calcSize( Context *ctx, int start_at );
9200 		virtual void write( Writer *w, Context *ctx );
9201 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9202 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9203 
9204 		static OpPushFalse* get( Reader *r, int end, Context *ctx );
9205 		static OpPushFalse* getByName( const char *name );
9206 
9207 
9208 
9209 	protected:
9210 
9211 			static int id;
9212 
9213 };
9214 
9215 class OpPushNaN : public OpCode {
9216 	public:
9217 		OpPushNaN();
9218 		virtual ~OpPushNaN();
9219 
9220 		virtual bool parse( Reader *r, int end, Context *ctx );
9221 		virtual void dump( int indent, Context *ctx );
9222 		virtual size_t calcSize( Context *ctx, int start_at );
9223 		virtual void write( Writer *w, Context *ctx );
9224 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9225 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9226 
9227 		static OpPushNaN* get( Reader *r, int end, Context *ctx );
9228 		static OpPushNaN* getByName( const char *name );
9229 
9230 
9231 
9232 	protected:
9233 
9234 			static int id;
9235 
9236 };
9237 
9238 class OpPop : public OpCode {
9239 	public:
9240 		OpPop();
9241 		virtual ~OpPop();
9242 
9243 		virtual bool parse( Reader *r, int end, Context *ctx );
9244 		virtual void dump( int indent, Context *ctx );
9245 		virtual size_t calcSize( Context *ctx, int start_at );
9246 		virtual void write( Writer *w, Context *ctx );
9247 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9248 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9249 
9250 		static OpPop* get( Reader *r, int end, Context *ctx );
9251 		static OpPop* getByName( const char *name );
9252 
9253 
9254 
9255 	protected:
9256 
9257 			static int id;
9258 
9259 };
9260 
9261 class OpDup : public OpCode {
9262 	public:
9263 		OpDup();
9264 		virtual ~OpDup();
9265 
9266 		virtual bool parse( Reader *r, int end, Context *ctx );
9267 		virtual void dump( int indent, Context *ctx );
9268 		virtual size_t calcSize( Context *ctx, int start_at );
9269 		virtual void write( Writer *w, Context *ctx );
9270 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9271 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9272 
9273 		static OpDup* get( Reader *r, int end, Context *ctx );
9274 		static OpDup* getByName( const char *name );
9275 
9276 
9277 
9278 	protected:
9279 
9280 			static int id;
9281 
9282 };
9283 
9284 class OpSwap : public OpCode {
9285 	public:
9286 		OpSwap();
9287 		virtual ~OpSwap();
9288 
9289 		virtual bool parse( Reader *r, int end, Context *ctx );
9290 		virtual void dump( int indent, Context *ctx );
9291 		virtual size_t calcSize( Context *ctx, int start_at );
9292 		virtual void write( Writer *w, Context *ctx );
9293 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9294 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9295 
9296 		static OpSwap* get( Reader *r, int end, Context *ctx );
9297 		static OpSwap* getByName( const char *name );
9298 
9299 
9300 
9301 	protected:
9302 
9303 			static int id;
9304 
9305 };
9306 
9307 class OpPushString : public OpCode {
9308 	public:
9309 		OpPushString();
9310 		virtual ~OpPushString();
9311 
9312 		virtual bool parse( Reader *r, int end, Context *ctx );
9313 		virtual void dump( int indent, Context *ctx );
9314 		virtual size_t calcSize( Context *ctx, int start_at );
9315 		virtual void write( Writer *w, Context *ctx );
9316 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9317 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9318 
9319 		static OpPushString* get( Reader *r, int end, Context *ctx );
9320 		static OpPushString* getByName( const char *name );
9321 
9322 		std::uint32_t getindex();
9323 			void setindex( std::uint32_t );
9324 
9325 
9326 	protected:
9327 		std::uint32_t index; // u30
9328 
9329 			static int id;
9330 
9331 };
9332 
9333 class OpPushInt : public OpCode {
9334 	public:
9335 		OpPushInt();
9336 		virtual ~OpPushInt();
9337 
9338 		virtual bool parse( Reader *r, int end, Context *ctx );
9339 		virtual void dump( int indent, Context *ctx );
9340 		virtual size_t calcSize( Context *ctx, int start_at );
9341 		virtual void write( Writer *w, Context *ctx );
9342 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9343 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9344 
9345 		static OpPushInt* get( Reader *r, int end, Context *ctx );
9346 		static OpPushInt* getByName( const char *name );
9347 
9348 		std::uint32_t getindex();
9349 			void setindex( std::uint32_t );
9350 
9351 
9352 	protected:
9353 		std::uint32_t index; // u30
9354 
9355 			static int id;
9356 
9357 };
9358 
9359 class OpPushUInt : public OpCode {
9360 	public:
9361 		OpPushUInt();
9362 		virtual ~OpPushUInt();
9363 
9364 		virtual bool parse( Reader *r, int end, Context *ctx );
9365 		virtual void dump( int indent, Context *ctx );
9366 		virtual size_t calcSize( Context *ctx, int start_at );
9367 		virtual void write( Writer *w, Context *ctx );
9368 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9369 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9370 
9371 		static OpPushUInt* get( Reader *r, int end, Context *ctx );
9372 		static OpPushUInt* getByName( const char *name );
9373 
9374 		std::uint32_t getindex();
9375 			void setindex( std::uint32_t );
9376 
9377 
9378 	protected:
9379 		std::uint32_t index; // u30
9380 
9381 			static int id;
9382 
9383 };
9384 
9385 class OpPushDouble : public OpCode {
9386 	public:
9387 		OpPushDouble();
9388 		virtual ~OpPushDouble();
9389 
9390 		virtual bool parse( Reader *r, int end, Context *ctx );
9391 		virtual void dump( int indent, Context *ctx );
9392 		virtual size_t calcSize( Context *ctx, int start_at );
9393 		virtual void write( Writer *w, Context *ctx );
9394 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9395 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9396 
9397 		static OpPushDouble* get( Reader *r, int end, Context *ctx );
9398 		static OpPushDouble* getByName( const char *name );
9399 
9400 		std::uint32_t getindex();
9401 			void setindex( std::uint32_t );
9402 
9403 
9404 	protected:
9405 		std::uint32_t index; // u30
9406 
9407 			static int id;
9408 
9409 };
9410 
9411 class OpPushScope : public OpCode {
9412 	public:
9413 		OpPushScope();
9414 		virtual ~OpPushScope();
9415 
9416 		virtual bool parse( Reader *r, int end, Context *ctx );
9417 		virtual void dump( int indent, Context *ctx );
9418 		virtual size_t calcSize( Context *ctx, int start_at );
9419 		virtual void write( Writer *w, Context *ctx );
9420 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9421 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9422 
9423 		static OpPushScope* get( Reader *r, int end, Context *ctx );
9424 		static OpPushScope* getByName( const char *name );
9425 
9426 
9427 
9428 	protected:
9429 
9430 			static int id;
9431 
9432 };
9433 
9434 class OpPushNamespace : public OpCode {
9435 	public:
9436 		OpPushNamespace();
9437 		virtual ~OpPushNamespace();
9438 
9439 		virtual bool parse( Reader *r, int end, Context *ctx );
9440 		virtual void dump( int indent, Context *ctx );
9441 		virtual size_t calcSize( Context *ctx, int start_at );
9442 		virtual void write( Writer *w, Context *ctx );
9443 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9444 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9445 
9446 		static OpPushNamespace* get( Reader *r, int end, Context *ctx );
9447 		static OpPushNamespace* getByName( const char *name );
9448 
9449 		std::uint32_t getindex();
9450 			void setindex( std::uint32_t );
9451 
9452 
9453 	protected:
9454 		std::uint32_t index; // u30
9455 
9456 			static int id;
9457 
9458 };
9459 
9460 class OpHasNext2 : public OpCode {
9461 	public:
9462 		OpHasNext2();
9463 		virtual ~OpHasNext2();
9464 
9465 		virtual bool parse( Reader *r, int end, Context *ctx );
9466 		virtual void dump( int indent, Context *ctx );
9467 		virtual size_t calcSize( Context *ctx, int start_at );
9468 		virtual void write( Writer *w, Context *ctx );
9469 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9470 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9471 
9472 		static OpHasNext2* get( Reader *r, int end, Context *ctx );
9473 		static OpHasNext2* getByName( const char *name );
9474 
9475 		std::uint32_t getobject();
9476 			void setobject( std::uint32_t );
9477 	std::uint32_t getindex();
9478 			void setindex( std::uint32_t );
9479 
9480 
9481 	protected:
9482 		std::uint32_t object; // u30
9483 std::uint32_t index; // u30
9484 
9485 			static int id;
9486 
9487 };
9488 
9489 class OpNewFunction : public OpCode {
9490 	public:
9491 		OpNewFunction();
9492 		virtual ~OpNewFunction();
9493 
9494 		virtual bool parse( Reader *r, int end, Context *ctx );
9495 		virtual void dump( int indent, Context *ctx );
9496 		virtual size_t calcSize( Context *ctx, int start_at );
9497 		virtual void write( Writer *w, Context *ctx );
9498 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9499 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9500 
9501 		static OpNewFunction* get( Reader *r, int end, Context *ctx );
9502 		static OpNewFunction* getByName( const char *name );
9503 
9504 		std::uint32_t getindex();
9505 			void setindex( std::uint32_t );
9506 
9507 
9508 	protected:
9509 		std::uint32_t index; // u30
9510 
9511 			static int id;
9512 
9513 };
9514 
9515 class OpCall : public OpCode {
9516 	public:
9517 		OpCall();
9518 		virtual ~OpCall();
9519 
9520 		virtual bool parse( Reader *r, int end, Context *ctx );
9521 		virtual void dump( int indent, Context *ctx );
9522 		virtual size_t calcSize( Context *ctx, int start_at );
9523 		virtual void write( Writer *w, Context *ctx );
9524 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9525 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9526 
9527 		static OpCall* get( Reader *r, int end, Context *ctx );
9528 		static OpCall* getByName( const char *name );
9529 
9530 		std::uint32_t getargc();
9531 			void setargc( std::uint32_t );
9532 
9533 
9534 	protected:
9535 		std::uint32_t argc; // u30
9536 
9537 			static int id;
9538 
9539 };
9540 
9541 class OpConstruct : public OpCode {
9542 	public:
9543 		OpConstruct();
9544 		virtual ~OpConstruct();
9545 
9546 		virtual bool parse( Reader *r, int end, Context *ctx );
9547 		virtual void dump( int indent, Context *ctx );
9548 		virtual size_t calcSize( Context *ctx, int start_at );
9549 		virtual void write( Writer *w, Context *ctx );
9550 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9551 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9552 
9553 		static OpConstruct* get( Reader *r, int end, Context *ctx );
9554 		static OpConstruct* getByName( const char *name );
9555 
9556 		std::uint32_t getargc();
9557 			void setargc( std::uint32_t );
9558 
9559 
9560 	protected:
9561 		std::uint32_t argc; // u30
9562 
9563 			static int id;
9564 
9565 };
9566 
9567 class OpCallMethod : public OpCode {
9568 	public:
9569 		OpCallMethod();
9570 		virtual ~OpCallMethod();
9571 
9572 		virtual bool parse( Reader *r, int end, Context *ctx );
9573 		virtual void dump( int indent, Context *ctx );
9574 		virtual size_t calcSize( Context *ctx, int start_at );
9575 		virtual void write( Writer *w, Context *ctx );
9576 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9577 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9578 
9579 		static OpCallMethod* get( Reader *r, int end, Context *ctx );
9580 		static OpCallMethod* getByName( const char *name );
9581 
9582 		std::uint32_t getdispID();
9583 			void setdispID( std::uint32_t );
9584 	std::uint32_t getargc();
9585 			void setargc( std::uint32_t );
9586 
9587 
9588 	protected:
9589 		std::uint32_t dispID; // u30
9590 std::uint32_t argc; // u30
9591 
9592 			static int id;
9593 
9594 };
9595 
9596 class OpCallStatic : public OpCode {
9597 	public:
9598 		OpCallStatic();
9599 		virtual ~OpCallStatic();
9600 
9601 		virtual bool parse( Reader *r, int end, Context *ctx );
9602 		virtual void dump( int indent, Context *ctx );
9603 		virtual size_t calcSize( Context *ctx, int start_at );
9604 		virtual void write( Writer *w, Context *ctx );
9605 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9606 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9607 
9608 		static OpCallStatic* get( Reader *r, int end, Context *ctx );
9609 		static OpCallStatic* getByName( const char *name );
9610 
9611 		std::uint32_t getmethodID();
9612 			void setmethodID( std::uint32_t );
9613 	std::uint32_t getargc();
9614 			void setargc( std::uint32_t );
9615 
9616 
9617 	protected:
9618 		std::uint32_t methodID; // u30
9619 std::uint32_t argc; // u30
9620 
9621 			static int id;
9622 
9623 };
9624 
9625 class OpCallSuper : public OpCode {
9626 	public:
9627 		OpCallSuper();
9628 		virtual ~OpCallSuper();
9629 
9630 		virtual bool parse( Reader *r, int end, Context *ctx );
9631 		virtual void dump( int indent, Context *ctx );
9632 		virtual size_t calcSize( Context *ctx, int start_at );
9633 		virtual void write( Writer *w, Context *ctx );
9634 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9635 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9636 
9637 		static OpCallSuper* get( Reader *r, int end, Context *ctx );
9638 		static OpCallSuper* getByName( const char *name );
9639 
9640 		std::uint32_t getname();
9641 			void setname( std::uint32_t );
9642 	std::uint32_t getargc();
9643 			void setargc( std::uint32_t );
9644 
9645 
9646 	protected:
9647 		std::uint32_t name; // u30
9648 std::uint32_t argc; // u30
9649 
9650 			static int id;
9651 
9652 };
9653 
9654 class OpCallProperty : public OpCode {
9655 	public:
9656 		OpCallProperty();
9657 		virtual ~OpCallProperty();
9658 
9659 		virtual bool parse( Reader *r, int end, Context *ctx );
9660 		virtual void dump( int indent, Context *ctx );
9661 		virtual size_t calcSize( Context *ctx, int start_at );
9662 		virtual void write( Writer *w, Context *ctx );
9663 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9664 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9665 
9666 		static OpCallProperty* get( Reader *r, int end, Context *ctx );
9667 		static OpCallProperty* getByName( const char *name );
9668 
9669 		std::uint32_t getname();
9670 			void setname( std::uint32_t );
9671 	std::uint32_t getargc();
9672 			void setargc( std::uint32_t );
9673 
9674 
9675 	protected:
9676 		std::uint32_t name; // u30
9677 std::uint32_t argc; // u30
9678 
9679 			static int id;
9680 
9681 };
9682 
9683 class OpReturnVoid : public OpCode {
9684 	public:
9685 		OpReturnVoid();
9686 		virtual ~OpReturnVoid();
9687 
9688 		virtual bool parse( Reader *r, int end, Context *ctx );
9689 		virtual void dump( int indent, Context *ctx );
9690 		virtual size_t calcSize( Context *ctx, int start_at );
9691 		virtual void write( Writer *w, Context *ctx );
9692 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9693 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9694 
9695 		static OpReturnVoid* get( Reader *r, int end, Context *ctx );
9696 		static OpReturnVoid* getByName( const char *name );
9697 
9698 
9699 
9700 	protected:
9701 
9702 			static int id;
9703 
9704 };
9705 
9706 class OpReturnValue : public OpCode {
9707 	public:
9708 		OpReturnValue();
9709 		virtual ~OpReturnValue();
9710 
9711 		virtual bool parse( Reader *r, int end, Context *ctx );
9712 		virtual void dump( int indent, Context *ctx );
9713 		virtual size_t calcSize( Context *ctx, int start_at );
9714 		virtual void write( Writer *w, Context *ctx );
9715 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9716 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9717 
9718 		static OpReturnValue* get( Reader *r, int end, Context *ctx );
9719 		static OpReturnValue* getByName( const char *name );
9720 
9721 
9722 
9723 	protected:
9724 
9725 			static int id;
9726 
9727 };
9728 
9729 class OpConstructSuper : public OpCode {
9730 	public:
9731 		OpConstructSuper();
9732 		virtual ~OpConstructSuper();
9733 
9734 		virtual bool parse( Reader *r, int end, Context *ctx );
9735 		virtual void dump( int indent, Context *ctx );
9736 		virtual size_t calcSize( Context *ctx, int start_at );
9737 		virtual void write( Writer *w, Context *ctx );
9738 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9739 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9740 
9741 		static OpConstructSuper* get( Reader *r, int end, Context *ctx );
9742 		static OpConstructSuper* getByName( const char *name );
9743 
9744 		std::uint32_t getargc();
9745 			void setargc( std::uint32_t );
9746 
9747 
9748 	protected:
9749 		std::uint32_t argc; // u30
9750 
9751 			static int id;
9752 
9753 };
9754 
9755 class OpConstructProp : public OpCode {
9756 	public:
9757 		OpConstructProp();
9758 		virtual ~OpConstructProp();
9759 
9760 		virtual bool parse( Reader *r, int end, Context *ctx );
9761 		virtual void dump( int indent, Context *ctx );
9762 		virtual size_t calcSize( Context *ctx, int start_at );
9763 		virtual void write( Writer *w, Context *ctx );
9764 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9765 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9766 
9767 		static OpConstructProp* get( Reader *r, int end, Context *ctx );
9768 		static OpConstructProp* getByName( const char *name );
9769 
9770 		std::uint32_t getname();
9771 			void setname( std::uint32_t );
9772 	std::uint32_t getargc();
9773 			void setargc( std::uint32_t );
9774 
9775 
9776 	protected:
9777 		std::uint32_t name; // u30
9778 std::uint32_t argc; // u30
9779 
9780 			static int id;
9781 
9782 };
9783 
9784 class OpCallPropLex : public OpCode {
9785 	public:
9786 		OpCallPropLex();
9787 		virtual ~OpCallPropLex();
9788 
9789 		virtual bool parse( Reader *r, int end, Context *ctx );
9790 		virtual void dump( int indent, Context *ctx );
9791 		virtual size_t calcSize( Context *ctx, int start_at );
9792 		virtual void write( Writer *w, Context *ctx );
9793 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9794 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9795 
9796 		static OpCallPropLex* get( Reader *r, int end, Context *ctx );
9797 		static OpCallPropLex* getByName( const char *name );
9798 
9799 		std::uint32_t getname();
9800 			void setname( std::uint32_t );
9801 	std::uint32_t getargc();
9802 			void setargc( std::uint32_t );
9803 
9804 
9805 	protected:
9806 		std::uint32_t name; // u30
9807 std::uint32_t argc; // u30
9808 
9809 			static int id;
9810 
9811 };
9812 
9813 class OpCallSuperVoid : public OpCode {
9814 	public:
9815 		OpCallSuperVoid();
9816 		virtual ~OpCallSuperVoid();
9817 
9818 		virtual bool parse( Reader *r, int end, Context *ctx );
9819 		virtual void dump( int indent, Context *ctx );
9820 		virtual size_t calcSize( Context *ctx, int start_at );
9821 		virtual void write( Writer *w, Context *ctx );
9822 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9823 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9824 
9825 		static OpCallSuperVoid* get( Reader *r, int end, Context *ctx );
9826 		static OpCallSuperVoid* getByName( const char *name );
9827 
9828 		std::uint32_t getname();
9829 			void setname( std::uint32_t );
9830 	std::uint32_t getargc();
9831 			void setargc( std::uint32_t );
9832 
9833 
9834 	protected:
9835 		std::uint32_t name; // u30
9836 std::uint32_t argc; // u30
9837 
9838 			static int id;
9839 
9840 };
9841 
9842 class OpCallPropVoid : public OpCode {
9843 	public:
9844 		OpCallPropVoid();
9845 		virtual ~OpCallPropVoid();
9846 
9847 		virtual bool parse( Reader *r, int end, Context *ctx );
9848 		virtual void dump( int indent, Context *ctx );
9849 		virtual size_t calcSize( Context *ctx, int start_at );
9850 		virtual void write( Writer *w, Context *ctx );
9851 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9852 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9853 
9854 		static OpCallPropVoid* get( Reader *r, int end, Context *ctx );
9855 		static OpCallPropVoid* getByName( const char *name );
9856 
9857 		std::uint32_t getname();
9858 			void setname( std::uint32_t );
9859 	std::uint32_t getargc();
9860 			void setargc( std::uint32_t );
9861 
9862 
9863 	protected:
9864 		std::uint32_t name; // u30
9865 std::uint32_t argc; // u30
9866 
9867 			static int id;
9868 
9869 };
9870 
9871 class OpApplyType : public OpCode {
9872 	public:
9873 		OpApplyType();
9874 		virtual ~OpApplyType();
9875 
9876 		virtual bool parse( Reader *r, int end, Context *ctx );
9877 		virtual void dump( int indent, Context *ctx );
9878 		virtual size_t calcSize( Context *ctx, int start_at );
9879 		virtual void write( Writer *w, Context *ctx );
9880 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9881 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9882 
9883 		static OpApplyType* get( Reader *r, int end, Context *ctx );
9884 		static OpApplyType* getByName( const char *name );
9885 
9886 		std::uint32_t gettype();
9887 			void settype( std::uint32_t );
9888 
9889 
9890 	protected:
9891 		std::uint32_t type; // u30
9892 
9893 			static int id;
9894 
9895 };
9896 
9897 class OpNewObject : public OpCode {
9898 	public:
9899 		OpNewObject();
9900 		virtual ~OpNewObject();
9901 
9902 		virtual bool parse( Reader *r, int end, Context *ctx );
9903 		virtual void dump( int indent, Context *ctx );
9904 		virtual size_t calcSize( Context *ctx, int start_at );
9905 		virtual void write( Writer *w, Context *ctx );
9906 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9907 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9908 
9909 		static OpNewObject* get( Reader *r, int end, Context *ctx );
9910 		static OpNewObject* getByName( const char *name );
9911 
9912 		std::uint32_t getargc();
9913 			void setargc( std::uint32_t );
9914 
9915 
9916 	protected:
9917 		std::uint32_t argc; // u30
9918 
9919 			static int id;
9920 
9921 };
9922 
9923 class OpNewArray : public OpCode {
9924 	public:
9925 		OpNewArray();
9926 		virtual ~OpNewArray();
9927 
9928 		virtual bool parse( Reader *r, int end, Context *ctx );
9929 		virtual void dump( int indent, Context *ctx );
9930 		virtual size_t calcSize( Context *ctx, int start_at );
9931 		virtual void write( Writer *w, Context *ctx );
9932 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9933 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9934 
9935 		static OpNewArray* get( Reader *r, int end, Context *ctx );
9936 		static OpNewArray* getByName( const char *name );
9937 
9938 		std::uint32_t getargc();
9939 			void setargc( std::uint32_t );
9940 
9941 
9942 	protected:
9943 		std::uint32_t argc; // u30
9944 
9945 			static int id;
9946 
9947 };
9948 
9949 class OpNewActivation : public OpCode {
9950 	public:
9951 		OpNewActivation();
9952 		virtual ~OpNewActivation();
9953 
9954 		virtual bool parse( Reader *r, int end, Context *ctx );
9955 		virtual void dump( int indent, Context *ctx );
9956 		virtual size_t calcSize( Context *ctx, int start_at );
9957 		virtual void write( Writer *w, Context *ctx );
9958 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9959 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9960 
9961 		static OpNewActivation* get( Reader *r, int end, Context *ctx );
9962 		static OpNewActivation* getByName( const char *name );
9963 
9964 
9965 
9966 	protected:
9967 
9968 			static int id;
9969 
9970 };
9971 
9972 class OpNewClass : public OpCode {
9973 	public:
9974 		OpNewClass();
9975 		virtual ~OpNewClass();
9976 
9977 		virtual bool parse( Reader *r, int end, Context *ctx );
9978 		virtual void dump( int indent, Context *ctx );
9979 		virtual size_t calcSize( Context *ctx, int start_at );
9980 		virtual void write( Writer *w, Context *ctx );
9981 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
9982 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
9983 
9984 		static OpNewClass* get( Reader *r, int end, Context *ctx );
9985 		static OpNewClass* getByName( const char *name );
9986 
9987 		std::uint32_t getclassIndex();
9988 			void setclassIndex( std::uint32_t );
9989 
9990 
9991 	protected:
9992 		std::uint32_t classIndex; // u30
9993 
9994 			static int id;
9995 
9996 };
9997 
9998 class OpGetDescendants : public OpCode {
9999 	public:
10000 		OpGetDescendants();
10001 		virtual ~OpGetDescendants();
10002 
10003 		virtual bool parse( Reader *r, int end, Context *ctx );
10004 		virtual void dump( int indent, Context *ctx );
10005 		virtual size_t calcSize( Context *ctx, int start_at );
10006 		virtual void write( Writer *w, Context *ctx );
10007 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10008 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10009 
10010 		static OpGetDescendants* get( Reader *r, int end, Context *ctx );
10011 		static OpGetDescendants* getByName( const char *name );
10012 
10013 		std::uint32_t getname();
10014 			void setname( std::uint32_t );
10015 
10016 
10017 	protected:
10018 		std::uint32_t name; // u30
10019 
10020 			static int id;
10021 
10022 };
10023 
10024 class OpNewCatch : public OpCode {
10025 	public:
10026 		OpNewCatch();
10027 		virtual ~OpNewCatch();
10028 
10029 		virtual bool parse( Reader *r, int end, Context *ctx );
10030 		virtual void dump( int indent, Context *ctx );
10031 		virtual size_t calcSize( Context *ctx, int start_at );
10032 		virtual void write( Writer *w, Context *ctx );
10033 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10034 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10035 
10036 		static OpNewCatch* get( Reader *r, int end, Context *ctx );
10037 		static OpNewCatch* getByName( const char *name );
10038 
10039 		std::uint32_t getexceptionIndex();
10040 			void setexceptionIndex( std::uint32_t );
10041 
10042 
10043 	protected:
10044 		std::uint32_t exceptionIndex; // u30
10045 
10046 			static int id;
10047 
10048 };
10049 
10050 class OpFindPropStrict : public OpCode {
10051 	public:
10052 		OpFindPropStrict();
10053 		virtual ~OpFindPropStrict();
10054 
10055 		virtual bool parse( Reader *r, int end, Context *ctx );
10056 		virtual void dump( int indent, Context *ctx );
10057 		virtual size_t calcSize( Context *ctx, int start_at );
10058 		virtual void write( Writer *w, Context *ctx );
10059 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10060 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10061 
10062 		static OpFindPropStrict* get( Reader *r, int end, Context *ctx );
10063 		static OpFindPropStrict* getByName( const char *name );
10064 
10065 		std::uint32_t getname();
10066 			void setname( std::uint32_t );
10067 
10068 
10069 	protected:
10070 		std::uint32_t name; // u30
10071 
10072 			static int id;
10073 
10074 };
10075 
10076 class OpFindProperty : public OpCode {
10077 	public:
10078 		OpFindProperty();
10079 		virtual ~OpFindProperty();
10080 
10081 		virtual bool parse( Reader *r, int end, Context *ctx );
10082 		virtual void dump( int indent, Context *ctx );
10083 		virtual size_t calcSize( Context *ctx, int start_at );
10084 		virtual void write( Writer *w, Context *ctx );
10085 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10086 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10087 
10088 		static OpFindProperty* get( Reader *r, int end, Context *ctx );
10089 		static OpFindProperty* getByName( const char *name );
10090 
10091 		std::uint32_t getname();
10092 			void setname( std::uint32_t );
10093 
10094 
10095 	protected:
10096 		std::uint32_t name; // u30
10097 
10098 			static int id;
10099 
10100 };
10101 
10102 class OpFindDef : public OpCode {
10103 	public:
10104 		OpFindDef();
10105 		virtual ~OpFindDef();
10106 
10107 		virtual bool parse( Reader *r, int end, Context *ctx );
10108 		virtual void dump( int indent, Context *ctx );
10109 		virtual size_t calcSize( Context *ctx, int start_at );
10110 		virtual void write( Writer *w, Context *ctx );
10111 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10112 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10113 
10114 		static OpFindDef* get( Reader *r, int end, Context *ctx );
10115 		static OpFindDef* getByName( const char *name );
10116 
10117 		std::uint32_t getname();
10118 			void setname( std::uint32_t );
10119 
10120 
10121 	protected:
10122 		std::uint32_t name; // u30
10123 
10124 			static int id;
10125 
10126 };
10127 
10128 class OpGetLex : public OpCode {
10129 	public:
10130 		OpGetLex();
10131 		virtual ~OpGetLex();
10132 
10133 		virtual bool parse( Reader *r, int end, Context *ctx );
10134 		virtual void dump( int indent, Context *ctx );
10135 		virtual size_t calcSize( Context *ctx, int start_at );
10136 		virtual void write( Writer *w, Context *ctx );
10137 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10138 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10139 
10140 		static OpGetLex* get( Reader *r, int end, Context *ctx );
10141 		static OpGetLex* getByName( const char *name );
10142 
10143 		std::uint32_t getname();
10144 			void setname( std::uint32_t );
10145 
10146 
10147 	protected:
10148 		std::uint32_t name; // u30
10149 
10150 			static int id;
10151 
10152 };
10153 
10154 class OpSetProperty : public OpCode {
10155 	public:
10156 		OpSetProperty();
10157 		virtual ~OpSetProperty();
10158 
10159 		virtual bool parse( Reader *r, int end, Context *ctx );
10160 		virtual void dump( int indent, Context *ctx );
10161 		virtual size_t calcSize( Context *ctx, int start_at );
10162 		virtual void write( Writer *w, Context *ctx );
10163 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10164 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10165 
10166 		static OpSetProperty* get( Reader *r, int end, Context *ctx );
10167 		static OpSetProperty* getByName( const char *name );
10168 
10169 		std::uint32_t getname();
10170 			void setname( std::uint32_t );
10171 
10172 
10173 	protected:
10174 		std::uint32_t name; // u30
10175 
10176 			static int id;
10177 
10178 };
10179 
10180 class OpGetLocal : public OpCode {
10181 	public:
10182 		OpGetLocal();
10183 		virtual ~OpGetLocal();
10184 
10185 		virtual bool parse( Reader *r, int end, Context *ctx );
10186 		virtual void dump( int indent, Context *ctx );
10187 		virtual size_t calcSize( Context *ctx, int start_at );
10188 		virtual void write( Writer *w, Context *ctx );
10189 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10190 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10191 
10192 		static OpGetLocal* get( Reader *r, int end, Context *ctx );
10193 		static OpGetLocal* getByName( const char *name );
10194 
10195 		std::uint32_t getaddress();
10196 			void setaddress( std::uint32_t );
10197 
10198 
10199 	protected:
10200 		std::uint32_t address; // u30
10201 
10202 			static int id;
10203 
10204 };
10205 
10206 class OpSetLocal : public OpCode {
10207 	public:
10208 		OpSetLocal();
10209 		virtual ~OpSetLocal();
10210 
10211 		virtual bool parse( Reader *r, int end, Context *ctx );
10212 		virtual void dump( int indent, Context *ctx );
10213 		virtual size_t calcSize( Context *ctx, int start_at );
10214 		virtual void write( Writer *w, Context *ctx );
10215 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10216 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10217 
10218 		static OpSetLocal* get( Reader *r, int end, Context *ctx );
10219 		static OpSetLocal* getByName( const char *name );
10220 
10221 		std::uint32_t getaddress();
10222 			void setaddress( std::uint32_t );
10223 
10224 
10225 	protected:
10226 		std::uint32_t address; // u30
10227 
10228 			static int id;
10229 
10230 };
10231 
10232 class OpGetGlobalScope : public OpCode {
10233 	public:
10234 		OpGetGlobalScope();
10235 		virtual ~OpGetGlobalScope();
10236 
10237 		virtual bool parse( Reader *r, int end, Context *ctx );
10238 		virtual void dump( int indent, Context *ctx );
10239 		virtual size_t calcSize( Context *ctx, int start_at );
10240 		virtual void write( Writer *w, Context *ctx );
10241 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10242 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10243 
10244 		static OpGetGlobalScope* get( Reader *r, int end, Context *ctx );
10245 		static OpGetGlobalScope* getByName( const char *name );
10246 
10247 
10248 
10249 	protected:
10250 
10251 			static int id;
10252 
10253 };
10254 
10255 class OpGetScopeObject : public OpCode {
10256 	public:
10257 		OpGetScopeObject();
10258 		virtual ~OpGetScopeObject();
10259 
10260 		virtual bool parse( Reader *r, int end, Context *ctx );
10261 		virtual void dump( int indent, Context *ctx );
10262 		virtual size_t calcSize( Context *ctx, int start_at );
10263 		virtual void write( Writer *w, Context *ctx );
10264 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10265 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10266 
10267 		static OpGetScopeObject* get( Reader *r, int end, Context *ctx );
10268 		static OpGetScopeObject* getByName( const char *name );
10269 
10270 		std::uint8_t getscopeIndex();
10271 			void setscopeIndex( std::uint8_t );
10272 
10273 
10274 	protected:
10275 		std::uint8_t scopeIndex; // byte
10276 
10277 			static int id;
10278 
10279 };
10280 
10281 class OpGetProperty : public OpCode {
10282 	public:
10283 		OpGetProperty();
10284 		virtual ~OpGetProperty();
10285 
10286 		virtual bool parse( Reader *r, int end, Context *ctx );
10287 		virtual void dump( int indent, Context *ctx );
10288 		virtual size_t calcSize( Context *ctx, int start_at );
10289 		virtual void write( Writer *w, Context *ctx );
10290 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10291 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10292 
10293 		static OpGetProperty* get( Reader *r, int end, Context *ctx );
10294 		static OpGetProperty* getByName( const char *name );
10295 
10296 		std::uint32_t getname();
10297 			void setname( std::uint32_t );
10298 
10299 
10300 	protected:
10301 		std::uint32_t name; // u30
10302 
10303 			static int id;
10304 
10305 };
10306 
10307 class OpInitProperty : public OpCode {
10308 	public:
10309 		OpInitProperty();
10310 		virtual ~OpInitProperty();
10311 
10312 		virtual bool parse( Reader *r, int end, Context *ctx );
10313 		virtual void dump( int indent, Context *ctx );
10314 		virtual size_t calcSize( Context *ctx, int start_at );
10315 		virtual void write( Writer *w, Context *ctx );
10316 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10317 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10318 
10319 		static OpInitProperty* get( Reader *r, int end, Context *ctx );
10320 		static OpInitProperty* getByName( const char *name );
10321 
10322 		std::uint32_t getname();
10323 			void setname( std::uint32_t );
10324 
10325 
10326 	protected:
10327 		std::uint32_t name; // u30
10328 
10329 			static int id;
10330 
10331 };
10332 
10333 class OpDeleteProperty : public OpCode {
10334 	public:
10335 		OpDeleteProperty();
10336 		virtual ~OpDeleteProperty();
10337 
10338 		virtual bool parse( Reader *r, int end, Context *ctx );
10339 		virtual void dump( int indent, Context *ctx );
10340 		virtual size_t calcSize( Context *ctx, int start_at );
10341 		virtual void write( Writer *w, Context *ctx );
10342 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10343 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10344 
10345 		static OpDeleteProperty* get( Reader *r, int end, Context *ctx );
10346 		static OpDeleteProperty* getByName( const char *name );
10347 
10348 		std::uint32_t getname();
10349 			void setname( std::uint32_t );
10350 
10351 
10352 	protected:
10353 		std::uint32_t name; // u30
10354 
10355 			static int id;
10356 
10357 };
10358 
10359 class OpGetSlot : public OpCode {
10360 	public:
10361 		OpGetSlot();
10362 		virtual ~OpGetSlot();
10363 
10364 		virtual bool parse( Reader *r, int end, Context *ctx );
10365 		virtual void dump( int indent, Context *ctx );
10366 		virtual size_t calcSize( Context *ctx, int start_at );
10367 		virtual void write( Writer *w, Context *ctx );
10368 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10369 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10370 
10371 		static OpGetSlot* get( Reader *r, int end, Context *ctx );
10372 		static OpGetSlot* getByName( const char *name );
10373 
10374 		std::uint32_t getslotID();
10375 			void setslotID( std::uint32_t );
10376 
10377 
10378 	protected:
10379 		std::uint32_t slotID; // u30
10380 
10381 			static int id;
10382 
10383 };
10384 
10385 class OpSetSlot : public OpCode {
10386 	public:
10387 		OpSetSlot();
10388 		virtual ~OpSetSlot();
10389 
10390 		virtual bool parse( Reader *r, int end, Context *ctx );
10391 		virtual void dump( int indent, Context *ctx );
10392 		virtual size_t calcSize( Context *ctx, int start_at );
10393 		virtual void write( Writer *w, Context *ctx );
10394 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10395 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10396 
10397 		static OpSetSlot* get( Reader *r, int end, Context *ctx );
10398 		static OpSetSlot* getByName( const char *name );
10399 
10400 		std::uint32_t getslotID();
10401 			void setslotID( std::uint32_t );
10402 
10403 
10404 	protected:
10405 		std::uint32_t slotID; // u30
10406 
10407 			static int id;
10408 
10409 };
10410 
10411 class OpGetGlobalSlot : public OpCode {
10412 	public:
10413 		OpGetGlobalSlot();
10414 		virtual ~OpGetGlobalSlot();
10415 
10416 		virtual bool parse( Reader *r, int end, Context *ctx );
10417 		virtual void dump( int indent, Context *ctx );
10418 		virtual size_t calcSize( Context *ctx, int start_at );
10419 		virtual void write( Writer *w, Context *ctx );
10420 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10421 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10422 
10423 		static OpGetGlobalSlot* get( Reader *r, int end, Context *ctx );
10424 		static OpGetGlobalSlot* getByName( const char *name );
10425 
10426 		std::uint32_t getslotID();
10427 			void setslotID( std::uint32_t );
10428 
10429 
10430 	protected:
10431 		std::uint32_t slotID; // u30
10432 
10433 			static int id;
10434 
10435 };
10436 
10437 class OpSetGlobalSlot : public OpCode {
10438 	public:
10439 		OpSetGlobalSlot();
10440 		virtual ~OpSetGlobalSlot();
10441 
10442 		virtual bool parse( Reader *r, int end, Context *ctx );
10443 		virtual void dump( int indent, Context *ctx );
10444 		virtual size_t calcSize( Context *ctx, int start_at );
10445 		virtual void write( Writer *w, Context *ctx );
10446 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10447 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10448 
10449 		static OpSetGlobalSlot* get( Reader *r, int end, Context *ctx );
10450 		static OpSetGlobalSlot* getByName( const char *name );
10451 
10452 		std::uint32_t getslotID();
10453 			void setslotID( std::uint32_t );
10454 
10455 
10456 	protected:
10457 		std::uint32_t slotID; // u30
10458 
10459 			static int id;
10460 
10461 };
10462 
10463 class OpConvertS : public OpCode {
10464 	public:
10465 		OpConvertS();
10466 		virtual ~OpConvertS();
10467 
10468 		virtual bool parse( Reader *r, int end, Context *ctx );
10469 		virtual void dump( int indent, Context *ctx );
10470 		virtual size_t calcSize( Context *ctx, int start_at );
10471 		virtual void write( Writer *w, Context *ctx );
10472 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10473 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10474 
10475 		static OpConvertS* get( Reader *r, int end, Context *ctx );
10476 		static OpConvertS* getByName( const char *name );
10477 
10478 
10479 
10480 	protected:
10481 
10482 			static int id;
10483 
10484 };
10485 
10486 class OpEscXelem : public OpCode {
10487 	public:
10488 		OpEscXelem();
10489 		virtual ~OpEscXelem();
10490 
10491 		virtual bool parse( Reader *r, int end, Context *ctx );
10492 		virtual void dump( int indent, Context *ctx );
10493 		virtual size_t calcSize( Context *ctx, int start_at );
10494 		virtual void write( Writer *w, Context *ctx );
10495 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10496 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10497 
10498 		static OpEscXelem* get( Reader *r, int end, Context *ctx );
10499 		static OpEscXelem* getByName( const char *name );
10500 
10501 
10502 
10503 	protected:
10504 
10505 			static int id;
10506 
10507 };
10508 
10509 class OpEscXattr : public OpCode {
10510 	public:
10511 		OpEscXattr();
10512 		virtual ~OpEscXattr();
10513 
10514 		virtual bool parse( Reader *r, int end, Context *ctx );
10515 		virtual void dump( int indent, Context *ctx );
10516 		virtual size_t calcSize( Context *ctx, int start_at );
10517 		virtual void write( Writer *w, Context *ctx );
10518 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10519 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10520 
10521 		static OpEscXattr* get( Reader *r, int end, Context *ctx );
10522 		static OpEscXattr* getByName( const char *name );
10523 
10524 
10525 
10526 	protected:
10527 
10528 			static int id;
10529 
10530 };
10531 
10532 class OpConvertI : public OpCode {
10533 	public:
10534 		OpConvertI();
10535 		virtual ~OpConvertI();
10536 
10537 		virtual bool parse( Reader *r, int end, Context *ctx );
10538 		virtual void dump( int indent, Context *ctx );
10539 		virtual size_t calcSize( Context *ctx, int start_at );
10540 		virtual void write( Writer *w, Context *ctx );
10541 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10542 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10543 
10544 		static OpConvertI* get( Reader *r, int end, Context *ctx );
10545 		static OpConvertI* getByName( const char *name );
10546 
10547 
10548 
10549 	protected:
10550 
10551 			static int id;
10552 
10553 };
10554 
10555 class OpConvertU : public OpCode {
10556 	public:
10557 		OpConvertU();
10558 		virtual ~OpConvertU();
10559 
10560 		virtual bool parse( Reader *r, int end, Context *ctx );
10561 		virtual void dump( int indent, Context *ctx );
10562 		virtual size_t calcSize( Context *ctx, int start_at );
10563 		virtual void write( Writer *w, Context *ctx );
10564 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10565 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10566 
10567 		static OpConvertU* get( Reader *r, int end, Context *ctx );
10568 		static OpConvertU* getByName( const char *name );
10569 
10570 
10571 
10572 	protected:
10573 
10574 			static int id;
10575 
10576 };
10577 
10578 class OpConvertD : public OpCode {
10579 	public:
10580 		OpConvertD();
10581 		virtual ~OpConvertD();
10582 
10583 		virtual bool parse( Reader *r, int end, Context *ctx );
10584 		virtual void dump( int indent, Context *ctx );
10585 		virtual size_t calcSize( Context *ctx, int start_at );
10586 		virtual void write( Writer *w, Context *ctx );
10587 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10588 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10589 
10590 		static OpConvertD* get( Reader *r, int end, Context *ctx );
10591 		static OpConvertD* getByName( const char *name );
10592 
10593 
10594 
10595 	protected:
10596 
10597 			static int id;
10598 
10599 };
10600 
10601 class OpConvertB : public OpCode {
10602 	public:
10603 		OpConvertB();
10604 		virtual ~OpConvertB();
10605 
10606 		virtual bool parse( Reader *r, int end, Context *ctx );
10607 		virtual void dump( int indent, Context *ctx );
10608 		virtual size_t calcSize( Context *ctx, int start_at );
10609 		virtual void write( Writer *w, Context *ctx );
10610 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10611 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10612 
10613 		static OpConvertB* get( Reader *r, int end, Context *ctx );
10614 		static OpConvertB* getByName( const char *name );
10615 
10616 
10617 
10618 	protected:
10619 
10620 			static int id;
10621 
10622 };
10623 
10624 class OpConvertO : public OpCode {
10625 	public:
10626 		OpConvertO();
10627 		virtual ~OpConvertO();
10628 
10629 		virtual bool parse( Reader *r, int end, Context *ctx );
10630 		virtual void dump( int indent, Context *ctx );
10631 		virtual size_t calcSize( Context *ctx, int start_at );
10632 		virtual void write( Writer *w, Context *ctx );
10633 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10634 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10635 
10636 		static OpConvertO* get( Reader *r, int end, Context *ctx );
10637 		static OpConvertO* getByName( const char *name );
10638 
10639 
10640 
10641 	protected:
10642 
10643 			static int id;
10644 
10645 };
10646 
10647 class OpCheckFilter : public OpCode {
10648 	public:
10649 		OpCheckFilter();
10650 		virtual ~OpCheckFilter();
10651 
10652 		virtual bool parse( Reader *r, int end, Context *ctx );
10653 		virtual void dump( int indent, Context *ctx );
10654 		virtual size_t calcSize( Context *ctx, int start_at );
10655 		virtual void write( Writer *w, Context *ctx );
10656 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10657 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10658 
10659 		static OpCheckFilter* get( Reader *r, int end, Context *ctx );
10660 		static OpCheckFilter* getByName( const char *name );
10661 
10662 
10663 
10664 	protected:
10665 
10666 			static int id;
10667 
10668 };
10669 
10670 class OpCoerce : public OpCode {
10671 	public:
10672 		OpCoerce();
10673 		virtual ~OpCoerce();
10674 
10675 		virtual bool parse( Reader *r, int end, Context *ctx );
10676 		virtual void dump( int indent, Context *ctx );
10677 		virtual size_t calcSize( Context *ctx, int start_at );
10678 		virtual void write( Writer *w, Context *ctx );
10679 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10680 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10681 
10682 		static OpCoerce* get( Reader *r, int end, Context *ctx );
10683 		static OpCoerce* getByName( const char *name );
10684 
10685 		std::uint32_t getname();
10686 			void setname( std::uint32_t );
10687 
10688 
10689 	protected:
10690 		std::uint32_t name; // u30
10691 
10692 			static int id;
10693 
10694 };
10695 
10696 class OpCoerceB : public OpCode {
10697 	public:
10698 		OpCoerceB();
10699 		virtual ~OpCoerceB();
10700 
10701 		virtual bool parse( Reader *r, int end, Context *ctx );
10702 		virtual void dump( int indent, Context *ctx );
10703 		virtual size_t calcSize( Context *ctx, int start_at );
10704 		virtual void write( Writer *w, Context *ctx );
10705 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10706 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10707 
10708 		static OpCoerceB* get( Reader *r, int end, Context *ctx );
10709 		static OpCoerceB* getByName( const char *name );
10710 
10711 
10712 
10713 	protected:
10714 
10715 			static int id;
10716 
10717 };
10718 
10719 class OpCoerceA : public OpCode {
10720 	public:
10721 		OpCoerceA();
10722 		virtual ~OpCoerceA();
10723 
10724 		virtual bool parse( Reader *r, int end, Context *ctx );
10725 		virtual void dump( int indent, Context *ctx );
10726 		virtual size_t calcSize( Context *ctx, int start_at );
10727 		virtual void write( Writer *w, Context *ctx );
10728 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10729 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10730 
10731 		static OpCoerceA* get( Reader *r, int end, Context *ctx );
10732 		static OpCoerceA* getByName( const char *name );
10733 
10734 
10735 
10736 	protected:
10737 
10738 			static int id;
10739 
10740 };
10741 
10742 class OpCoerceI : public OpCode {
10743 	public:
10744 		OpCoerceI();
10745 		virtual ~OpCoerceI();
10746 
10747 		virtual bool parse( Reader *r, int end, Context *ctx );
10748 		virtual void dump( int indent, Context *ctx );
10749 		virtual size_t calcSize( Context *ctx, int start_at );
10750 		virtual void write( Writer *w, Context *ctx );
10751 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10752 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10753 
10754 		static OpCoerceI* get( Reader *r, int end, Context *ctx );
10755 		static OpCoerceI* getByName( const char *name );
10756 
10757 
10758 
10759 	protected:
10760 
10761 			static int id;
10762 
10763 };
10764 
10765 class OpCoerceD : public OpCode {
10766 	public:
10767 		OpCoerceD();
10768 		virtual ~OpCoerceD();
10769 
10770 		virtual bool parse( Reader *r, int end, Context *ctx );
10771 		virtual void dump( int indent, Context *ctx );
10772 		virtual size_t calcSize( Context *ctx, int start_at );
10773 		virtual void write( Writer *w, Context *ctx );
10774 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10775 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10776 
10777 		static OpCoerceD* get( Reader *r, int end, Context *ctx );
10778 		static OpCoerceD* getByName( const char *name );
10779 
10780 
10781 
10782 	protected:
10783 
10784 			static int id;
10785 
10786 };
10787 
10788 class OpCoerceS : public OpCode {
10789 	public:
10790 		OpCoerceS();
10791 		virtual ~OpCoerceS();
10792 
10793 		virtual bool parse( Reader *r, int end, Context *ctx );
10794 		virtual void dump( int indent, Context *ctx );
10795 		virtual size_t calcSize( Context *ctx, int start_at );
10796 		virtual void write( Writer *w, Context *ctx );
10797 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10798 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10799 
10800 		static OpCoerceS* get( Reader *r, int end, Context *ctx );
10801 		static OpCoerceS* getByName( const char *name );
10802 
10803 
10804 
10805 	protected:
10806 
10807 			static int id;
10808 
10809 };
10810 
10811 class OpAsType : public OpCode {
10812 	public:
10813 		OpAsType();
10814 		virtual ~OpAsType();
10815 
10816 		virtual bool parse( Reader *r, int end, Context *ctx );
10817 		virtual void dump( int indent, Context *ctx );
10818 		virtual size_t calcSize( Context *ctx, int start_at );
10819 		virtual void write( Writer *w, Context *ctx );
10820 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10821 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10822 
10823 		static OpAsType* get( Reader *r, int end, Context *ctx );
10824 		static OpAsType* getByName( const char *name );
10825 
10826 		std::uint32_t getname();
10827 			void setname( std::uint32_t );
10828 
10829 
10830 	protected:
10831 		std::uint32_t name; // u30
10832 
10833 			static int id;
10834 
10835 };
10836 
10837 class OpAsTypeLate : public OpCode {
10838 	public:
10839 		OpAsTypeLate();
10840 		virtual ~OpAsTypeLate();
10841 
10842 		virtual bool parse( Reader *r, int end, Context *ctx );
10843 		virtual void dump( int indent, Context *ctx );
10844 		virtual size_t calcSize( Context *ctx, int start_at );
10845 		virtual void write( Writer *w, Context *ctx );
10846 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10847 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10848 
10849 		static OpAsTypeLate* get( Reader *r, int end, Context *ctx );
10850 		static OpAsTypeLate* getByName( const char *name );
10851 
10852 
10853 
10854 	protected:
10855 
10856 			static int id;
10857 
10858 };
10859 
10860 class OpCoerceU : public OpCode {
10861 	public:
10862 		OpCoerceU();
10863 		virtual ~OpCoerceU();
10864 
10865 		virtual bool parse( Reader *r, int end, Context *ctx );
10866 		virtual void dump( int indent, Context *ctx );
10867 		virtual size_t calcSize( Context *ctx, int start_at );
10868 		virtual void write( Writer *w, Context *ctx );
10869 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10870 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10871 
10872 		static OpCoerceU* get( Reader *r, int end, Context *ctx );
10873 		static OpCoerceU* getByName( const char *name );
10874 
10875 
10876 
10877 	protected:
10878 
10879 			static int id;
10880 
10881 };
10882 
10883 class OpCoerceO : public OpCode {
10884 	public:
10885 		OpCoerceO();
10886 		virtual ~OpCoerceO();
10887 
10888 		virtual bool parse( Reader *r, int end, Context *ctx );
10889 		virtual void dump( int indent, Context *ctx );
10890 		virtual size_t calcSize( Context *ctx, int start_at );
10891 		virtual void write( Writer *w, Context *ctx );
10892 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10893 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10894 
10895 		static OpCoerceO* get( Reader *r, int end, Context *ctx );
10896 		static OpCoerceO* getByName( const char *name );
10897 
10898 
10899 
10900 	protected:
10901 
10902 			static int id;
10903 
10904 };
10905 
10906 class OpNegate : public OpCode {
10907 	public:
10908 		OpNegate();
10909 		virtual ~OpNegate();
10910 
10911 		virtual bool parse( Reader *r, int end, Context *ctx );
10912 		virtual void dump( int indent, Context *ctx );
10913 		virtual size_t calcSize( Context *ctx, int start_at );
10914 		virtual void write( Writer *w, Context *ctx );
10915 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10916 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10917 
10918 		static OpNegate* get( Reader *r, int end, Context *ctx );
10919 		static OpNegate* getByName( const char *name );
10920 
10921 
10922 
10923 	protected:
10924 
10925 			static int id;
10926 
10927 };
10928 
10929 class OpIncrement : public OpCode {
10930 	public:
10931 		OpIncrement();
10932 		virtual ~OpIncrement();
10933 
10934 		virtual bool parse( Reader *r, int end, Context *ctx );
10935 		virtual void dump( int indent, Context *ctx );
10936 		virtual size_t calcSize( Context *ctx, int start_at );
10937 		virtual void write( Writer *w, Context *ctx );
10938 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10939 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10940 
10941 		static OpIncrement* get( Reader *r, int end, Context *ctx );
10942 		static OpIncrement* getByName( const char *name );
10943 
10944 
10945 
10946 	protected:
10947 
10948 			static int id;
10949 
10950 };
10951 
10952 class OpIncLocal : public OpCode {
10953 	public:
10954 		OpIncLocal();
10955 		virtual ~OpIncLocal();
10956 
10957 		virtual bool parse( Reader *r, int end, Context *ctx );
10958 		virtual void dump( int indent, Context *ctx );
10959 		virtual size_t calcSize( Context *ctx, int start_at );
10960 		virtual void write( Writer *w, Context *ctx );
10961 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10962 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10963 
10964 		static OpIncLocal* get( Reader *r, int end, Context *ctx );
10965 		static OpIncLocal* getByName( const char *name );
10966 
10967 		std::uint32_t getaddress();
10968 			void setaddress( std::uint32_t );
10969 
10970 
10971 	protected:
10972 		std::uint32_t address; // u30
10973 
10974 			static int id;
10975 
10976 };
10977 
10978 class OpDecrement : public OpCode {
10979 	public:
10980 		OpDecrement();
10981 		virtual ~OpDecrement();
10982 
10983 		virtual bool parse( Reader *r, int end, Context *ctx );
10984 		virtual void dump( int indent, Context *ctx );
10985 		virtual size_t calcSize( Context *ctx, int start_at );
10986 		virtual void write( Writer *w, Context *ctx );
10987 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
10988 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
10989 
10990 		static OpDecrement* get( Reader *r, int end, Context *ctx );
10991 		static OpDecrement* getByName( const char *name );
10992 
10993 
10994 
10995 	protected:
10996 
10997 			static int id;
10998 
10999 };
11000 
11001 class OpDecLocal : public OpCode {
11002 	public:
11003 		OpDecLocal();
11004 		virtual ~OpDecLocal();
11005 
11006 		virtual bool parse( Reader *r, int end, Context *ctx );
11007 		virtual void dump( int indent, Context *ctx );
11008 		virtual size_t calcSize( Context *ctx, int start_at );
11009 		virtual void write( Writer *w, Context *ctx );
11010 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11011 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11012 
11013 		static OpDecLocal* get( Reader *r, int end, Context *ctx );
11014 		static OpDecLocal* getByName( const char *name );
11015 
11016 		std::uint32_t getaddress();
11017 			void setaddress( std::uint32_t );
11018 
11019 
11020 	protected:
11021 		std::uint32_t address; // u30
11022 
11023 			static int id;
11024 
11025 };
11026 
11027 class OpTypeOf : public OpCode {
11028 	public:
11029 		OpTypeOf();
11030 		virtual ~OpTypeOf();
11031 
11032 		virtual bool parse( Reader *r, int end, Context *ctx );
11033 		virtual void dump( int indent, Context *ctx );
11034 		virtual size_t calcSize( Context *ctx, int start_at );
11035 		virtual void write( Writer *w, Context *ctx );
11036 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11037 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11038 
11039 		static OpTypeOf* get( Reader *r, int end, Context *ctx );
11040 		static OpTypeOf* getByName( const char *name );
11041 
11042 
11043 
11044 	protected:
11045 
11046 			static int id;
11047 
11048 };
11049 
11050 class OpNot : public OpCode {
11051 	public:
11052 		OpNot();
11053 		virtual ~OpNot();
11054 
11055 		virtual bool parse( Reader *r, int end, Context *ctx );
11056 		virtual void dump( int indent, Context *ctx );
11057 		virtual size_t calcSize( Context *ctx, int start_at );
11058 		virtual void write( Writer *w, Context *ctx );
11059 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11060 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11061 
11062 		static OpNot* get( Reader *r, int end, Context *ctx );
11063 		static OpNot* getByName( const char *name );
11064 
11065 
11066 
11067 	protected:
11068 
11069 			static int id;
11070 
11071 };
11072 
11073 class OpBitNot : public OpCode {
11074 	public:
11075 		OpBitNot();
11076 		virtual ~OpBitNot();
11077 
11078 		virtual bool parse( Reader *r, int end, Context *ctx );
11079 		virtual void dump( int indent, Context *ctx );
11080 		virtual size_t calcSize( Context *ctx, int start_at );
11081 		virtual void write( Writer *w, Context *ctx );
11082 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11083 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11084 
11085 		static OpBitNot* get( Reader *r, int end, Context *ctx );
11086 		static OpBitNot* getByName( const char *name );
11087 
11088 
11089 
11090 	protected:
11091 
11092 			static int id;
11093 
11094 };
11095 
11096 class OpAdd : public OpCode {
11097 	public:
11098 		OpAdd();
11099 		virtual ~OpAdd();
11100 
11101 		virtual bool parse( Reader *r, int end, Context *ctx );
11102 		virtual void dump( int indent, Context *ctx );
11103 		virtual size_t calcSize( Context *ctx, int start_at );
11104 		virtual void write( Writer *w, Context *ctx );
11105 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11106 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11107 
11108 		static OpAdd* get( Reader *r, int end, Context *ctx );
11109 		static OpAdd* getByName( const char *name );
11110 
11111 
11112 
11113 	protected:
11114 
11115 			static int id;
11116 
11117 };
11118 
11119 class OpSubtract : public OpCode {
11120 	public:
11121 		OpSubtract();
11122 		virtual ~OpSubtract();
11123 
11124 		virtual bool parse( Reader *r, int end, Context *ctx );
11125 		virtual void dump( int indent, Context *ctx );
11126 		virtual size_t calcSize( Context *ctx, int start_at );
11127 		virtual void write( Writer *w, Context *ctx );
11128 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11129 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11130 
11131 		static OpSubtract* get( Reader *r, int end, Context *ctx );
11132 		static OpSubtract* getByName( const char *name );
11133 
11134 
11135 
11136 	protected:
11137 
11138 			static int id;
11139 
11140 };
11141 
11142 class OpMultiply : public OpCode {
11143 	public:
11144 		OpMultiply();
11145 		virtual ~OpMultiply();
11146 
11147 		virtual bool parse( Reader *r, int end, Context *ctx );
11148 		virtual void dump( int indent, Context *ctx );
11149 		virtual size_t calcSize( Context *ctx, int start_at );
11150 		virtual void write( Writer *w, Context *ctx );
11151 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11152 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11153 
11154 		static OpMultiply* get( Reader *r, int end, Context *ctx );
11155 		static OpMultiply* getByName( const char *name );
11156 
11157 
11158 
11159 	protected:
11160 
11161 			static int id;
11162 
11163 };
11164 
11165 class OpDivide : public OpCode {
11166 	public:
11167 		OpDivide();
11168 		virtual ~OpDivide();
11169 
11170 		virtual bool parse( Reader *r, int end, Context *ctx );
11171 		virtual void dump( int indent, Context *ctx );
11172 		virtual size_t calcSize( Context *ctx, int start_at );
11173 		virtual void write( Writer *w, Context *ctx );
11174 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11175 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11176 
11177 		static OpDivide* get( Reader *r, int end, Context *ctx );
11178 		static OpDivide* getByName( const char *name );
11179 
11180 
11181 
11182 	protected:
11183 
11184 			static int id;
11185 
11186 };
11187 
11188 class OpModulo : public OpCode {
11189 	public:
11190 		OpModulo();
11191 		virtual ~OpModulo();
11192 
11193 		virtual bool parse( Reader *r, int end, Context *ctx );
11194 		virtual void dump( int indent, Context *ctx );
11195 		virtual size_t calcSize( Context *ctx, int start_at );
11196 		virtual void write( Writer *w, Context *ctx );
11197 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11198 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11199 
11200 		static OpModulo* get( Reader *r, int end, Context *ctx );
11201 		static OpModulo* getByName( const char *name );
11202 
11203 
11204 
11205 	protected:
11206 
11207 			static int id;
11208 
11209 };
11210 
11211 class OpLShift : public OpCode {
11212 	public:
11213 		OpLShift();
11214 		virtual ~OpLShift();
11215 
11216 		virtual bool parse( Reader *r, int end, Context *ctx );
11217 		virtual void dump( int indent, Context *ctx );
11218 		virtual size_t calcSize( Context *ctx, int start_at );
11219 		virtual void write( Writer *w, Context *ctx );
11220 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11221 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11222 
11223 		static OpLShift* get( Reader *r, int end, Context *ctx );
11224 		static OpLShift* getByName( const char *name );
11225 
11226 
11227 
11228 	protected:
11229 
11230 			static int id;
11231 
11232 };
11233 
11234 class OpRShift : public OpCode {
11235 	public:
11236 		OpRShift();
11237 		virtual ~OpRShift();
11238 
11239 		virtual bool parse( Reader *r, int end, Context *ctx );
11240 		virtual void dump( int indent, Context *ctx );
11241 		virtual size_t calcSize( Context *ctx, int start_at );
11242 		virtual void write( Writer *w, Context *ctx );
11243 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11244 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11245 
11246 		static OpRShift* get( Reader *r, int end, Context *ctx );
11247 		static OpRShift* getByName( const char *name );
11248 
11249 
11250 
11251 	protected:
11252 
11253 			static int id;
11254 
11255 };
11256 
11257 class OpURShift : public OpCode {
11258 	public:
11259 		OpURShift();
11260 		virtual ~OpURShift();
11261 
11262 		virtual bool parse( Reader *r, int end, Context *ctx );
11263 		virtual void dump( int indent, Context *ctx );
11264 		virtual size_t calcSize( Context *ctx, int start_at );
11265 		virtual void write( Writer *w, Context *ctx );
11266 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11267 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11268 
11269 		static OpURShift* get( Reader *r, int end, Context *ctx );
11270 		static OpURShift* getByName( const char *name );
11271 
11272 
11273 
11274 	protected:
11275 
11276 			static int id;
11277 
11278 };
11279 
11280 class OpBitAnd : public OpCode {
11281 	public:
11282 		OpBitAnd();
11283 		virtual ~OpBitAnd();
11284 
11285 		virtual bool parse( Reader *r, int end, Context *ctx );
11286 		virtual void dump( int indent, Context *ctx );
11287 		virtual size_t calcSize( Context *ctx, int start_at );
11288 		virtual void write( Writer *w, Context *ctx );
11289 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11290 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11291 
11292 		static OpBitAnd* get( Reader *r, int end, Context *ctx );
11293 		static OpBitAnd* getByName( const char *name );
11294 
11295 
11296 
11297 	protected:
11298 
11299 			static int id;
11300 
11301 };
11302 
11303 class OpBitOr : public OpCode {
11304 	public:
11305 		OpBitOr();
11306 		virtual ~OpBitOr();
11307 
11308 		virtual bool parse( Reader *r, int end, Context *ctx );
11309 		virtual void dump( int indent, Context *ctx );
11310 		virtual size_t calcSize( Context *ctx, int start_at );
11311 		virtual void write( Writer *w, Context *ctx );
11312 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11313 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11314 
11315 		static OpBitOr* get( Reader *r, int end, Context *ctx );
11316 		static OpBitOr* getByName( const char *name );
11317 
11318 
11319 
11320 	protected:
11321 
11322 			static int id;
11323 
11324 };
11325 
11326 class OpBitXor : public OpCode {
11327 	public:
11328 		OpBitXor();
11329 		virtual ~OpBitXor();
11330 
11331 		virtual bool parse( Reader *r, int end, Context *ctx );
11332 		virtual void dump( int indent, Context *ctx );
11333 		virtual size_t calcSize( Context *ctx, int start_at );
11334 		virtual void write( Writer *w, Context *ctx );
11335 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11336 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11337 
11338 		static OpBitXor* get( Reader *r, int end, Context *ctx );
11339 		static OpBitXor* getByName( const char *name );
11340 
11341 
11342 
11343 	protected:
11344 
11345 			static int id;
11346 
11347 };
11348 
11349 class OpEquals : public OpCode {
11350 	public:
11351 		OpEquals();
11352 		virtual ~OpEquals();
11353 
11354 		virtual bool parse( Reader *r, int end, Context *ctx );
11355 		virtual void dump( int indent, Context *ctx );
11356 		virtual size_t calcSize( Context *ctx, int start_at );
11357 		virtual void write( Writer *w, Context *ctx );
11358 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11359 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11360 
11361 		static OpEquals* get( Reader *r, int end, Context *ctx );
11362 		static OpEquals* getByName( const char *name );
11363 
11364 
11365 
11366 	protected:
11367 
11368 			static int id;
11369 
11370 };
11371 
11372 class OpStrictEquals : public OpCode {
11373 	public:
11374 		OpStrictEquals();
11375 		virtual ~OpStrictEquals();
11376 
11377 		virtual bool parse( Reader *r, int end, Context *ctx );
11378 		virtual void dump( int indent, Context *ctx );
11379 		virtual size_t calcSize( Context *ctx, int start_at );
11380 		virtual void write( Writer *w, Context *ctx );
11381 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11382 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11383 
11384 		static OpStrictEquals* get( Reader *r, int end, Context *ctx );
11385 		static OpStrictEquals* getByName( const char *name );
11386 
11387 
11388 
11389 	protected:
11390 
11391 			static int id;
11392 
11393 };
11394 
11395 class OpLessThan : public OpCode {
11396 	public:
11397 		OpLessThan();
11398 		virtual ~OpLessThan();
11399 
11400 		virtual bool parse( Reader *r, int end, Context *ctx );
11401 		virtual void dump( int indent, Context *ctx );
11402 		virtual size_t calcSize( Context *ctx, int start_at );
11403 		virtual void write( Writer *w, Context *ctx );
11404 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11405 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11406 
11407 		static OpLessThan* get( Reader *r, int end, Context *ctx );
11408 		static OpLessThan* getByName( const char *name );
11409 
11410 
11411 
11412 	protected:
11413 
11414 			static int id;
11415 
11416 };
11417 
11418 class OpLessEquals : public OpCode {
11419 	public:
11420 		OpLessEquals();
11421 		virtual ~OpLessEquals();
11422 
11423 		virtual bool parse( Reader *r, int end, Context *ctx );
11424 		virtual void dump( int indent, Context *ctx );
11425 		virtual size_t calcSize( Context *ctx, int start_at );
11426 		virtual void write( Writer *w, Context *ctx );
11427 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11428 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11429 
11430 		static OpLessEquals* get( Reader *r, int end, Context *ctx );
11431 		static OpLessEquals* getByName( const char *name );
11432 
11433 
11434 
11435 	protected:
11436 
11437 			static int id;
11438 
11439 };
11440 
11441 class OpGreaterThan : public OpCode {
11442 	public:
11443 		OpGreaterThan();
11444 		virtual ~OpGreaterThan();
11445 
11446 		virtual bool parse( Reader *r, int end, Context *ctx );
11447 		virtual void dump( int indent, Context *ctx );
11448 		virtual size_t calcSize( Context *ctx, int start_at );
11449 		virtual void write( Writer *w, Context *ctx );
11450 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11451 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11452 
11453 		static OpGreaterThan* get( Reader *r, int end, Context *ctx );
11454 		static OpGreaterThan* getByName( const char *name );
11455 
11456 
11457 
11458 	protected:
11459 
11460 			static int id;
11461 
11462 };
11463 
11464 class OpGreaterEquals : public OpCode {
11465 	public:
11466 		OpGreaterEquals();
11467 		virtual ~OpGreaterEquals();
11468 
11469 		virtual bool parse( Reader *r, int end, Context *ctx );
11470 		virtual void dump( int indent, Context *ctx );
11471 		virtual size_t calcSize( Context *ctx, int start_at );
11472 		virtual void write( Writer *w, Context *ctx );
11473 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11474 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11475 
11476 		static OpGreaterEquals* get( Reader *r, int end, Context *ctx );
11477 		static OpGreaterEquals* getByName( const char *name );
11478 
11479 
11480 
11481 	protected:
11482 
11483 			static int id;
11484 
11485 };
11486 
11487 class OpInstanceOf : public OpCode {
11488 	public:
11489 		OpInstanceOf();
11490 		virtual ~OpInstanceOf();
11491 
11492 		virtual bool parse( Reader *r, int end, Context *ctx );
11493 		virtual void dump( int indent, Context *ctx );
11494 		virtual size_t calcSize( Context *ctx, int start_at );
11495 		virtual void write( Writer *w, Context *ctx );
11496 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11497 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11498 
11499 		static OpInstanceOf* get( Reader *r, int end, Context *ctx );
11500 		static OpInstanceOf* getByName( const char *name );
11501 
11502 
11503 
11504 	protected:
11505 
11506 			static int id;
11507 
11508 };
11509 
11510 class OpIsType : public OpCode {
11511 	public:
11512 		OpIsType();
11513 		virtual ~OpIsType();
11514 
11515 		virtual bool parse( Reader *r, int end, Context *ctx );
11516 		virtual void dump( int indent, Context *ctx );
11517 		virtual size_t calcSize( Context *ctx, int start_at );
11518 		virtual void write( Writer *w, Context *ctx );
11519 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11520 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11521 
11522 		static OpIsType* get( Reader *r, int end, Context *ctx );
11523 		static OpIsType* getByName( const char *name );
11524 
11525 		std::uint32_t getname();
11526 			void setname( std::uint32_t );
11527 
11528 
11529 	protected:
11530 		std::uint32_t name; // u30
11531 
11532 			static int id;
11533 
11534 };
11535 
11536 class OpIsTypeLate : public OpCode {
11537 	public:
11538 		OpIsTypeLate();
11539 		virtual ~OpIsTypeLate();
11540 
11541 		virtual bool parse( Reader *r, int end, Context *ctx );
11542 		virtual void dump( int indent, Context *ctx );
11543 		virtual size_t calcSize( Context *ctx, int start_at );
11544 		virtual void write( Writer *w, Context *ctx );
11545 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11546 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11547 
11548 		static OpIsTypeLate* get( Reader *r, int end, Context *ctx );
11549 		static OpIsTypeLate* getByName( const char *name );
11550 
11551 
11552 
11553 	protected:
11554 
11555 			static int id;
11556 
11557 };
11558 
11559 class OpIn : public OpCode {
11560 	public:
11561 		OpIn();
11562 		virtual ~OpIn();
11563 
11564 		virtual bool parse( Reader *r, int end, Context *ctx );
11565 		virtual void dump( int indent, Context *ctx );
11566 		virtual size_t calcSize( Context *ctx, int start_at );
11567 		virtual void write( Writer *w, Context *ctx );
11568 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11569 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11570 
11571 		static OpIn* get( Reader *r, int end, Context *ctx );
11572 		static OpIn* getByName( const char *name );
11573 
11574 
11575 
11576 	protected:
11577 
11578 			static int id;
11579 
11580 };
11581 
11582 class OpIncrementI : public OpCode {
11583 	public:
11584 		OpIncrementI();
11585 		virtual ~OpIncrementI();
11586 
11587 		virtual bool parse( Reader *r, int end, Context *ctx );
11588 		virtual void dump( int indent, Context *ctx );
11589 		virtual size_t calcSize( Context *ctx, int start_at );
11590 		virtual void write( Writer *w, Context *ctx );
11591 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11592 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11593 
11594 		static OpIncrementI* get( Reader *r, int end, Context *ctx );
11595 		static OpIncrementI* getByName( const char *name );
11596 
11597 
11598 
11599 	protected:
11600 
11601 			static int id;
11602 
11603 };
11604 
11605 class OpDecrementI : public OpCode {
11606 	public:
11607 		OpDecrementI();
11608 		virtual ~OpDecrementI();
11609 
11610 		virtual bool parse( Reader *r, int end, Context *ctx );
11611 		virtual void dump( int indent, Context *ctx );
11612 		virtual size_t calcSize( Context *ctx, int start_at );
11613 		virtual void write( Writer *w, Context *ctx );
11614 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11615 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11616 
11617 		static OpDecrementI* get( Reader *r, int end, Context *ctx );
11618 		static OpDecrementI* getByName( const char *name );
11619 
11620 
11621 
11622 	protected:
11623 
11624 			static int id;
11625 
11626 };
11627 
11628 class OpIncLocalI : public OpCode {
11629 	public:
11630 		OpIncLocalI();
11631 		virtual ~OpIncLocalI();
11632 
11633 		virtual bool parse( Reader *r, int end, Context *ctx );
11634 		virtual void dump( int indent, Context *ctx );
11635 		virtual size_t calcSize( Context *ctx, int start_at );
11636 		virtual void write( Writer *w, Context *ctx );
11637 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11638 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11639 
11640 		static OpIncLocalI* get( Reader *r, int end, Context *ctx );
11641 		static OpIncLocalI* getByName( const char *name );
11642 
11643 		std::uint32_t getaddress();
11644 			void setaddress( std::uint32_t );
11645 
11646 
11647 	protected:
11648 		std::uint32_t address; // u30
11649 
11650 			static int id;
11651 
11652 };
11653 
11654 class OpDecLocalI : public OpCode {
11655 	public:
11656 		OpDecLocalI();
11657 		virtual ~OpDecLocalI();
11658 
11659 		virtual bool parse( Reader *r, int end, Context *ctx );
11660 		virtual void dump( int indent, Context *ctx );
11661 		virtual size_t calcSize( Context *ctx, int start_at );
11662 		virtual void write( Writer *w, Context *ctx );
11663 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11664 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11665 
11666 		static OpDecLocalI* get( Reader *r, int end, Context *ctx );
11667 		static OpDecLocalI* getByName( const char *name );
11668 
11669 		std::uint32_t getaddress();
11670 			void setaddress( std::uint32_t );
11671 
11672 
11673 	protected:
11674 		std::uint32_t address; // u30
11675 
11676 			static int id;
11677 
11678 };
11679 
11680 class OpNegateI : public OpCode {
11681 	public:
11682 		OpNegateI();
11683 		virtual ~OpNegateI();
11684 
11685 		virtual bool parse( Reader *r, int end, Context *ctx );
11686 		virtual void dump( int indent, Context *ctx );
11687 		virtual size_t calcSize( Context *ctx, int start_at );
11688 		virtual void write( Writer *w, Context *ctx );
11689 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11690 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11691 
11692 		static OpNegateI* get( Reader *r, int end, Context *ctx );
11693 		static OpNegateI* getByName( const char *name );
11694 
11695 
11696 
11697 	protected:
11698 
11699 			static int id;
11700 
11701 };
11702 
11703 class OpAddI : public OpCode {
11704 	public:
11705 		OpAddI();
11706 		virtual ~OpAddI();
11707 
11708 		virtual bool parse( Reader *r, int end, Context *ctx );
11709 		virtual void dump( int indent, Context *ctx );
11710 		virtual size_t calcSize( Context *ctx, int start_at );
11711 		virtual void write( Writer *w, Context *ctx );
11712 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11713 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11714 
11715 		static OpAddI* get( Reader *r, int end, Context *ctx );
11716 		static OpAddI* getByName( const char *name );
11717 
11718 
11719 
11720 	protected:
11721 
11722 			static int id;
11723 
11724 };
11725 
11726 class OpSubtractI : public OpCode {
11727 	public:
11728 		OpSubtractI();
11729 		virtual ~OpSubtractI();
11730 
11731 		virtual bool parse( Reader *r, int end, Context *ctx );
11732 		virtual void dump( int indent, Context *ctx );
11733 		virtual size_t calcSize( Context *ctx, int start_at );
11734 		virtual void write( Writer *w, Context *ctx );
11735 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11736 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11737 
11738 		static OpSubtractI* get( Reader *r, int end, Context *ctx );
11739 		static OpSubtractI* getByName( const char *name );
11740 
11741 
11742 
11743 	protected:
11744 
11745 			static int id;
11746 
11747 };
11748 
11749 class OpMultiplyI : public OpCode {
11750 	public:
11751 		OpMultiplyI();
11752 		virtual ~OpMultiplyI();
11753 
11754 		virtual bool parse( Reader *r, int end, Context *ctx );
11755 		virtual void dump( int indent, Context *ctx );
11756 		virtual size_t calcSize( Context *ctx, int start_at );
11757 		virtual void write( Writer *w, Context *ctx );
11758 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11759 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11760 
11761 		static OpMultiplyI* get( Reader *r, int end, Context *ctx );
11762 		static OpMultiplyI* getByName( const char *name );
11763 
11764 
11765 
11766 	protected:
11767 
11768 			static int id;
11769 
11770 };
11771 
11772 class OpGetLocal0 : public OpCode {
11773 	public:
11774 		OpGetLocal0();
11775 		virtual ~OpGetLocal0();
11776 
11777 		virtual bool parse( Reader *r, int end, Context *ctx );
11778 		virtual void dump( int indent, Context *ctx );
11779 		virtual size_t calcSize( Context *ctx, int start_at );
11780 		virtual void write( Writer *w, Context *ctx );
11781 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11782 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11783 
11784 		static OpGetLocal0* get( Reader *r, int end, Context *ctx );
11785 		static OpGetLocal0* getByName( const char *name );
11786 
11787 
11788 
11789 	protected:
11790 
11791 			static int id;
11792 
11793 };
11794 
11795 class OpGetLocal1 : public OpCode {
11796 	public:
11797 		OpGetLocal1();
11798 		virtual ~OpGetLocal1();
11799 
11800 		virtual bool parse( Reader *r, int end, Context *ctx );
11801 		virtual void dump( int indent, Context *ctx );
11802 		virtual size_t calcSize( Context *ctx, int start_at );
11803 		virtual void write( Writer *w, Context *ctx );
11804 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11805 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11806 
11807 		static OpGetLocal1* get( Reader *r, int end, Context *ctx );
11808 		static OpGetLocal1* getByName( const char *name );
11809 
11810 
11811 
11812 	protected:
11813 
11814 			static int id;
11815 
11816 };
11817 
11818 class OpGetLocal2 : public OpCode {
11819 	public:
11820 		OpGetLocal2();
11821 		virtual ~OpGetLocal2();
11822 
11823 		virtual bool parse( Reader *r, int end, Context *ctx );
11824 		virtual void dump( int indent, Context *ctx );
11825 		virtual size_t calcSize( Context *ctx, int start_at );
11826 		virtual void write( Writer *w, Context *ctx );
11827 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11828 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11829 
11830 		static OpGetLocal2* get( Reader *r, int end, Context *ctx );
11831 		static OpGetLocal2* getByName( const char *name );
11832 
11833 
11834 
11835 	protected:
11836 
11837 			static int id;
11838 
11839 };
11840 
11841 class OpGetLocal3 : public OpCode {
11842 	public:
11843 		OpGetLocal3();
11844 		virtual ~OpGetLocal3();
11845 
11846 		virtual bool parse( Reader *r, int end, Context *ctx );
11847 		virtual void dump( int indent, Context *ctx );
11848 		virtual size_t calcSize( Context *ctx, int start_at );
11849 		virtual void write( Writer *w, Context *ctx );
11850 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11851 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11852 
11853 		static OpGetLocal3* get( Reader *r, int end, Context *ctx );
11854 		static OpGetLocal3* getByName( const char *name );
11855 
11856 
11857 
11858 	protected:
11859 
11860 			static int id;
11861 
11862 };
11863 
11864 class OpSetLocal0 : public OpCode {
11865 	public:
11866 		OpSetLocal0();
11867 		virtual ~OpSetLocal0();
11868 
11869 		virtual bool parse( Reader *r, int end, Context *ctx );
11870 		virtual void dump( int indent, Context *ctx );
11871 		virtual size_t calcSize( Context *ctx, int start_at );
11872 		virtual void write( Writer *w, Context *ctx );
11873 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11874 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11875 
11876 		static OpSetLocal0* get( Reader *r, int end, Context *ctx );
11877 		static OpSetLocal0* getByName( const char *name );
11878 
11879 
11880 
11881 	protected:
11882 
11883 			static int id;
11884 
11885 };
11886 
11887 class OpSetLocal1 : public OpCode {
11888 	public:
11889 		OpSetLocal1();
11890 		virtual ~OpSetLocal1();
11891 
11892 		virtual bool parse( Reader *r, int end, Context *ctx );
11893 		virtual void dump( int indent, Context *ctx );
11894 		virtual size_t calcSize( Context *ctx, int start_at );
11895 		virtual void write( Writer *w, Context *ctx );
11896 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11897 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11898 
11899 		static OpSetLocal1* get( Reader *r, int end, Context *ctx );
11900 		static OpSetLocal1* getByName( const char *name );
11901 
11902 
11903 
11904 	protected:
11905 
11906 			static int id;
11907 
11908 };
11909 
11910 class OpSetLocal2 : public OpCode {
11911 	public:
11912 		OpSetLocal2();
11913 		virtual ~OpSetLocal2();
11914 
11915 		virtual bool parse( Reader *r, int end, Context *ctx );
11916 		virtual void dump( int indent, Context *ctx );
11917 		virtual size_t calcSize( Context *ctx, int start_at );
11918 		virtual void write( Writer *w, Context *ctx );
11919 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11920 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11921 
11922 		static OpSetLocal2* get( Reader *r, int end, Context *ctx );
11923 		static OpSetLocal2* getByName( const char *name );
11924 
11925 
11926 
11927 	protected:
11928 
11929 			static int id;
11930 
11931 };
11932 
11933 class OpSetLocal3 : public OpCode {
11934 	public:
11935 		OpSetLocal3();
11936 		virtual ~OpSetLocal3();
11937 
11938 		virtual bool parse( Reader *r, int end, Context *ctx );
11939 		virtual void dump( int indent, Context *ctx );
11940 		virtual size_t calcSize( Context *ctx, int start_at );
11941 		virtual void write( Writer *w, Context *ctx );
11942 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11943 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11944 
11945 		static OpSetLocal3* get( Reader *r, int end, Context *ctx );
11946 		static OpSetLocal3* getByName( const char *name );
11947 
11948 
11949 
11950 	protected:
11951 
11952 			static int id;
11953 
11954 };
11955 
11956 class OpDebugReg : public OpCode {
11957 	public:
11958 		OpDebugReg();
11959 		virtual ~OpDebugReg();
11960 
11961 		virtual bool parse( Reader *r, int end, Context *ctx );
11962 		virtual void dump( int indent, Context *ctx );
11963 		virtual size_t calcSize( Context *ctx, int start_at );
11964 		virtual void write( Writer *w, Context *ctx );
11965 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
11966 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
11967 
11968 		static OpDebugReg* get( Reader *r, int end, Context *ctx );
11969 		static OpDebugReg* getByName( const char *name );
11970 
11971 		std::uint8_t getunknown();
11972 			void setunknown( std::uint8_t );
11973 	std::uint32_t getname();
11974 			void setname( std::uint32_t );
11975 	std::uint32_t getreg();
11976 			void setreg( std::uint32_t );
11977 	std::uint32_t getline();
11978 			void setline( std::uint32_t );
11979 
11980 
11981 	protected:
11982 		std::uint8_t unknown; // byte
11983 std::uint32_t name; // u30
11984 std::uint32_t reg; // u30
11985 std::uint32_t line; // u30
11986 
11987 			static int id;
11988 
11989 };
11990 
11991 class OpDebugLine : public OpCode {
11992 	public:
11993 		OpDebugLine();
11994 		virtual ~OpDebugLine();
11995 
11996 		virtual bool parse( Reader *r, int end, Context *ctx );
11997 		virtual void dump( int indent, Context *ctx );
11998 		virtual size_t calcSize( Context *ctx, int start_at );
11999 		virtual void write( Writer *w, Context *ctx );
12000 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
12001 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
12002 
12003 		static OpDebugLine* get( Reader *r, int end, Context *ctx );
12004 		static OpDebugLine* getByName( const char *name );
12005 
12006 		std::uint32_t getline();
12007 			void setline( std::uint32_t );
12008 
12009 
12010 	protected:
12011 		std::uint32_t line; // u30
12012 
12013 			static int id;
12014 
12015 };
12016 
12017 class OpDebugFile : public OpCode {
12018 	public:
12019 		OpDebugFile();
12020 		virtual ~OpDebugFile();
12021 
12022 		virtual bool parse( Reader *r, int end, Context *ctx );
12023 		virtual void dump( int indent, Context *ctx );
12024 		virtual size_t calcSize( Context *ctx, int start_at );
12025 		virtual void write( Writer *w, Context *ctx );
12026 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
12027 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
12028 
12029 		static OpDebugFile* get( Reader *r, int end, Context *ctx );
12030 		static OpDebugFile* getByName( const char *name );
12031 
12032 		std::uint32_t getfile();
12033 			void setfile( std::uint32_t );
12034 
12035 
12036 	protected:
12037 		std::uint32_t file; // u30
12038 
12039 			static int id;
12040 
12041 };
12042 
12043 class OpBkPtLine : public OpCode {
12044 	public:
12045 		OpBkPtLine();
12046 		virtual ~OpBkPtLine();
12047 
12048 		virtual bool parse( Reader *r, int end, Context *ctx );
12049 		virtual void dump( int indent, Context *ctx );
12050 		virtual size_t calcSize( Context *ctx, int start_at );
12051 		virtual void write( Writer *w, Context *ctx );
12052 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
12053 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
12054 
12055 		static OpBkPtLine* get( Reader *r, int end, Context *ctx );
12056 		static OpBkPtLine* getByName( const char *name );
12057 
12058 		std::uint32_t getline();
12059 			void setline( std::uint32_t );
12060 
12061 
12062 	protected:
12063 		std::uint32_t line; // u30
12064 
12065 			static int id;
12066 
12067 };
12068 
12069 class OpTimestamp : public OpCode {
12070 	public:
12071 		OpTimestamp();
12072 		virtual ~OpTimestamp();
12073 
12074 		virtual bool parse( Reader *r, int end, Context *ctx );
12075 		virtual void dump( int indent, Context *ctx );
12076 		virtual size_t calcSize( Context *ctx, int start_at );
12077 		virtual void write( Writer *w, Context *ctx );
12078 		virtual void writeXML( xmlNodePtr xml, Context *ctx );
12079 		virtual void parseXML( xmlNodePtr xml, Context *ctx );
12080 
12081 		static OpTimestamp* get( Reader *r, int end, Context *ctx );
12082 		static OpTimestamp* getByName( const char *name );
12083 
12084 
12085 
12086 	protected:
12087 
12088 			static int id;
12089 
12090 };
12091 
12092 
12093 }
12094 #endif
12095