(module $h264_dec.wasm (type (;0;) (func (param i32 i32))) (type (;1;) (func)) (type (;2;) (func (param i32))) (type (;3;) (func (result i32))) (import "__pragma" "loopbound" (func $__pragma_loopbound (type 0))) (func $__wasm_apply_data_relocs (type 1)) (func $h264_dec_init (type 1) (local i32 i32 i32 i32) global.get $__stack_pointer i32.const 16 i32.sub local.tee 0 global.set $__stack_pointer local.get 0 i32.const 0 i32.store8 offset=15 i32.const 8450 i32.const 8450 call $__pragma_loopbound i32.const -8450 local.set 1 loop ;; label = @1 i32.const 16672 local.get 1 i32.add local.tee 2 i32.const 8450 i32.add local.tee 3 local.get 3 i32.load8_u local.get 0 i32.load8_u offset=15 i32.xor i32.store8 local.get 2 i32.const 8451 i32.add local.tee 2 local.get 2 i32.load8_u local.get 0 i32.load8_u offset=15 i32.xor i32.store8 local.get 1 i32.const 2 i32.add local.tee 1 br_if 0 (;@1;) end i32.const 4050 i32.const 4050 call $__pragma_loopbound i32.const -8100 local.set 2 loop ;; label = @1 i32.const 1024 local.get 2 i32.add local.tee 1 i32.const 8100 i32.add local.tee 3 local.get 3 i32.load8_u local.get 0 i32.load8_u offset=15 i32.xor i32.store8 local.get 1 i32.const 8101 i32.add local.tee 3 local.get 3 i32.load8_u local.get 0 i32.load8_u offset=15 i32.xor i32.store8 local.get 1 i32.const 8102 i32.add local.tee 3 local.get 3 i32.load8_u local.get 0 i32.load8_u offset=15 i32.xor i32.store8 local.get 1 i32.const 8103 i32.add local.tee 1 local.get 1 i32.load8_u local.get 0 i32.load8_u offset=15 i32.xor i32.store8 local.get 2 i32.const 4 i32.add local.tee 2 br_if 0 (;@1;) end i32.const 256 i32.const 256 call $__pragma_loopbound i32.const -1024 local.set 2 loop ;; label = @1 i32.const 25136 local.get 2 i32.add local.tee 1 i32.const 1024 i32.add local.tee 3 local.get 3 i32.load8_u local.get 0 i32.load8_u offset=15 i32.xor i32.store8 local.get 1 i32.const 1025 i32.add local.tee 3 local.get 3 i32.load8_u local.get 0 i32.load8_u offset=15 i32.xor i32.store8 local.get 1 i32.const 1026 i32.add local.tee 3 local.get 3 i32.load8_u local.get 0 i32.load8_u offset=15 i32.xor i32.store8 local.get 1 i32.const 1027 i32.add local.tee 1 local.get 1 i32.load8_u local.get 0 i32.load8_u offset=15 i32.xor i32.store8 local.get 2 i32.const 4 i32.add local.tee 2 br_if 0 (;@1;) end i32.const 0 i64.const 34359738376 i64.store offset=16660 align=4 i32.const 0 i32.const 256 i32.store offset=16128 i32.const 0 i64.const 8589934592 i64.store offset=16652 align=4 i32.const 0 i64.const 1099511628128 i64.store offset=16120 align=4 i32.const 0 i64.const 4294967297 i64.store offset=16112 align=4 i32.const 0 i64.const 0 i64.store offset=16644 align=4 local.get 0 i32.const 16 i32.add global.set $__stack_pointer) (func $h264_dec_decode_one_macroblock (type 2) (param i32) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) local.get 0 i32.load offset=552 local.set 1 local.get 0 i32.load offset=548 local.set 2 i32.const 2 i32.const 2 call $__pragma_loopbound i32.const 64 local.get 1 i32.div_s local.tee 3 i32.const 64 local.get 2 i32.div_s local.tee 4 i32.mul local.tee 5 i32.const 1 i32.shr_s local.set 6 local.get 3 i32.const -1 i32.add local.set 7 local.get 4 i32.const -1 i32.add local.set 8 i32.const 1 local.set 9 i32.const 0 local.set 1 loop ;; label = @1 i32.const 1 i32.const 1 call $__pragma_loopbound block ;; label = @2 local.get 0 i32.load offset=544 i32.const 2 i32.lt_s br_if 0 (;@2;) i32.const 0 local.set 10 i32.const 1024 local.get 1 i32.const 4050 i32.mul i32.add local.set 11 local.get 1 i32.const 3456 i32.mul i32.const 9200 i32.add local.set 12 loop ;; label = @3 i32.const 4 i32.const 4 call $__pragma_loopbound i32.const 0 local.set 13 loop ;; label = @4 local.get 0 i32.load offset=12 local.set 14 local.get 0 i32.load offset=16 local.set 15 i32.const 4 i32.const 4 call $__pragma_loopbound local.get 4 local.get 15 i32.mul local.set 16 local.get 4 local.get 15 i32.const 1 i32.add local.tee 17 i32.mul i32.const -1 i32.add local.set 18 i32.const 0 local.set 19 loop ;; label = @5 local.get 0 i32.load offset=552 local.set 1 i32.const 4 i32.const 4 call $__pragma_loopbound local.get 19 local.get 14 i32.add local.tee 2 local.get 1 i32.const 4 i32.div_s i32.div_s i32.const 64 i32.rem_s local.set 1 block ;; label = @6 local.get 0 i32.load offset=540 br_if 0 (;@6;) local.get 2 local.get 3 i32.mul local.set 20 i32.const 0 local.set 2 i32.const 16672 local.get 1 i32.const 130 i32.mul i32.add local.set 21 local.get 15 local.set 22 i32.const 0 local.set 1 i32.const 0 local.set 23 loop ;; label = @7 block ;; label = @8 local.get 23 br_if 0 (;@8;) local.get 19 local.get 1 i32.add i32.const 9136 i32.add local.get 16 local.get 2 i32.add local.get 21 local.get 22 local.get 0 i32.load offset=548 i32.const 4 i32.div_s i32.div_s i32.const 64 i32.rem_s i32.const 1 i32.shl i32.add local.tee 24 i32.load8_s local.tee 25 i32.add local.tee 26 local.get 8 i32.and local.tee 23 local.get 11 local.get 20 local.get 24 i32.load8_s offset=1 i32.add local.tee 24 local.get 3 i32.div_s local.tee 27 i32.const 287 local.get 27 i32.const 287 i32.lt_s select local.tee 27 i32.const 0 local.get 27 i32.const 0 i32.gt_s select i32.const 45 i32.rem_u i32.const 90 i32.mul i32.add local.tee 27 local.get 18 local.get 2 i32.add local.get 25 i32.add local.get 4 i32.div_s local.tee 28 local.get 0 i32.load offset=8 local.tee 25 i32.const -1 i32.add local.tee 29 local.get 28 local.get 25 i32.lt_s select local.tee 28 i32.const 0 local.get 28 i32.const 0 i32.gt_s select i32.const 45 i32.rem_u i32.const 1 i32.shl local.tee 28 i32.add i32.load16_s i32.mul local.get 4 local.get 23 i32.sub local.tee 30 local.get 27 local.get 26 local.get 4 i32.div_s local.tee 26 local.get 29 local.get 26 local.get 25 i32.lt_s select local.tee 25 i32.const 0 local.get 25 i32.const 0 i32.gt_s select i32.const 45 i32.rem_u i32.const 1 i32.shl local.tee 25 i32.add i32.load16_s i32.mul i32.add local.get 3 local.get 24 local.get 7 i32.and local.tee 26 i32.sub i32.mul local.get 6 i32.add local.get 23 local.get 11 local.get 24 local.get 7 i32.add local.get 3 i32.div_s local.tee 24 i32.const 287 local.get 24 i32.const 287 i32.lt_s select local.tee 24 i32.const 0 local.get 24 i32.const 0 i32.gt_s select i32.const 45 i32.rem_u i32.const 90 i32.mul i32.add local.tee 24 local.get 28 i32.add i32.load16_s i32.mul local.get 30 local.get 24 local.get 25 i32.add i32.load16_s i32.mul i32.add local.get 26 i32.mul i32.add local.get 5 i32.div_s i32.store8 end local.get 1 i32.const 21 i32.eq br_if 1 (;@6;) local.get 22 i32.const 1 i32.add local.set 22 local.get 2 local.get 4 i32.add local.set 2 local.get 1 i32.const 7 i32.add local.set 1 local.get 0 i32.load offset=540 local.set 23 br 0 (;@7;) end end local.get 19 i32.const 1 i32.add local.tee 19 i32.const 4 i32.ne br_if 0 (;@5;) end i32.const 4 i32.const 4 call $__pragma_loopbound i32.const 4 i32.const 4 call $__pragma_loopbound local.get 12 local.get 14 i32.const 64 i32.rem_s i32.const 54 i32.mul i32.add local.tee 1 local.get 15 i32.const 54 i32.rem_s local.tee 2 i32.add i32.const 0 i32.load offset=25136 i32.store8 local.get 12 local.get 14 i32.const 1 i32.add i32.const 64 i32.rem_s i32.const 54 i32.mul i32.add local.tee 22 local.get 2 i32.add i32.const 25136 i32.load offset=4 i32.store8 local.get 12 local.get 14 i32.const 2 i32.add i32.const 64 i32.rem_s i32.const 54 i32.mul i32.add local.tee 23 local.get 2 i32.add i32.const 25136 i32.load offset=8 i32.store8 local.get 12 local.get 14 i32.const 3 i32.add i32.const 64 i32.rem_s i32.const 54 i32.mul i32.add local.tee 24 local.get 2 i32.add i32.const 25136 i32.load offset=12 i32.store8 i32.const 4 i32.const 4 call $__pragma_loopbound local.get 1 local.get 17 i32.const 54 i32.rem_s local.tee 2 i32.add i32.const 25136 i32.load offset=64 i32.store8 local.get 22 local.get 2 i32.add i32.const 25136 i32.load offset=68 i32.store8 local.get 23 local.get 2 i32.add i32.const 25136 i32.load offset=72 i32.store8 local.get 24 local.get 2 i32.add i32.const 25136 i32.load offset=76 i32.store8 i32.const 4 i32.const 4 call $__pragma_loopbound local.get 1 local.get 15 i32.const 2 i32.add i32.const 54 i32.rem_s local.tee 2 i32.add i32.const 25136 i32.load offset=128 i32.store8 local.get 22 local.get 2 i32.add i32.const 25136 i32.load offset=132 i32.store8 local.get 23 local.get 2 i32.add i32.const 25136 i32.load offset=136 i32.store8 local.get 24 local.get 2 i32.add i32.const 25136 i32.load offset=140 i32.store8 i32.const 4 i32.const 4 call $__pragma_loopbound local.get 1 local.get 15 i32.const 3 i32.add i32.const 54 i32.rem_s local.tee 2 i32.add i32.const 25136 i32.load offset=192 i32.store8 local.get 22 local.get 2 i32.add i32.const 25136 i32.load offset=196 i32.store8 local.get 23 local.get 2 i32.add i32.const 25136 i32.load offset=200 i32.store8 local.get 24 local.get 2 i32.add i32.const 25136 i32.load offset=204 i32.store8 local.get 13 i32.const 1 i32.add local.tee 13 i32.const 4 i32.ne br_if 0 (;@4;) end local.get 10 i32.const 1 i32.add local.tee 10 local.get 0 i32.load offset=544 i32.const 2 i32.div_s i32.lt_s br_if 0 (;@3;) end end i32.const 1 local.set 1 local.get 9 i32.const 1 i32.and local.set 2 i32.const 0 local.set 9 local.get 2 br_if 0 (;@1;) end) (func $h264_dec_main (type 1) i32.const 16112 call $h264_dec_decode_one_macroblock) (func $__original_main (type 3) (result i32) call $h264_dec_init call $h264_dec_main i32.const 0 i32.load8_s offset=9200 i32.const 0 i32.load8_s offset=9136 i32.add i32.const -128 i32.ne) (table (;0;) 1 1 funcref) (memory (;0;) 1) (global $__stack_pointer (mut i32) (i32.const 30256)) (global (;1;) i32 (i32.const 26160)) (global (;2;) i32 (i32.const 30256)) (export "memory" (memory 0)) (export "__wasm_apply_data_relocs" (func $__wasm_apply_data_relocs)) (export "entrypoint" (func $h264_dec_main)) (export "main" (func $__original_main)) (export "__data_end" (global 1)) (export "__heap_base" (global 2)) (data $.data (i32.const 1024) "{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00}\00~\00~\00~\00~\00~\00~\00~\00}\00{\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00x\00x\00x\00w\00w\00w\00w\00w\00w\00w\00x\00y\00y\00y\00y\00y\00y\00y\00y\00x\00x\00x\00z\00z\00|\00|\00|\00{\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\80\00\7f\00\82\00\87\00\89\00\8b\00\8c\00\8c\00\8c\00\8c\00\8c\00\8c\00\8d\00\8e\00\8f\00\8f\00\8f\00\8f\00\8f\00\8f\00\8f\00\8e\00\8e\00\8e\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00x\00x\00x\00w\00w\00w\00w\00w\00w\00w\00x\00y\00y\00y\00y\00y\00y\00y\00y\00x\00x\00x\00z\00z\00|\00|\00|\00{\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\80\00\7f\00\82\00\87\00\89\00\8b\00\8c\00\8c\00\8c\00\8c\00\8c\00\8c\00\8d\00\8e\00\8f\00\8f\00\8f\00\8f\00\8f\00\8f\00\8f\00\8e\00\8e\00\8e\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00x\00x\00x\00w\00w\00w\00w\00w\00w\00w\00x\00y\00y\00y\00y\00y\00y\00y\00y\00x\00x\00x\00z\00z\00|\00|\00|\00{\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\80\00\7f\00\82\00\87\00\89\00\8b\00\8c\00\8c\00\8c\00\8c\00\8c\00\8c\00\8d\00\8e\00\8f\00\8f\00\8f\00\8f\00\8f\00\8f\00\8f\00\8e\00\8e\00\8e\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00|\00|\00|\00|\00|\00|\00|\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00|\00|\00|\00|\00|\00|\00|\00{\00{\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00x\00x\00x\00w\00v\00v\00v\00v\00v\00v\00w\00x\00x\00x\00x\00x\00x\00x\00x\00x\00w\00w\00y\00y\00{\00{\00{\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\80\00\80\00\82\00\86\00\88\00\8a\00\8b\00\8b\00\8b\00\8b\00\8b\00\8b\00\8c\00\8e\00\8f\00\8f\00\8f\00\8e\00\8e\00\8e\00\8e\00\8e\00\8e\00\8e\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00|\00|\00|\00|\00|\00|\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00|\00|\00|\00|\00|\00|\00|\00|\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00x\00x\00w\00v\00v\00v\00v\00v\00v\00v\00v\00w\00x\00x\00x\00x\00x\00x\00x\00w\00w\00w\00y\00y\00{\00{\00{\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00}\00|\00{\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\81\00\80\00\83\00\86\00\88\00\8a\00\8b\00\8b\00\8b\00\8b\00\8b\00\8b\00\8c\00\8e\00\8f\00\8f\00\8e\00\8d\00\8c\00\8c\00\8d\00\8e\00\8e\00\8e\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00}\00|\00|\00|\00|\00|\00|\00|\00{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00{\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00x\00x\00w\00v\00u\00u\00u\00u\00u\00u\00v\00w\00w\00w\00w\00w\00w\00w\00w\00v\00v\00v\00x\00x\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\81\00\81\00\83\00\85\00\87\00\89\00\8a\00\8a\00\8a\00\8a\00\8a\00\8a\00\8b\00\8e\00\8f\00\8f\00\8e\00\8c\00\8b\00\8b\00\8c\00\8d\00\8e\00\8e\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00}\00|\00|\00|\00|\00|\00|\00|\00{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00{\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00x\00x\00w\00v\00u\00u\00u\00u\00u\00u\00v\00w\00w\00w\00w\00w\00w\00w\00w\00v\00v\00v\00x\00x\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\81\00\81\00\83\00\85\00\87\00\89\00\8a\00\8a\00\8a\00\8a\00\8a\00\8a\00\8b\00\8e\00\8f\00\8f\00\8e\00\8c\00\8b\00\8b\00\8c\00\8d\00\8e\00\8e\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00}\00|\00|\00|\00|\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00|\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00z\00y\00y\00x\00x\00w\00w\00v\00u\00t\00t\00u\00u\00u\00u\00v\00w\00w\00w\00w\00w\00w\00w\00w\00w\00w\00w\00x\00x\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\81\00\81\00\83\00\84\00\86\00\89\00\8a\00\8a\00\8a\00\8a\00\8a\00\8a\00\8b\00\8e\00\8e\00\8e\00\8d\00\8c\00\8b\00\8b\00\8c\00\8d\00\8d\00\8d\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00{\00{\00y\00y\00z\00{\00{\00{\00{\00{\00{\00{\00{\00{\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00y\00w\00w\00v\00v\00u\00u\00t\00t\00s\00s\00t\00t\00u\00u\00v\00w\00w\00x\00x\00x\00x\00x\00x\00x\00x\00x\00x\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00{\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00|\00{\00{\00z\00z\00y\00x\00x\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\80\00\80\00\80\00\81\00\81\00\82\00\83\00\85\00\88\00\89\00\89\00\8a\00\8a\00\8b\00\8b\00\8c\00\8d\00\8d\00\8d\00\8c\00\8c\00\8b\00\8b\00\8b\00\8c\00\8c\00\8c\00\8c\00\8c\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\85\00\84\00\84\00\85\00\85\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00{\00z\00x\00x\00y\00z\00{\00{\00{\00{\00{\00{\00{\00z\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00x\00v\00v\00u\00u\00t\00t\00s\00s\00r\00r\00s\00t\00u\00u\00v\00w\00w\00x\00x\00x\00x\00x\00x\00x\00x\00x\00x\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00z\00z\00z\00{\00|\00|\00|\00|\00{\00{\00{\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00|\00{\00{\00z\00z\00y\00x\00x\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\80\00\80\00\80\00\81\00\81\00\82\00\82\00\84\00\87\00\88\00\89\00\8a\00\8a\00\8b\00\8b\00\8b\00\8c\00\8c\00\8c\00\8b\00\8b\00\8a\00\8a\00\8a\00\8b\00\8b\00\8b\00\8b\00\8b\00\8b\00\8b\00\8b\00\8a\00\89\00\88\00\88\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\85\00\84\00\83\00\83\00\84\00\84\00\85\00\85\00\85\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00{\00z\00x\00x\00y\00z\00{\00{\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00x\00v\00u\00u\00t\00t\00s\00s\00r\00r\00r\00s\00t\00u\00u\00v\00w\00x\00x\00x\00x\00y\00y\00y\00x\00x\00x\00x\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00z\00z\00z\00{\00|\00|\00|\00|\00{\00{\00{\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00|\00{\00{\00z\00z\00y\00x\00x\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\80\00\80\00\80\00\81\00\81\00\82\00\82\00\84\00\87\00\88\00\88\00\89\00\8a\00\8b\00\8b\00\8b\00\8c\00\8c\00\8c\00\8b\00\8b\00\8a\00\8a\00\8a\00\8b\00\8b\00\8b\00\8b\00\8b\00\8b\00\8b\00\8a\00\89\00\88\00\87\00\87\00\86\00\86\00\85\00\85\00\85\00\85\00\86\00\86\00\86\00\86\00\86\00\86\00\85\00\85\00\85\00\85\00\85\00\85\00\85\00\85\00\84\00\83\00\83\00\84\00\84\00\85\00\84\00\84\00\85\00\85\00\85\00\85\00\85\00\85\00\85\00\85\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00|\00|\00{\00y\00x\00x\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00{\00{\00z\00v\00t\00t\00s\00s\00r\00r\00r\00r\00r\00s\00t\00u\00u\00u\00v\00x\00y\00y\00y\00y\00y\00y\00y\00y\00x\00x\00x\00y\00y\00y\00z\00z\00y\00y\00y\00z\00z\00z\00z\00y\00y\00y\00y\00z\00z\00z\00{\00|\00|\00|\00|\00{\00{\00{\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00|\00|\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00"))