From 76d1ee607608f6ff17cd9e93a997fb7a67618664 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Tue, 8 Sep 2026 11:02:37 +0800 Subject: [PATCH] =?UTF-8?q?fix(compiler,peephole):=20TPC=20=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E9=93=BE=E8=A7=A3=E6=9E=90=E4=B8=8E=E7=AA=A5=E5=AD=94?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E7=98=A6=E8=BA=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - TPC(lib/core): 任意级属性链按链前向类解析恢复 stub 退化字段; cast 局部 rowptr[X] 登记回填; 通用指针槽按静态类名 bitcast 兜底; 赋值 RHS 求值失败 fail-fast 防未初始化变量; 报错行按源码文本锚定并附 ATTR-DIAG 现场 - 窥孔(includes/llvmlite/__function.vp): 成员访问单级链模式; 窥孔移至 Renumber 前使 SSA 编号连续; T3 no-op bitcast 消除; 替换缓冲按最坏上界分配 - __builder/__module/string.vp 配套; 清理 Test 构建产物与 PROF 杂项 --- .gitignore | 5 +- PROF/main_prof_42752.prof | Bin 287857 -> 0 bytes PROF/main_time.txt | 2 +- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- .../.tpv_build/temp/_sha1_map.txt | 11 +- .../.tpv_build/temp/aa/aa246c6e6aa30484.vpi | 22 - .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- Test/DictTest/.tpv_build/temp/_sha1_map.txt | 16 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- Test/EqTest/.tpv_build/temp/_sha1_map.txt | 6 +- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- .../Extern2Test/.tpv_build/temp/_sha1_map.txt | 6 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- .../.tpv_build/temp/_sha1_map.txt | 6 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- .../.tpv_build/temp/75/750067fc4b20699b.vpi | 5 - Test/G3/.tpv_build/temp/_sha1_map.txt | 9 +- .../temp/a5/a5e9a83e9db303ad.deps.txt | 1 - .../.tpv_build/temp/a5/a5e9a83e9db303ad.vpi | 64 --- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- Test/G6/.tpv_build/temp/_sha1_map.txt | 6 +- .../.tpv_build/temp/aa/aa246c6e6aa30484.vpi | 6 - .../.tpv_build/temp/c3/c3df2c1540dfb432.vpi | 6 - .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- .../GenericTest/.tpv_build/temp/_sha1_map.txt | 6 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- .../.tpv_build/temp/_sha1_map.txt | 6 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../.tpv_build/temp/42/42e09c6149524d9d.vpi | 10 - .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- .../.tpv_build/temp/_sha1_map.txt | 6 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- Test/IterTest/.tpv_build/temp/_sha1_map.txt | 6 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../output_orig/01edd522de5aabb2.deps.json | 1 + .../output_orig/09c0472e6fd0d088.deps.json | 1 + .../output_orig/1819d836dcee9afa.deps.json | 1 + .../output_orig/23899f9254639ba7.deps.json | 1 + .../output_orig/2c175afd85852faf.deps.json | 1 + .../output_orig/4a42e6e4a0818b1e.deps.json | 1 + .../output_orig/8e92345fd262a343.deps.json | 1 + .../output_orig/8f4a288d50172739.deps.json | 1 + .../output_orig/95a546a38b5b6316.deps.json | 1 + .../output_orig/989dba6e92235032.deps.json | 1 + .../output_orig/_shared_sym_includes.pickle | Bin 0 -> 1091099 bytes .../output_orig/aa246c6e6aa30484.deps.json | 1 + .../output_orig/b6945d3375680910.deps.json | 1 + .../output_orig/cf900a640e6eeff3.deps.json | 1 + .../output_orig/db613a1bd6a3ca26.deps.json | 1 + .../output_orig/e710417730391023.deps.json | 1 + .../output_verify/01edd522de5aabb2.deps.json | 1 + .../output_verify/09c0472e6fd0d088.deps.json | 1 + .../output_verify/1819d836dcee9afa.deps.json | 1 + .../output_verify/23899f9254639ba7.deps.json | 1 + .../output_verify/2c175afd85852faf.deps.json | 1 + .../output_verify/4a42e6e4a0818b1e.deps.json | 1 + .../output_verify/8e92345fd262a343.deps.json | 1 + .../output_verify/8f4a288d50172739.deps.json | 1 + .../output_verify/95a546a38b5b6316.deps.json | 1 + .../output_verify/989dba6e92235032.deps.json | 1 + .../output_verify/_shared_sym_includes.pickle | Bin 0 -> 1091099 bytes .../output_verify/aa246c6e6aa30484.deps.json | 1 + .../output_verify/b6945d3375680910.deps.json | 1 + .../output_verify/cf900a640e6eeff3.deps.json | 1 + .../output_verify/db613a1bd6a3ca26.deps.json | 1 + .../output_verify/e710417730391023.deps.json | 1 + Test/LLvmLiteTest/temp/_phase1_manifest.json | 2 +- Test/LLvmLiteTest/temp/_sha1_map.txt | 38 +- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- Test/ListTest/.tpv_build/temp/_sha1_map.txt | 10 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- Test/LoopTest/.tpv_build/temp/_sha1_map.txt | 6 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- Test/MemhubTest/.tpv_build/temp/_sha1_map.txt | 10 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- .../PointerTest/.tpv_build/temp/_sha1_map.txt | 8 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../.tpv_build/temp/_sha1_map.txt | 6 +- .../.tpv_build/temp/_sha1_map.txt | 27 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../temp/285b6aa29a34754d.stub.ll.dep | 0 Test/SlotsBugTest/temp/285b6aa29a34754d.vpi | 23 - .../temp/44bd5632a417f7ac.doc.json | 1 - Test/SlotsBugTest/temp/44bd5632a417f7ac.vpi | 19 - .../temp/6c658cc728d0bbf4.stub.ll.dep | 1 - Test/SlotsBugTest/temp/6c658cc728d0bbf4.vpi | 22 - .../temp/71e0a3ffcb3ebfad.stub.ll.dep | 0 Test/SlotsBugTest/temp/71e0a3ffcb3ebfad.vpi | 20 - Test/SlotsBugTest/temp/_phase1_manifest.json | 1 - Test/SlotsBugTest/temp/_sha1_map.txt | 19 - .../temp/aa246c6e6aa30484.stub.ll.dep | 0 Test/SlotsBugTest/temp/aa246c6e6aa30484.vpi | 26 -- .../temp/f5522571bcce7bcb.stub.ll.dep | 0 Test/SlotsBugTest/temp/f5522571bcce7bcb.vpi | 100 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- .../SprintfTest/.tpv_build/temp/_sha1_map.txt | 8 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- .../.tpv_build/temp/_sha1_map.txt | 8 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- Test/StringTest/.tpv_build/temp/_sha1_map.txt | 6 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- Test/StructTest/.tpv_build/temp/_sha1_map.txt | 6 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../.tpv_build/temp/_sha1_map.txt | 9 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- .../VRandomTest/.tpv_build/temp/_sha1_map.txt | 6 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../.tpv_build/temp/74/748d0424e8976fa0.vpi | 27 -- .../.tpv_build/temp/_sha1_map.txt | 8 +- .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 ----- includes/llvmlite/__builder.vp | 8 +- includes/llvmlite/__function.vp | 384 ++++++++++++++++- includes/llvmlite/__module.vp | 3 +- includes/string.vp | 2 +- lib/core/Handles/HandlesAnnAssign.py | 62 +++ lib/core/Handles/HandlesAssign.py | 18 +- lib/core/Handles/HandlesBase.py | 118 ++++++ lib/core/Handles/HandlesExprAttr.py | 397 ++++++++++++++++-- 173 files changed, 1104 insertions(+), 3090 deletions(-) delete mode 100644 PROF/main_prof_42752.prof delete mode 100644 Test/ArgparseTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/ArgparseTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/ArgparseTest/.tpv_build/temp/aa/aa246c6e6aa30484.vpi delete mode 100644 Test/ArgparseTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/ArgparseTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/DictTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/DictTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/DictTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/DictTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/Extern2Test/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/Extern2Test/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/Extern2Test/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/Extern2Test/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/FormatStringTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/FormatStringTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/FormatStringTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/FormatStringTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/G3/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/G3/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/G3/.tpv_build/temp/a5/a5e9a83e9db303ad.deps.txt delete mode 100644 Test/G3/.tpv_build/temp/a5/a5e9a83e9db303ad.vpi delete mode 100644 Test/G3/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/G3/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/G6/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/G6/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/G6/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/G6/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/GenericTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/GenericTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/GenericTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/GenericTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/GenericTest3/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/GenericTest3/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/GenericTest3/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/GenericTest3/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/GenericTest4/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/GenericTest4/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/GenericTest4/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/GenericTest4/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/IterTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/IterTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/IterTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/IterTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi create mode 100644 Test/LLvmLiteTest/output_orig/01edd522de5aabb2.deps.json create mode 100644 Test/LLvmLiteTest/output_orig/09c0472e6fd0d088.deps.json create mode 100644 Test/LLvmLiteTest/output_orig/1819d836dcee9afa.deps.json create mode 100644 Test/LLvmLiteTest/output_orig/23899f9254639ba7.deps.json create mode 100644 Test/LLvmLiteTest/output_orig/2c175afd85852faf.deps.json create mode 100644 Test/LLvmLiteTest/output_orig/4a42e6e4a0818b1e.deps.json create mode 100644 Test/LLvmLiteTest/output_orig/8e92345fd262a343.deps.json create mode 100644 Test/LLvmLiteTest/output_orig/8f4a288d50172739.deps.json create mode 100644 Test/LLvmLiteTest/output_orig/95a546a38b5b6316.deps.json create mode 100644 Test/LLvmLiteTest/output_orig/989dba6e92235032.deps.json create mode 100644 Test/LLvmLiteTest/output_orig/_shared_sym_includes.pickle create mode 100644 Test/LLvmLiteTest/output_orig/aa246c6e6aa30484.deps.json create mode 100644 Test/LLvmLiteTest/output_orig/b6945d3375680910.deps.json create mode 100644 Test/LLvmLiteTest/output_orig/cf900a640e6eeff3.deps.json create mode 100644 Test/LLvmLiteTest/output_orig/db613a1bd6a3ca26.deps.json create mode 100644 Test/LLvmLiteTest/output_orig/e710417730391023.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/01edd522de5aabb2.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/09c0472e6fd0d088.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/1819d836dcee9afa.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/23899f9254639ba7.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/2c175afd85852faf.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/4a42e6e4a0818b1e.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/8e92345fd262a343.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/8f4a288d50172739.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/95a546a38b5b6316.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/989dba6e92235032.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/_shared_sym_includes.pickle create mode 100644 Test/LLvmLiteTest/output_verify/aa246c6e6aa30484.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/b6945d3375680910.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/cf900a640e6eeff3.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/db613a1bd6a3ca26.deps.json create mode 100644 Test/LLvmLiteTest/output_verify/e710417730391023.deps.json delete mode 100644 Test/ListTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/ListTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/ListTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/ListTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/LoopTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/LoopTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/LoopTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/LoopTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/MemhubTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/MemhubTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/MemhubTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/MemhubTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/PointerTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/PointerTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/PointerTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/PointerTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/SlotsBugTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/SlotsBugTest/temp/285b6aa29a34754d.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/285b6aa29a34754d.vpi delete mode 100644 Test/SlotsBugTest/temp/44bd5632a417f7ac.doc.json delete mode 100644 Test/SlotsBugTest/temp/44bd5632a417f7ac.vpi delete mode 100644 Test/SlotsBugTest/temp/6c658cc728d0bbf4.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/6c658cc728d0bbf4.vpi delete mode 100644 Test/SlotsBugTest/temp/71e0a3ffcb3ebfad.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/71e0a3ffcb3ebfad.vpi delete mode 100644 Test/SlotsBugTest/temp/_phase1_manifest.json delete mode 100644 Test/SlotsBugTest/temp/_sha1_map.txt delete mode 100644 Test/SlotsBugTest/temp/aa246c6e6aa30484.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/aa246c6e6aa30484.vpi delete mode 100644 Test/SlotsBugTest/temp/f5522571bcce7bcb.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/f5522571bcce7bcb.vpi delete mode 100644 Test/SprintfTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/SprintfTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/SprintfTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/SprintfTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/StringIterTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/StringIterTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/StringIterTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/StringIterTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/StringTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/StringTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/StringTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/StringTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/StructTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/StructTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/StructTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/StructTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/TypeCastTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/TypeCastTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/VRandomTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/VRandomTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/VRandomTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/VRandomTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 Test/VariadicTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 Test/VariadicTest/.tpv_build/temp/74/748d0424e8976fa0.vpi delete mode 100644 Test/VariadicTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 Test/VariadicTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi diff --git a/.gitignore b/.gitignore index 98f5eb7..0c818bf 100644 --- a/.gitignore +++ b/.gitignore @@ -29,9 +29,10 @@ wheels/ *.dll *.so .transpyc_cache/ +/includes/ includes.binary/ includes.binary_asan/ - +includes/openssl/.openssl_358_C # 调试文件 *.p2c @@ -84,7 +85,7 @@ Undo/vmware/ # VRTE /VRTE/ -/.includes_rowptr_bk/ +/includes_rowptr_bk/ /Venom/ /ViperOS_/ diff --git a/PROF/main_prof_42752.prof b/PROF/main_prof_42752.prof deleted file mode 100644 index 0e5ac1322ece2f95fccbfe7446aaf59bc2ec7e0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287857 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⪚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

6U*LtazHRS!^GgY7vNna|i8-pBbM$6Zau`N5 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

Z%pjBabDG4`%vYxH&CR?Up zR+0AS!WSf?+uDOp@Qq?IpYAM)JCsj4ef#FHN|CPvbwTdP=x5ObMAXtxyESwQtc0uI z_uH2)d30sad;W(FCyMk>n%MZ2dH$Dw?(Gokf;t>l|us!^%UQbcm=8JNJz(mb@4{ zp#c%XoYS+{RPDOvR;0y)i0Zuh$jPZwh6Ftj(xmA<2CrzW?}g<)7gL^E@G+?8fu&(`Y*|4kz5 zWZ%2LExZxJDW9tHkQDuJ}5osKP|l=0Ph0*A}9}0<OXGv%C2AW^&GY| z0TCUoi_#~f9Wn*EM0Ndfa)ZDA$wW^!-(RoS%}mG>8&AXRWqnV5@q2oK$#@xMfP{;+ zHETL<)Yimj;9w-cpOAaW>Q*JsA8&+*#Riz93}FE$dK_-P{=gzETLQ%BWQVDFTG0Z> z{<#;vhXxpzsW9!lcAE;no@@jw&J!Q}v@>-~R8Zf;y=1F+@1CIeFl2+JP zMylm`-}wg)&;lS2gGgH3vqudUADSX;;qO%bdZl+dx5B$x10wsqj@$1pEA#ihHsz5; zkH9~%=#?Iarao8&{m$0ToOmL>nbSNT6R%wr%eL5OQ4Y!7WDY!$<@qBX401+}ii=Mi zo#E)DK~U^QkXmO=dqwx(Z2Hw)+z|+%O>RAU&e?+QkX`F>nqNfB4L$C4`Ktb8K>y7% z;BM-7BHkUg2lO92ww;KDh;eB7PI6Fw7kRUHi?|JLD|AwFQheI2TG4#`xzC1AgE$EY z`K#sgm-1JORX|irfb_+7>I*cVHhkL`+qO@*QMAxSVck|xp2k5#b?Stq z6dDTKDO>ZT9NE(gPrC$oK@f7_i7c|FPp5Z_M05jF;-J)o;Yo?_1Gn1v_bj%nRVirpjYS@71Fxb>EPrt>vD!&Gzv}mhN{Ia7$0rNeHk%Xvp}K z_>oQ`)t~^inTU${^RKimLtaD_Wdpo6=fD$L>c7mjq;W}!w=R>731P;%Ta@YJi7e9} zlFV)CprOvVL5ZpOCpig?rI2J{-X*-=FI7M~oKoEksG zUB~R%bYqKp?I&%655It0lqY}kcp}Ry?-S&-@o91K8ABYBU8e}`jYQPdaWiuLlCN{n z11Jms9rM(VirC?{EcNw+je~0Xzqu$a3p?xtWI`fFlCvaCE>y$!Vi>>d?3z zAdo@IE8#9Q*><=*^Y#_Ye!4|-cm6R6O=f*IxRyQ z`46xV=EM{E%_78agviz8mK9PX3%u70_PI(!Zj7nh65llUj_z>wppEoQ)%2;a+y<=$ z|Hu8GWD=#nYL~_Q0iM3*f0B1ICzd(jl~vsR3h#^s!wR~eS#tV{xd6$D#oTV>#6lHE zU2S#&Esz}<;Gr!*{8+61A#W4xBL!GBJz;Vi?ROCXkPadI=XL0%UsFi!JY?5GJ1l#d)i8TO(hwy;ZeOj%vH#CgGM=t>GoS>> z?W-+_4RQ$8CP3B%%fgqgP+JAa?Q0CG#Fl?m;Xs!HWAUI=fZV>?86c8mMXEKo$g+sL zll6OQ%Pdwf*&{MMYM1Y7mF49~z+Cel2}l@GJ4U;XC7kWmAPTvT3=lVOE8ZMy7p~O; z%zanbChIr5CueVwU%cU9M^a~7z;D`{j`Sd1d}pQ`9R_noncri#d`99Fd`%wrw6#X0aqR-~y{ ykwGvOOi0qH|BspsKxeQ+XDI)bZ+9iaT~+{@6UI t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/ArgparseTest/.tpv_build/temp/_sha1_map.txt b/Test/ArgparseTest/.tpv_build/temp/_sha1_map.txt index 26bbf43..d90a194 100644 --- a/Test/ArgparseTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/ArgparseTest/.tpv_build/temp/_sha1_map.txt @@ -1,15 +1,14 @@ -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp 09c0472e6fd0d088:includes/stdio.vp 989dba6e92235032:includes/stdlib.vp -b8970f3b6886efa6:includes/string.vp -7e4672b992208969:includes/memhub.vp +4a42e6e4a0818b1e:includes/string.vp +1819d836dcee9afa:includes/memhub.vp 104b74146bf17483:includes/argparse.vp -748d0424e8976fa0:includes/testcheck.vp -001947a1f780bd5f:includes/builtins.vp +23899f9254639ba7:includes/testcheck.vp +50b9991a98ff2dd5:includes/builtins.vp aa246c6e6aa30484:includes/atom.vp 2c175afd85852faf:includes/viperio.vp e94ef9e139461915:includes/_list.vp 4c1f8f779b98eab9:includes/hashtable.vp db613a1bd6a3ca26:includes/w32/win32console.vp e710417730391023:includes/w32/win32base.vp -356c943c53331be0:main.vp diff --git a/Test/ArgparseTest/.tpv_build/temp/aa/aa246c6e6aa30484.vpi b/Test/ArgparseTest/.tpv_build/temp/aa/aa246c6e6aa30484.vpi deleted file mode 100644 index 850204b..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/aa/aa246c6e6aa30484.vpi +++ /dev/null @@ -1,22 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - diff --git a/Test/ArgparseTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/ArgparseTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/ArgparseTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/ArgparseTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/DictTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/DictTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/DictTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/DictTest/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/DictTest/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/DictTest/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/DictTest/.tpv_build/temp/_sha1_map.txt b/Test/DictTest/.tpv_build/temp/_sha1_map.txt index de04208..a24f568 100644 --- a/Test/DictTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/DictTest/.tpv_build/temp/_sha1_map.txt @@ -1,17 +1,17 @@ -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp db613a1bd6a3ca26:includes/w32/win32console.vp 09c0472e6fd0d088:includes/stdio.vp 989dba6e92235032:includes/stdlib.vp -b8970f3b6886efa6:includes/string.vp -7e4672b992208969:includes/memhub.vp -748d0424e8976fa0:includes/testcheck.vp +4a42e6e4a0818b1e:includes/string.vp +1819d836dcee9afa:includes/memhub.vp +23899f9254639ba7:includes/testcheck.vp e0f0afe3caa1e486:includes/_dict.vp -001947a1f780bd5f:includes/builtins.vp +50b9991a98ff2dd5:includes/builtins.vp e710417730391023:includes/w32/win32base.vp aa246c6e6aa30484:includes/atom.vp 2c175afd85852faf:includes/viperio.vp e94ef9e139461915:includes/_list.vp -93bbbeb0e5cbf302:includes/json/__init__.vp -8290bd3727c7a802:includes/json/__parser.vp -607849723bc2c5ca:includes/json/__writer.vp +0d2953dd82dcb330:includes/json/__init__.vp +263d2aba9d95f871:includes/json/__parser.vp +20fa4d84e49e0283:includes/json/__writer.vp 0335b22a0838d62a:main.vp diff --git a/Test/DictTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/DictTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/DictTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/DictTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/DictTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/DictTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/EqTest/.tpv_build/temp/_sha1_map.txt b/Test/EqTest/.tpv_build/temp/_sha1_map.txt index 306f162..b27a039 100644 --- a/Test/EqTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/EqTest/.tpv_build/temp/_sha1_map.txt @@ -1,9 +1,9 @@ -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp db613a1bd6a3ca26:includes/w32/win32console.vp 09c0472e6fd0d088:includes/stdio.vp 989dba6e92235032:includes/stdlib.vp b8970f3b6886efa6:includes/string.vp -748d0424e8976fa0:includes/testcheck.vp -001947a1f780bd5f:includes/builtins.vp +23899f9254639ba7:includes/testcheck.vp +50b9991a98ff2dd5:includes/builtins.vp e710417730391023:includes/w32/win32base.vp cb3633a2a25f2da9:main.vp diff --git a/Test/Extern2Test/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/Extern2Test/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/Extern2Test/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/Extern2Test/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/Extern2Test/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/Extern2Test/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/Extern2Test/.tpv_build/temp/_sha1_map.txt b/Test/Extern2Test/.tpv_build/temp/_sha1_map.txt index c18b208..a618f97 100644 --- a/Test/Extern2Test/.tpv_build/temp/_sha1_map.txt +++ b/Test/Extern2Test/.tpv_build/temp/_sha1_map.txt @@ -1,7 +1,7 @@ 09c0472e6fd0d088:includes/stdio.vp -748d0424e8976fa0:includes/testcheck.vp -001947a1f780bd5f:includes/builtins.vp +23899f9254639ba7:includes/testcheck.vp +50b9991a98ff2dd5:includes/builtins.vp db613a1bd6a3ca26:includes/w32/win32console.vp -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp e710417730391023:includes/w32/win32base.vp c7355810f354ba5c:main.vp diff --git a/Test/Extern2Test/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/Extern2Test/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/Extern2Test/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/Extern2Test/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/Extern2Test/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/Extern2Test/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/FormatStringTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/FormatStringTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/FormatStringTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/FormatStringTest/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/FormatStringTest/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/FormatStringTest/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/FormatStringTest/.tpv_build/temp/_sha1_map.txt b/Test/FormatStringTest/.tpv_build/temp/_sha1_map.txt index a1dcd78..e8565d9 100644 --- a/Test/FormatStringTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/FormatStringTest/.tpv_build/temp/_sha1_map.txt @@ -1,7 +1,7 @@ -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp 09c0472e6fd0d088:includes/stdio.vp -748d0424e8976fa0:includes/testcheck.vp -001947a1f780bd5f:includes/builtins.vp +23899f9254639ba7:includes/testcheck.vp +50b9991a98ff2dd5:includes/builtins.vp db613a1bd6a3ca26:includes/w32/win32console.vp e710417730391023:includes/w32/win32base.vp cdff0d7b58fc935b:main.vp diff --git a/Test/FormatStringTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/FormatStringTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/FormatStringTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/FormatStringTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/FormatStringTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/FormatStringTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/G3/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/G3/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/G3/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/G3/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/G3/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/G3/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/G3/.tpv_build/temp/75/750067fc4b20699b.vpi b/Test/G3/.tpv_build/temp/75/750067fc4b20699b.vpi index 3542c12..f3ca5ff 100644 --- a/Test/G3/.tpv_build/temp/75/750067fc4b20699b.vpi +++ b/Test/G3/.tpv_build/temp/75/750067fc4b20699b.vpi @@ -10,12 +10,7 @@ from linkedlist import GSListNode class Node(GSListNode[Node]): value: t.CInt def __init__(self): pass - def test_node_create(): pass - def test_node_next_field(): pass - def test_node_chain(): pass - def main() -> t.CInt: pass - diff --git a/Test/G3/.tpv_build/temp/_sha1_map.txt b/Test/G3/.tpv_build/temp/_sha1_map.txt index c481df2..ca05bde 100644 --- a/Test/G3/.tpv_build/temp/_sha1_map.txt +++ b/Test/G3/.tpv_build/temp/_sha1_map.txt @@ -1,8 +1,9 @@ 09c0472e6fd0d088:includes/stdio.vp -748d0424e8976fa0:includes/testcheck.vp -a5e9a83e9db303ad:includes/linkedlist.vp -001947a1f780bd5f:includes/builtins.vp +23899f9254639ba7:includes/testcheck.vp +8e92345fd262a343:includes/linkedlist.vp +50b9991a98ff2dd5:includes/builtins.vp db613a1bd6a3ca26:includes/w32/win32console.vp -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp +989dba6e92235032:includes/stdlib.vp e710417730391023:includes/w32/win32base.vp 750067fc4b20699b:main.vp diff --git a/Test/G3/.tpv_build/temp/a5/a5e9a83e9db303ad.deps.txt b/Test/G3/.tpv_build/temp/a5/a5e9a83e9db303ad.deps.txt deleted file mode 100644 index 103beac..0000000 --- a/Test/G3/.tpv_build/temp/a5/a5e9a83e9db303ad.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint \ No newline at end of file diff --git a/Test/G3/.tpv_build/temp/a5/a5e9a83e9db303ad.vpi b/Test/G3/.tpv_build/temp/a5/a5e9a83e9db303ad.vpi deleted file mode 100644 index 4031ba3..0000000 --- a/Test/G3/.tpv_build/temp/a5/a5e9a83e9db303ad.vpi +++ /dev/null @@ -1,64 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -from stdint import * -@t.NoVTable -class LinkedNode: - next: 'LinkedNode' | t.CPtr - prev: 'LinkedNode' | t.CPtr - child: 'LinkedNode' | t.CPtr - last_child: 'LinkedNode' | t.CPtr - parent: 'LinkedNode' | t.CPtr - child_count: t.CSizeT - def append(self, node: 'LinkedNode' | t.CPtr): pass - def prepend(self, node: 'LinkedNode' | t.CPtr): pass - def insert_before(self, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr): pass - def insert_after(self, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr): pass - def remove_child(self, node: 'LinkedNode' | t.CPtr): pass - def detach(self): pass - def unlink(self): pass - def has_children(self) -> t.CInt: pass - def child_at(self, index: t.CSizeT) -> 'LinkedNode' | t.CPtr: pass - def count_children(self) -> t.CSizeT: pass - def first_sibling(self) -> 'LinkedNode' | t.CPtr: pass - def last_sibling(self) -> 'LinkedNode' | t.CPtr: pass - -@t.NoVTable -class SListNode: - Next: 'SListNode' | t.CPtr - def append(self, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def append_after(self, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def count(self) -> t.CSizeT: pass - def at(self, index: t.CSizeT) -> 'SListNode' | t.CPtr: pass - def remove(self, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - -@t.NoVTable -class GSListNode[T]: - Next: T | t.CPtr - -@t.NoVTable -class GSList[T]: - Head: T | t.CPtr - Tail: T | t.CPtr - Count: t.CSizeT - def __init__(self): pass - def append(self, node: T): pass - def count(self) -> t.CSizeT: pass - def at(self, index: t.CSizeT) -> T | t.CPtr: pass - -@t.NoVTable -class GTreeNode[T]: - Next: T | t.CPtr - Prev: T | t.CPtr - Child: T | t.CPtr - LastChild: T | t.CPtr - Parent: T | t.CPtr - Count: t.CSizeT - def append(self, node: T | t.CPtr): pass - def prepend(self, node: T | t.CPtr): pass - def detach(self): pass - def has_children(self) -> t.CInt: pass - def child_at(self, index: t.CSizeT) -> T | t.CPtr: pass - def count_children(self) -> t.CSizeT: pass - diff --git a/Test/G3/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/G3/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/G3/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/G3/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/G3/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/G3/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/G6/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/G6/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/G6/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/G6/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/G6/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/G6/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/G6/.tpv_build/temp/_sha1_map.txt b/Test/G6/.tpv_build/temp/_sha1_map.txt index d635bfc..5b03a1a 100644 --- a/Test/G6/.tpv_build/temp/_sha1_map.txt +++ b/Test/G6/.tpv_build/temp/_sha1_map.txt @@ -1,8 +1,8 @@ 09c0472e6fd0d088:includes/stdio.vp -748d0424e8976fa0:includes/testcheck.vp +23899f9254639ba7:includes/testcheck.vp aa246c6e6aa30484:includes/atom.vp -001947a1f780bd5f:includes/builtins.vp +50b9991a98ff2dd5:includes/builtins.vp db613a1bd6a3ca26:includes/w32/win32console.vp -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp e710417730391023:includes/w32/win32base.vp c3df2c1540dfb432:main.vp diff --git a/Test/G6/.tpv_build/temp/aa/aa246c6e6aa30484.vpi b/Test/G6/.tpv_build/temp/aa/aa246c6e6aa30484.vpi index 850204b..be87c45 100644 --- a/Test/G6/.tpv_build/temp/aa/aa246c6e6aa30484.vpi +++ b/Test/G6/.tpv_build/temp/aa/aa246c6e6aa30484.vpi @@ -9,14 +9,8 @@ ATOMIC_RELEASE: t.CDefine = 3 ATOMIC_ACQ_REL: t.CDefine = 4 ATOMIC_SEQ_CST: t.CDefine = 5 def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - diff --git a/Test/G6/.tpv_build/temp/c3/c3df2c1540dfb432.vpi b/Test/G6/.tpv_build/temp/c3/c3df2c1540dfb432.vpi index eae3f6a..ebdcb9d 100644 --- a/Test/G6/.tpv_build/temp/c3/c3df2c1540dfb432.vpi +++ b/Test/G6/.tpv_build/temp/c3/c3df2c1540dfb432.vpi @@ -6,14 +6,8 @@ import stdio import testcheck import atom def test_atomic_test_and_set(): pass - def test_atomic_clear(): pass - def test_atomic_thread_fence(): pass - def test_atomic_lock_free(): pass - def test_atomic_spinlock(): pass - def main() -> t.CInt: pass - diff --git a/Test/G6/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/G6/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/G6/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/G6/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/G6/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/G6/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/GenericTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/GenericTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/GenericTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/GenericTest/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/GenericTest/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/GenericTest/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/GenericTest/.tpv_build/temp/_sha1_map.txt b/Test/GenericTest/.tpv_build/temp/_sha1_map.txt index 2ccc4ae..60b4222 100644 --- a/Test/GenericTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/GenericTest/.tpv_build/temp/_sha1_map.txt @@ -1,7 +1,7 @@ 09c0472e6fd0d088:includes/stdio.vp -748d0424e8976fa0:includes/testcheck.vp -001947a1f780bd5f:includes/builtins.vp +23899f9254639ba7:includes/testcheck.vp +50b9991a98ff2dd5:includes/builtins.vp db613a1bd6a3ca26:includes/w32/win32console.vp -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp e710417730391023:includes/w32/win32base.vp 16e1f65b154831e8:main.vp diff --git a/Test/GenericTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/GenericTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/GenericTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/GenericTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/GenericTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/GenericTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/GenericTest3/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/GenericTest3/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/GenericTest3/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/GenericTest3/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/GenericTest3/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/GenericTest3/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/GenericTest3/.tpv_build/temp/_sha1_map.txt b/Test/GenericTest3/.tpv_build/temp/_sha1_map.txt index 7b687ec..dfb0fd7 100644 --- a/Test/GenericTest3/.tpv_build/temp/_sha1_map.txt +++ b/Test/GenericTest3/.tpv_build/temp/_sha1_map.txt @@ -1,7 +1,7 @@ 09c0472e6fd0d088:includes/stdio.vp -748d0424e8976fa0:includes/testcheck.vp -001947a1f780bd5f:includes/builtins.vp +23899f9254639ba7:includes/testcheck.vp +50b9991a98ff2dd5:includes/builtins.vp db613a1bd6a3ca26:includes/w32/win32console.vp -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp e710417730391023:includes/w32/win32base.vp 01d9e58c9dd31a4d:main.vp diff --git a/Test/GenericTest3/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/GenericTest3/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/GenericTest3/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/GenericTest3/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/GenericTest3/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/GenericTest3/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/GenericTest4/.tpv_build/temp/42/42e09c6149524d9d.vpi b/Test/GenericTest4/.tpv_build/temp/42/42e09c6149524d9d.vpi index c0bb1de..8d40d76 100644 --- a/Test/GenericTest4/.tpv_build/temp/42/42e09c6149524d9d.vpi +++ b/Test/GenericTest4/.tpv_build/temp/42/42e09c6149524d9d.vpi @@ -10,33 +10,23 @@ class Box[T]: def __init__(self, v: T): pass def get(self) -> T: pass def set(self, v: T): pass - def test_explicit_box(): pass - class Pair[T1, T2]: first: T1 second: T2 def __init__(self, a: T1, b: T2): pass def sum_as_int(self) -> t.CInt: pass - def test_explicit_pair(): pass - class Wrapper[T]: data: T def __init__(self, v: T): pass def get(self) -> T: pass - def test_mixed_generic_class(): pass - class Counter[T]: count: T def __init__(self, start: T): pass def increment(self): pass def get_count(self) -> T: pass - def test_explicit_counter(): pass - def test_explicit_box_set(): pass - def main() -> t.CInt: pass - diff --git a/Test/GenericTest4/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/GenericTest4/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/GenericTest4/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/GenericTest4/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/GenericTest4/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/GenericTest4/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/GenericTest4/.tpv_build/temp/_sha1_map.txt b/Test/GenericTest4/.tpv_build/temp/_sha1_map.txt index a784604..c29d8d1 100644 --- a/Test/GenericTest4/.tpv_build/temp/_sha1_map.txt +++ b/Test/GenericTest4/.tpv_build/temp/_sha1_map.txt @@ -1,7 +1,7 @@ 09c0472e6fd0d088:includes/stdio.vp -748d0424e8976fa0:includes/testcheck.vp -001947a1f780bd5f:includes/builtins.vp +23899f9254639ba7:includes/testcheck.vp +50b9991a98ff2dd5:includes/builtins.vp db613a1bd6a3ca26:includes/w32/win32console.vp -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp e710417730391023:includes/w32/win32base.vp 42e09c6149524d9d:main.vp diff --git a/Test/GenericTest4/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/GenericTest4/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/GenericTest4/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/GenericTest4/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/GenericTest4/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/GenericTest4/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/IterTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/IterTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/IterTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/IterTest/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/IterTest/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/IterTest/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/IterTest/.tpv_build/temp/_sha1_map.txt b/Test/IterTest/.tpv_build/temp/_sha1_map.txt index 37b3c9c..9611761 100644 --- a/Test/IterTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/IterTest/.tpv_build/temp/_sha1_map.txt @@ -1,9 +1,9 @@ 09c0472e6fd0d088:includes/stdio.vp b8970f3b6886efa6:includes/string.vp -748d0424e8976fa0:includes/testcheck.vp +23899f9254639ba7:includes/testcheck.vp fb67ebda973806ad:includes/w32/win32memory.vp -001947a1f780bd5f:includes/builtins.vp -f5522571bcce7bcb:includes/stdint.vp +50b9991a98ff2dd5:includes/builtins.vp +d856ba5f6f074f04:includes/stdint.vp db613a1bd6a3ca26:includes/w32/win32console.vp e710417730391023:includes/w32/win32base.vp 7ddf5cf22d6bfeb4:main.vp diff --git a/Test/IterTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/IterTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/IterTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/IterTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/IterTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/IterTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/LLvmLiteTest/output_orig/01edd522de5aabb2.deps.json b/Test/LLvmLiteTest/output_orig/01edd522de5aabb2.deps.json new file mode 100644 index 0000000..7304689 --- /dev/null +++ b/Test/LLvmLiteTest/output_orig/01edd522de5aabb2.deps.json @@ -0,0 +1 @@ +{"stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output_orig/09c0472e6fd0d088.deps.json b/Test/LLvmLiteTest/output_orig/09c0472e6fd0d088.deps.json new file mode 100644 index 0000000..099cf77 --- /dev/null +++ b/Test/LLvmLiteTest/output_orig/09c0472e6fd0d088.deps.json @@ -0,0 +1 @@ +{"main": "01edd522de5aabb2", "stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output_orig/1819d836dcee9afa.deps.json b/Test/LLvmLiteTest/output_orig/1819d836dcee9afa.deps.json new file mode 100644 index 0000000..099cf77 --- /dev/null +++ b/Test/LLvmLiteTest/output_orig/1819d836dcee9afa.deps.json @@ -0,0 +1 @@ +{"main": "01edd522de5aabb2", "stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output_orig/23899f9254639ba7.deps.json b/Test/LLvmLiteTest/output_orig/23899f9254639ba7.deps.json new file mode 100644 index 0000000..099cf77 --- /dev/null +++ b/Test/LLvmLiteTest/output_orig/23899f9254639ba7.deps.json @@ -0,0 +1 @@ +{"main": "01edd522de5aabb2", "stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output_orig/2c175afd85852faf.deps.json b/Test/LLvmLiteTest/output_orig/2c175afd85852faf.deps.json new file mode 100644 index 0000000..099cf77 --- /dev/null +++ b/Test/LLvmLiteTest/output_orig/2c175afd85852faf.deps.json @@ -0,0 +1 @@ +{"main": "01edd522de5aabb2", "stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output_orig/4a42e6e4a0818b1e.deps.json b/Test/LLvmLiteTest/output_orig/4a42e6e4a0818b1e.deps.json new file mode 100644 index 0000000..099cf77 --- /dev/null +++ b/Test/LLvmLiteTest/output_orig/4a42e6e4a0818b1e.deps.json @@ -0,0 +1 @@ +{"main": "01edd522de5aabb2", "stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output_orig/8e92345fd262a343.deps.json b/Test/LLvmLiteTest/output_orig/8e92345fd262a343.deps.json new file mode 100644 index 0000000..099cf77 --- /dev/null +++ b/Test/LLvmLiteTest/output_orig/8e92345fd262a343.deps.json @@ -0,0 +1 @@ +{"main": "01edd522de5aabb2", "stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output_orig/8f4a288d50172739.deps.json b/Test/LLvmLiteTest/output_orig/8f4a288d50172739.deps.json new file mode 100644 index 0000000..099cf77 --- /dev/null +++ b/Test/LLvmLiteTest/output_orig/8f4a288d50172739.deps.json @@ -0,0 +1 @@ +{"main": "01edd522de5aabb2", "stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output_orig/95a546a38b5b6316.deps.json b/Test/LLvmLiteTest/output_orig/95a546a38b5b6316.deps.json new file mode 100644 index 0000000..099cf77 --- /dev/null +++ b/Test/LLvmLiteTest/output_orig/95a546a38b5b6316.deps.json @@ -0,0 +1 @@ +{"main": "01edd522de5aabb2", "stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output_orig/989dba6e92235032.deps.json b/Test/LLvmLiteTest/output_orig/989dba6e92235032.deps.json new file mode 100644 index 0000000..099cf77 --- /dev/null +++ b/Test/LLvmLiteTest/output_orig/989dba6e92235032.deps.json @@ -0,0 +1 @@ +{"main": "01edd522de5aabb2", "stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output_orig/_shared_sym_includes.pickle b/Test/LLvmLiteTest/output_orig/_shared_sym_includes.pickle new file mode 100644 index 0000000000000000000000000000000000000000..a6a28a220a7352768eaf53f0632e3d75407dd354 GIT binary patch literal 1091099 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≫4I*5U>mR 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≫4I*5U>mR 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 XhunYLTl%EJ%vzV1OsRcpvH$-9iMgQ` literal 0 HcmV?d00001 diff --git a/Test/LLvmLiteTest/output_verify/aa246c6e6aa30484.deps.json b/Test/LLvmLiteTest/output_verify/aa246c6e6aa30484.deps.json new file mode 100644 index 0000000..099cf77 --- /dev/null +++ b/Test/LLvmLiteTest/output_verify/aa246c6e6aa30484.deps.json @@ -0,0 +1 @@ +{"main": "01edd522de5aabb2", "stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output_verify/b6945d3375680910.deps.json b/Test/LLvmLiteTest/output_verify/b6945d3375680910.deps.json new file mode 100644 index 0000000..099cf77 --- /dev/null +++ b/Test/LLvmLiteTest/output_verify/b6945d3375680910.deps.json @@ -0,0 +1 @@ +{"main": "01edd522de5aabb2", "stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output_verify/cf900a640e6eeff3.deps.json b/Test/LLvmLiteTest/output_verify/cf900a640e6eeff3.deps.json new file mode 100644 index 0000000..099cf77 --- /dev/null +++ b/Test/LLvmLiteTest/output_verify/cf900a640e6eeff3.deps.json @@ -0,0 +1 @@ +{"main": "01edd522de5aabb2", "stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output_verify/db613a1bd6a3ca26.deps.json b/Test/LLvmLiteTest/output_verify/db613a1bd6a3ca26.deps.json new file mode 100644 index 0000000..099cf77 --- /dev/null +++ b/Test/LLvmLiteTest/output_verify/db613a1bd6a3ca26.deps.json @@ -0,0 +1 @@ +{"main": "01edd522de5aabb2", "stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output_verify/e710417730391023.deps.json b/Test/LLvmLiteTest/output_verify/e710417730391023.deps.json new file mode 100644 index 0000000..099cf77 --- /dev/null +++ b/Test/LLvmLiteTest/output_verify/e710417730391023.deps.json @@ -0,0 +1 @@ +{"main": "01edd522de5aabb2", "stdio": "09c0472e6fd0d088", "memhub": "1819d836dcee9afa", "llvmlite.__init__": "1cd821910b12b14a", "__init__": "1cd821910b12b14a", "llvmlite": "1cd821910b12b14a", "testcheck": "23899f9254639ba7", "llvmlite.__verify": "2568ac3ee3e41fce", "__verify": "2568ac3ee3e41fce", "viperio": "2c175afd85852faf", "string": "4a42e6e4a0818b1e", "linkedlist": "8e92345fd262a343", "llvmlite.__values": "8f4a288d50172739", "__values": "8f4a288d50172739", "viperlib": "95a546a38b5b6316", "stdlib": "989dba6e92235032", "llvmlite.__builder": "a595cdd900b9d0a0", "__builder": "a595cdd900b9d0a0", "llvmlite.__function": "a83b1142bc9f935f", "__function": "a83b1142bc9f935f", "atom": "aa246c6e6aa30484", "llvmlite.__types": "b6945d3375680910", "__types": "b6945d3375680910", "stdarg": "cf900a640e6eeff3", "stdint": "d856ba5f6f074f04", "w32.win32console": "db613a1bd6a3ca26", "win32console": "db613a1bd6a3ca26", "llvmlite.__module": "e53c761aa1c42d7a", "__module": "e53c761aa1c42d7a", "w32.win32base": "e710417730391023", "win32base": "e710417730391023"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/_phase1_manifest.json b/Test/LLvmLiteTest/temp/_phase1_manifest.json index 9c2512d..c9ee9d0 100644 --- a/Test/LLvmLiteTest/temp/_phase1_manifest.json +++ b/Test/LLvmLiteTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\LLvmLiteTest\\App\\main.vp": {"sha1": "967a46e9b6ccdfde", "mtime": 1786169754.7262282, "size": 51143}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.vp": {"sha1": "a5e9a83e9db303ad", "mtime": 1785337078.812168, "size": 17137}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__init__.vp": {"sha1": "717eb7bfaf23dbc3", "mtime": 1786210372.0621626, "size": 17067}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__builder.vp": {"sha1": "6d34c2e4e943eaa5", "mtime": 1786318260.854318, "size": 74293}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__function.vp": {"sha1": "7b90275225506d7d", "mtime": 1786318277.0655384, "size": 30533}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__module.vp": {"sha1": "01d8e043f100147a", "mtime": 1786318283.4530182, "size": 25852}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__types.vp": {"sha1": "afb6ea93f62bf768", "mtime": 1786356281.3707955, "size": 28609}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__values.vp": {"sha1": "bef89476dfde96fe", "mtime": 1786318261.8963718, "size": 7746}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__verify.vp": {"sha1": "1ab30dd423d0e622", "mtime": 1786318262.8905673, "size": 14985}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "2408ce147bac090b", "mtime": 1786323167.9697752, "size": 33121}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "4c39369ffedaddac", "mtime": 1786188859.6154988, "size": 12277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "2c175afd85852faf", "mtime": 1786320035.0415876, "size": 1685}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "bba983c61a970f7c", "mtime": 1786320034.4835327, "size": 59458}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\LLvmLiteTest\\App\\main.vp": {"sha1": "967a46e9b6ccdfde", "mtime": 1786169754.7262282, "size": 51143}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.vp": {"sha1": "a5e9a83e9db303ad", "mtime": 1785337078.812168, "size": 17137}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__init__.vp": {"sha1": "717eb7bfaf23dbc3", "mtime": 1786210372.0621626, "size": 17067}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__builder.vp": {"sha1": "6d34c2e4e943eaa5", "mtime": 1786318260.854318, "size": 74293}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__function.vp": {"sha1": "7b90275225506d7d", "mtime": 1786318277.0655384, "size": 30533}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__module.vp": {"sha1": "01d8e043f100147a", "mtime": 1786318283.4530182, "size": 25852}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__types.vp": {"sha1": "afb6ea93f62bf768", "mtime": 1786356281.3707955, "size": 28609}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__values.vp": {"sha1": "bef89476dfde96fe", "mtime": 1786318261.8963718, "size": 7746}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__verify.vp": {"sha1": "1ab30dd423d0e622", "mtime": 1786318262.8905673, "size": 14985}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "2408ce147bac090b", "mtime": 1786323167.9697752, "size": 33121}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "4c39369ffedaddac", "mtime": 1786188859.6154988, "size": 12277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "2c175afd85852faf", "mtime": 1786320035.0415876, "size": 1685}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "bba983c61a970f7c", "mtime": 1786320034.4835327, "size": 59458}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\LLvmLiteTest\\App\\main.vp": {"sha1": "01edd522de5aabb2", "mtime": 1786740056.9949062, "size": 50537}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.vp": {"sha1": "8e92345fd262a343", "mtime": 1788589762.4679213, "size": 18956}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__init__.vp": {"sha1": "1cd821910b12b14a", "mtime": 1788424415.6225226, "size": 18450}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__builder.vp": {"sha1": "a595cdd900b9d0a0", "mtime": 1788763981.866939, "size": 73475}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__function.vp": {"sha1": "a83b1142bc9f935f", "mtime": 1788792603.53563, "size": 51362}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__module.vp": {"sha1": "e53c761aa1c42d7a", "mtime": 1788790512.4424603, "size": 35676}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__types.vp": {"sha1": "b6945d3375680910", "mtime": 1788507327.6767523, "size": 29233}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__values.vp": {"sha1": "8f4a288d50172739", "mtime": 1788425369.8543065, "size": 7567}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__verify.vp": {"sha1": "2568ac3ee3e41fce", "mtime": 1788596181.2213283, "size": 15395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "1819d836dcee9afa", "mtime": 1788511723.0025272, "size": 57941}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "cf900a640e6eeff3", "mtime": 1787547596.9310327, "size": 229}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "d856ba5f6f074f04", "mtime": 1788655536.037875, "size": 4358}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "09c0472e6fd0d088", "mtime": 1787547632.872505, "size": 489}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "989dba6e92235032", "mtime": 1787547654.3594353, "size": 296}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "4a42e6e4a0818b1e", "mtime": 1788783202.8392243, "size": 12185}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "23899f9254639ba7", "mtime": 1788602805.4813268, "size": 1898}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "2c175afd85852faf", "mtime": 1786320035.0415876, "size": 1685}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "95a546a38b5b6316", "mtime": 1788167046.0207517, "size": 59411}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "e710417730391023", "mtime": 1786934986.4853718, "size": 2469}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "db613a1bd6a3ca26", "mtime": 1786934994.741273, "size": 5214}} \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/_sha1_map.txt b/Test/LLvmLiteTest/temp/_sha1_map.txt index 6a0d6dc..b9fb595 100644 --- a/Test/LLvmLiteTest/temp/_sha1_map.txt +++ b/Test/LLvmLiteTest/temp/_sha1_map.txt @@ -1,21 +1,21 @@ -01d8e043f100147a:includes/llvmlite\__module.vp -1ab30dd423d0e622:includes/llvmlite\__verify.vp -2408ce147bac090b:includes/memhub.vp -285b6aa29a34754d:includes/stdio.vp +01edd522de5aabb2:main.vp +09c0472e6fd0d088:includes/stdio.vp +1819d836dcee9afa:includes/memhub.vp +1cd821910b12b14a:includes/llvmlite\__init__.vp +23899f9254639ba7:includes/testcheck.vp +2568ac3ee3e41fce:includes/llvmlite\__verify.vp 2c175afd85852faf:includes/viperio.vp -4c39369ffedaddac:includes/string.vp -6c658cc728d0bbf4:includes/stdlib.vp -6d34c2e4e943eaa5:includes/llvmlite\__builder.vp -717eb7bfaf23dbc3:includes/llvmlite\__init__.vp -71e0a3ffcb3ebfad:includes/stdarg.vp -748d0424e8976fa0:includes/testcheck.vp -7b90275225506d7d:includes/llvmlite\__function.vp -967a46e9b6ccdfde:main.vp -a5e9a83e9db303ad:includes/linkedlist.vp +4a42e6e4a0818b1e:includes/string.vp +8e92345fd262a343:includes/linkedlist.vp +8f4a288d50172739:includes/llvmlite\__values.vp +95a546a38b5b6316:includes/viperlib.vp +989dba6e92235032:includes/stdlib.vp +a595cdd900b9d0a0:includes/llvmlite\__builder.vp +a83b1142bc9f935f:includes/llvmlite\__function.vp aa246c6e6aa30484:includes/atom.vp -afb6ea93f62bf768:includes/llvmlite\__types.vp -bba983c61a970f7c:includes/viperlib.vp -bbdf3bbd4c3bc28c:includes/w32\win32console.vp -bef89476dfde96fe:includes/llvmlite\__values.vp -f5522571bcce7bcb:includes/stdint.vp -fc980acec33d69a7:includes/w32\win32base.vp +b6945d3375680910:includes/llvmlite\__types.vp +cf900a640e6eeff3:includes/stdarg.vp +d856ba5f6f074f04:includes/stdint.vp +db613a1bd6a3ca26:includes/w32\win32console.vp +e53c761aa1c42d7a:includes/llvmlite\__module.vp +e710417730391023:includes/w32\win32base.vp diff --git a/Test/ListTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/ListTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/ListTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/ListTest/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/ListTest/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/ListTest/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/ListTest/.tpv_build/temp/_sha1_map.txt b/Test/ListTest/.tpv_build/temp/_sha1_map.txt index 7a38ea0..fc4028e 100644 --- a/Test/ListTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/ListTest/.tpv_build/temp/_sha1_map.txt @@ -1,12 +1,12 @@ -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp db613a1bd6a3ca26:includes/w32/win32console.vp 989dba6e92235032:includes/stdlib.vp 09c0472e6fd0d088:includes/stdio.vp -7e4672b992208969:includes/memhub.vp -748d0424e8976fa0:includes/testcheck.vp -001947a1f780bd5f:includes/builtins.vp +1819d836dcee9afa:includes/memhub.vp +23899f9254639ba7:includes/testcheck.vp +50b9991a98ff2dd5:includes/builtins.vp e710417730391023:includes/w32/win32base.vp -b8970f3b6886efa6:includes/string.vp +4a42e6e4a0818b1e:includes/string.vp aa246c6e6aa30484:includes/atom.vp 2c175afd85852faf:includes/viperio.vp e94ef9e139461915:includes/_list.vp diff --git a/Test/ListTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/ListTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/ListTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/ListTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/ListTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/ListTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/LoopTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/LoopTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/LoopTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/LoopTest/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/LoopTest/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/LoopTest/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/LoopTest/.tpv_build/temp/_sha1_map.txt b/Test/LoopTest/.tpv_build/temp/_sha1_map.txt index 7dd276a..68f0d0e 100644 --- a/Test/LoopTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/LoopTest/.tpv_build/temp/_sha1_map.txt @@ -1,7 +1,7 @@ 09c0472e6fd0d088:includes/stdio.vp -748d0424e8976fa0:includes/testcheck.vp -001947a1f780bd5f:includes/builtins.vp +23899f9254639ba7:includes/testcheck.vp +50b9991a98ff2dd5:includes/builtins.vp db613a1bd6a3ca26:includes/w32/win32console.vp -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp e710417730391023:includes/w32/win32base.vp 86e203c56ae4de20:main.vp diff --git a/Test/LoopTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/LoopTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/LoopTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/LoopTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/LoopTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/LoopTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/MemhubTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/MemhubTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/MemhubTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/MemhubTest/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/MemhubTest/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/MemhubTest/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/MemhubTest/.tpv_build/temp/_sha1_map.txt b/Test/MemhubTest/.tpv_build/temp/_sha1_map.txt index 78ca6c4..c1e436a 100644 --- a/Test/MemhubTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/MemhubTest/.tpv_build/temp/_sha1_map.txt @@ -1,11 +1,11 @@ -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp 09c0472e6fd0d088:includes/stdio.vp 989dba6e92235032:includes/stdlib.vp -748d0424e8976fa0:includes/testcheck.vp -7e4672b992208969:includes/memhub.vp -001947a1f780bd5f:includes/builtins.vp +23899f9254639ba7:includes/testcheck.vp +1819d836dcee9afa:includes/memhub.vp +50b9991a98ff2dd5:includes/builtins.vp db613a1bd6a3ca26:includes/w32/win32console.vp -b8970f3b6886efa6:includes/string.vp +4a42e6e4a0818b1e:includes/string.vp aa246c6e6aa30484:includes/atom.vp 2c175afd85852faf:includes/viperio.vp e94ef9e139461915:includes/_list.vp diff --git a/Test/MemhubTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/MemhubTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/MemhubTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/MemhubTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/MemhubTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/MemhubTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/PointerTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/PointerTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/PointerTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/PointerTest/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/PointerTest/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/PointerTest/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/PointerTest/.tpv_build/temp/_sha1_map.txt b/Test/PointerTest/.tpv_build/temp/_sha1_map.txt index 75bc0dd..dc9fc79 100644 --- a/Test/PointerTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/PointerTest/.tpv_build/temp/_sha1_map.txt @@ -1,9 +1,9 @@ -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp 09c0472e6fd0d088:includes/stdio.vp -b8970f3b6886efa6:includes/string.vp +4a42e6e4a0818b1e:includes/string.vp db613a1bd6a3ca26:includes/w32/win32console.vp fb67ebda973806ad:includes/w32/win32memory.vp -748d0424e8976fa0:includes/testcheck.vp -001947a1f780bd5f:includes/builtins.vp +23899f9254639ba7:includes/testcheck.vp +50b9991a98ff2dd5:includes/builtins.vp e710417730391023:includes/w32/win32base.vp 44b58111300aa918:main.vp diff --git a/Test/PointerTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/PointerTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/PointerTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/PointerTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/PointerTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/PointerTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/ShortCircuitTest/.tpv_build/temp/_sha1_map.txt b/Test/ShortCircuitTest/.tpv_build/temp/_sha1_map.txt index 65a5533..4e08704 100644 --- a/Test/ShortCircuitTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/ShortCircuitTest/.tpv_build/temp/_sha1_map.txt @@ -1,9 +1,9 @@ -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp db613a1bd6a3ca26:includes/w32/win32console.vp 09c0472e6fd0d088:includes/stdio.vp 989dba6e92235032:includes/stdlib.vp b8970f3b6886efa6:includes/string.vp -748d0424e8976fa0:includes/testcheck.vp -001947a1f780bd5f:includes/builtins.vp +23899f9254639ba7:includes/testcheck.vp +50b9991a98ff2dd5:includes/builtins.vp e710417730391023:includes/w32/win32base.vp a711c9c66fd7c6ca:main.vp diff --git a/Test/SlotsBugTest/.tpv_build/temp/_sha1_map.txt b/Test/SlotsBugTest/.tpv_build/temp/_sha1_map.txt index f23ae2f..4956aaf 100644 --- a/Test/SlotsBugTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/SlotsBugTest/.tpv_build/temp/_sha1_map.txt @@ -1,16 +1,16 @@ -6394599d6a61cabf:includes/ast/__init__.vp -001947a1f780bd5f:includes/builtins.vp -f5522571bcce7bcb:includes/stdint.vp -7e4672b992208969:includes/memhub.vp -b8970f3b6886efa6:includes/string.vp -eb09ac7f10988a63:includes/ast/tokens.vp -e9dfb296a8674aee:includes/ast/base.vp -4618d74293c6746a:includes/ast/stmts.vp -c0def010dcebadb1:includes/ast/exprs.vp -34dc6a647fa19b7b:includes/ast/astaux.vp -3b2a307c9c7d0129:includes/ast/match.vp -43ee0269efffadc3:includes/ast/lexer.vp -df83e214ee82d0f3:includes/ast/parser.vp +3571eabe5a83d798:includes/ast/__init__.vp +50b9991a98ff2dd5:includes/builtins.vp +d856ba5f6f074f04:includes/stdint.vp +1819d836dcee9afa:includes/memhub.vp +4a42e6e4a0818b1e:includes/string.vp +3c774069d112cc3f:includes/ast/tokens.vp +7565e081d88517ac:includes/ast/base.vp +ebe3b1f219d7b887:includes/ast/stmts.vp +12bc7ec9063821df:includes/ast/exprs.vp +7ebdc3bbda127a46:includes/ast/astaux.vp +ad445c65d2ac295a:includes/ast/match.vp +58d97de24b40f9dc:includes/ast/lexer.vp +269b410a8b96c1f5:includes/ast/parser.vp aa246c6e6aa30484:includes/atom.vp 2c175afd85852faf:includes/viperio.vp 09c0472e6fd0d088:includes/stdio.vp @@ -18,4 +18,3 @@ aa246c6e6aa30484:includes/atom.vp e94ef9e139461915:includes/_list.vp 95a546a38b5b6316:includes/viperlib.vp cf900a640e6eeff3:includes/stdarg.vp -0ef89e1f17596302:main.vp diff --git a/Test/SlotsBugTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/SlotsBugTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/SlotsBugTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/285b6aa29a34754d.stub.ll.dep b/Test/SlotsBugTest/temp/285b6aa29a34754d.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SlotsBugTest/temp/285b6aa29a34754d.vpi b/Test/SlotsBugTest/temp/285b6aa29a34754d.vpi deleted file mode 100644 index acc57c7..0000000 --- a/Test/SlotsBugTest/temp/285b6aa29a34754d.vpi +++ /dev/null @@ -1,23 +0,0 @@ -""" -Auto-generated Python stub file from stdio.vp -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> int | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> int | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> int | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> int | t.State: pass - -def puts(s: t.CConst | str) -> int | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> int | t.State: pass - -def fgets(buf: bytes, size: int, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> int | t.State: pass diff --git a/Test/SlotsBugTest/temp/44bd5632a417f7ac.doc.json b/Test/SlotsBugTest/temp/44bd5632a417f7ac.doc.json deleted file mode 100644 index 9e26dfe..0000000 --- a/Test/SlotsBugTest/temp/44bd5632a417f7ac.doc.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/44bd5632a417f7ac.vpi b/Test/SlotsBugTest/temp/44bd5632a417f7ac.vpi deleted file mode 100644 index 4349e20..0000000 --- a/Test/SlotsBugTest/temp/44bd5632a417f7ac.vpi +++ /dev/null @@ -1,19 +0,0 @@ -""" -Auto-generated Python stub file from main.vp -Module: main -""" - -import c - - -import t -import ast - -class Result: - __slots__ = ('elem_type_node', 'count_node', 'is_pointer') - def __init__(self: Result, elem: ast.AST, count: ast.AST | t.CPtr, flag: bool) -> None: pass - elem_type_node: ast.AST - count_node: ast.AST | t.CPtr - is_pointer: bool - -def main() -> int: pass diff --git a/Test/SlotsBugTest/temp/6c658cc728d0bbf4.stub.ll.dep b/Test/SlotsBugTest/temp/6c658cc728d0bbf4.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/SlotsBugTest/temp/6c658cc728d0bbf4.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/6c658cc728d0bbf4.vpi b/Test/SlotsBugTest/temp/6c658cc728d0bbf4.vpi deleted file mode 100644 index d7c42cf..0000000 --- a/Test/SlotsBugTest/temp/6c658cc728d0bbf4.vpi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.vp -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass - -def exit(status: int) -> t.State: pass diff --git a/Test/SlotsBugTest/temp/71e0a3ffcb3ebfad.stub.ll.dep b/Test/SlotsBugTest/temp/71e0a3ffcb3ebfad.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SlotsBugTest/temp/71e0a3ffcb3ebfad.vpi b/Test/SlotsBugTest/temp/71e0a3ffcb3ebfad.vpi deleted file mode 100644 index f99012f..0000000 --- a/Test/SlotsBugTest/temp/71e0a3ffcb3ebfad.vpi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdarg.vp -Module: stdarg -""" - -import c - - -import t - -def va_start(args: t.CPtr, last_arg: t.CPtr) -> t.State: pass - -def va_arg(args: t.CPtr, type: t.CPtr) -> t.CPtr | t.State: pass - -def va_end(args: t.CPtr) -> t.State | t.State: pass - - -va_list: t.CTypedef = t.CUnsignedChar | t.CPtr - -def arg(type: t.CType) -> t.State: pass diff --git a/Test/SlotsBugTest/temp/_phase1_manifest.json b/Test/SlotsBugTest/temp/_phase1_manifest.json deleted file mode 100644 index 08c7dad..0000000 --- a/Test/SlotsBugTest/temp/_phase1_manifest.json +++ /dev/null @@ -1 +0,0 @@ -{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SlotsBugTest\\App\\main.vp": {"sha1": "44bd5632a417f7ac", "mtime": 1784741370.3609664, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.vp": {"sha1": "876e256c06636777", "mtime": 1786370438.7959065, "size": 3919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.vp": {"sha1": "34dc6a647fa19b7b", "mtime": 1786033586.0642571, "size": 11475}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.vp": {"sha1": "71b20381eda0450a", "mtime": 1786370425.011384, "size": 16357}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.vp": {"sha1": "43ec967d0517abc1", "mtime": 1786370434.0783823, "size": 40976}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.vp": {"sha1": "d0072d5282b9b65f", "mtime": 1786095601.8036606, "size": 24838}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.vp": {"sha1": "3b2a307c9c7d0129", "mtime": 1786095636.9718795, "size": 12297}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.vp": {"sha1": "ee85a98dc101e131", "mtime": 1786533765.2045004, "size": 102005}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.vp": {"sha1": "46ea1349c980c7f4", "mtime": 1786369520.4458838, "size": 38239}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.vp": {"sha1": "cea844466f10ac61", "mtime": 1786196689.3449256, "size": 14506}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "2408ce147bac090b", "mtime": 1786323167.9697752, "size": 33121}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "40b053f21c0df07c", "mtime": 1786533758.705974, "size": 11985}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "2c175afd85852faf", "mtime": 1786320035.0415876, "size": 1685}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "bba983c61a970f7c", "mtime": 1786320034.4835327, "size": 59458}} \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/_sha1_map.txt b/Test/SlotsBugTest/temp/_sha1_map.txt deleted file mode 100644 index fff072c..0000000 --- a/Test/SlotsBugTest/temp/_sha1_map.txt +++ /dev/null @@ -1,19 +0,0 @@ -2408ce147bac090b:includes/memhub.vp -285b6aa29a34754d:includes/stdio.vp -2c175afd85852faf:includes/viperio.vp -34dc6a647fa19b7b:includes/ast\astaux.vp -3b2a307c9c7d0129:includes/ast\match.vp -40b053f21c0df07c:includes/string.vp -43ec967d0517abc1:includes/ast\exprs.vp -44bd5632a417f7ac:main.vp -46ea1349c980c7f4:includes/ast\stmts.vp -6c658cc728d0bbf4:includes/stdlib.vp -71b20381eda0450a:includes/ast\base.vp -71e0a3ffcb3ebfad:includes/stdarg.vp -876e256c06636777:includes/ast\__init__.vp -aa246c6e6aa30484:includes/atom.vp -bba983c61a970f7c:includes/viperlib.vp -cea844466f10ac61:includes/ast\tokens.vp -d0072d5282b9b65f:includes/ast\lexer.vp -ee85a98dc101e131:includes/ast\parser.vp -f5522571bcce7bcb:includes/stdint.vp diff --git a/Test/SlotsBugTest/temp/aa246c6e6aa30484.stub.ll.dep b/Test/SlotsBugTest/temp/aa246c6e6aa30484.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SlotsBugTest/temp/aa246c6e6aa30484.vpi b/Test/SlotsBugTest/temp/aa246c6e6aa30484.vpi deleted file mode 100644 index 3147b54..0000000 --- a/Test/SlotsBugTest/temp/aa246c6e6aa30484.vpi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.vp -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/SlotsBugTest/temp/f5522571bcce7bcb.stub.ll.dep b/Test/SlotsBugTest/temp/f5522571bcce7bcb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SlotsBugTest/temp/f5522571bcce7bcb.vpi b/Test/SlotsBugTest/temp/f5522571bcce7bcb.vpi deleted file mode 100644 index f0bc071..0000000 --- a/Test/SlotsBugTest/temp/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.vp -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/SprintfTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/SprintfTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/SprintfTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/SprintfTest/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/SprintfTest/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/SprintfTest/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/SprintfTest/.tpv_build/temp/_sha1_map.txt b/Test/SprintfTest/.tpv_build/temp/_sha1_map.txt index 95af0e2..e12ba8e 100644 --- a/Test/SprintfTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/SprintfTest/.tpv_build/temp/_sha1_map.txt @@ -1,10 +1,10 @@ -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp 09c0472e6fd0d088:includes/stdio.vp 989dba6e92235032:includes/stdlib.vp -748d0424e8976fa0:includes/testcheck.vp +23899f9254639ba7:includes/testcheck.vp 95a546a38b5b6316:includes/viperlib.vp -b8970f3b6886efa6:includes/string.vp -001947a1f780bd5f:includes/builtins.vp +4a42e6e4a0818b1e:includes/string.vp +50b9991a98ff2dd5:includes/builtins.vp db613a1bd6a3ca26:includes/w32/win32console.vp 2c175afd85852faf:includes/viperio.vp cf900a640e6eeff3:includes/stdarg.vp diff --git a/Test/SprintfTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/SprintfTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/SprintfTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/SprintfTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/SprintfTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/SprintfTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/StringIterTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/StringIterTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/StringIterTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/StringIterTest/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/StringIterTest/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/StringIterTest/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/StringIterTest/.tpv_build/temp/_sha1_map.txt b/Test/StringIterTest/.tpv_build/temp/_sha1_map.txt index b6bd0f4..2fed681 100644 --- a/Test/StringIterTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/StringIterTest/.tpv_build/temp/_sha1_map.txt @@ -1,8 +1,8 @@ 09c0472e6fd0d088:includes/stdio.vp -b8970f3b6886efa6:includes/string.vp -748d0424e8976fa0:includes/testcheck.vp -001947a1f780bd5f:includes/builtins.vp -f5522571bcce7bcb:includes/stdint.vp +4a42e6e4a0818b1e:includes/string.vp +23899f9254639ba7:includes/testcheck.vp +50b9991a98ff2dd5:includes/builtins.vp +d856ba5f6f074f04:includes/stdint.vp db613a1bd6a3ca26:includes/w32/win32console.vp e710417730391023:includes/w32/win32base.vp 14b944bb7e81fd72:inline_test.vp diff --git a/Test/StringIterTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/StringIterTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/StringIterTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/StringIterTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/StringIterTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/StringIterTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/StringTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/StringTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/StringTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/StringTest/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/StringTest/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/StringTest/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/StringTest/.tpv_build/temp/_sha1_map.txt b/Test/StringTest/.tpv_build/temp/_sha1_map.txt index 3764f05..43631bf 100644 --- a/Test/StringTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/StringTest/.tpv_build/temp/_sha1_map.txt @@ -1,9 +1,9 @@ 09c0472e6fd0d088:includes/stdio.vp b8970f3b6886efa6:includes/string.vp -748d0424e8976fa0:includes/testcheck.vp +23899f9254639ba7:includes/testcheck.vp fb67ebda973806ad:includes/w32/win32memory.vp -001947a1f780bd5f:includes/builtins.vp -f5522571bcce7bcb:includes/stdint.vp +50b9991a98ff2dd5:includes/builtins.vp +d856ba5f6f074f04:includes/stdint.vp db613a1bd6a3ca26:includes/w32/win32console.vp e710417730391023:includes/w32/win32base.vp 97a9da2eb0407ca8:main.vp diff --git a/Test/StringTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/StringTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/StringTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/StringTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/StringTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/StringTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/StructTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/StructTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/StructTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/StructTest/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/StructTest/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/StructTest/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/StructTest/.tpv_build/temp/_sha1_map.txt b/Test/StructTest/.tpv_build/temp/_sha1_map.txt index ffc7b11..91d7979 100644 --- a/Test/StructTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/StructTest/.tpv_build/temp/_sha1_map.txt @@ -1,9 +1,9 @@ 09c0472e6fd0d088:includes/stdio.vp b8970f3b6886efa6:includes/string.vp -748d0424e8976fa0:includes/testcheck.vp +23899f9254639ba7:includes/testcheck.vp fb67ebda973806ad:includes/w32/win32memory.vp -001947a1f780bd5f:includes/builtins.vp -f5522571bcce7bcb:includes/stdint.vp +50b9991a98ff2dd5:includes/builtins.vp +d856ba5f6f074f04:includes/stdint.vp db613a1bd6a3ca26:includes/w32/win32console.vp e710417730391023:includes/w32/win32base.vp 24e26a8de1173993:main.vp diff --git a/Test/StructTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/StructTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/StructTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/StructTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/StructTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/StructTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/TypeCastTest/.tpv_build/temp/_sha1_map.txt b/Test/TypeCastTest/.tpv_build/temp/_sha1_map.txt index cd220a5..d332b18 100644 --- a/Test/TypeCastTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/TypeCastTest/.tpv_build/temp/_sha1_map.txt @@ -1,2 +1,9 @@ +d856ba5f6f074f04:includes/stdint.vp +09c0472e6fd0d088:includes/stdio.vp +4a42e6e4a0818b1e:includes/string.vp +db613a1bd6a3ca26:includes/w32/win32console.vp +fb67ebda973806ad:includes/w32/win32memory.vp +23899f9254639ba7:includes/testcheck.vp 50b9991a98ff2dd5:includes/builtins.vp -f5522571bcce7bcb:includes/stdint.vp +e710417730391023:includes/w32/win32base.vp +78418cf2ee722f0f:main.vp diff --git a/Test/TypeCastTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/TypeCastTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/TypeCastTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/TypeCastTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/TypeCastTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/TypeCastTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/VRandomTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/VRandomTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/VRandomTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/VRandomTest/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/VRandomTest/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/VRandomTest/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/VRandomTest/.tpv_build/temp/_sha1_map.txt b/Test/VRandomTest/.tpv_build/temp/_sha1_map.txt index e54e0a8..93fbd72 100644 --- a/Test/VRandomTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/VRandomTest/.tpv_build/temp/_sha1_map.txt @@ -1,8 +1,8 @@ -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp 09c0472e6fd0d088:includes/stdio.vp 03d3ece355d95d76:includes/vrandom.vp -748d0424e8976fa0:includes/testcheck.vp -001947a1f780bd5f:includes/builtins.vp +23899f9254639ba7:includes/testcheck.vp +50b9991a98ff2dd5:includes/builtins.vp 0d841163d475941f:includes/vipermath.vp db613a1bd6a3ca26:includes/w32/win32console.vp e710417730391023:includes/w32/win32base.vp diff --git a/Test/VRandomTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/VRandomTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/VRandomTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/VRandomTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/VRandomTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/VRandomTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/Test/VariadicTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/Test/VariadicTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/Test/VariadicTest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/Test/VariadicTest/.tpv_build/temp/74/748d0424e8976fa0.vpi b/Test/VariadicTest/.tpv_build/temp/74/748d0424e8976fa0.vpi deleted file mode 100644 index 4703a33..0000000 --- a/Test/VariadicTest/.tpv_build/temp/74/748d0424e8976fa0.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CInt = 0 -_fail_count: t.CInt = 0 -_total_pass: t.CInt = 0 -_total_fail: t.CInt = 0 -def begin(name: str): pass - -def section(name: str): pass - -def ok(msg: str): pass - -def fail(msg: str): pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str): pass - -def info(msg: str): pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass - diff --git a/Test/VariadicTest/.tpv_build/temp/_sha1_map.txt b/Test/VariadicTest/.tpv_build/temp/_sha1_map.txt index a828ba4..593f5c1 100644 --- a/Test/VariadicTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/VariadicTest/.tpv_build/temp/_sha1_map.txt @@ -1,10 +1,10 @@ -f5522571bcce7bcb:includes/stdint.vp +d856ba5f6f074f04:includes/stdint.vp 09c0472e6fd0d088:includes/stdio.vp -748d0424e8976fa0:includes/testcheck.vp -b8970f3b6886efa6:includes/string.vp +23899f9254639ba7:includes/testcheck.vp +4a42e6e4a0818b1e:includes/string.vp 95a546a38b5b6316:includes/viperlib.vp db613a1bd6a3ca26:includes/w32/win32console.vp -001947a1f780bd5f:includes/builtins.vp +50b9991a98ff2dd5:includes/builtins.vp 2c175afd85852faf:includes/viperio.vp cf900a640e6eeff3:includes/stdarg.vp e710417730391023:includes/w32/win32base.vp diff --git a/Test/VariadicTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/Test/VariadicTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/Test/VariadicTest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/Test/VariadicTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/Test/VariadicTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/Test/VariadicTest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/includes/llvmlite/__builder.vp b/includes/llvmlite/__builder.vp index 3f8e77e..f9ddf6f 100644 --- a/includes/llvmlite/__builder.vp +++ b/includes/llvmlite/__builder.vp @@ -201,8 +201,12 @@ class IRBuilder: line_text: str = pool.alloc(128) if line_text is None: return None viperlib.snprintf(line_text, 128, "%s = alloca %s", name, ty_s) - # 在入口块终止指令之前插入 - block_append_text(pool, entry_blk, line_text) + # 在入口块终止指令之前插入:若入口块已以 br/ret 终止(如嵌套循环内 + # 再分配循环变量),block_append_text 会把 alloca 追加到终止指令之后, + # 生成 "br 之后不可达指令" 的非法 IR(llc: "instruction expected to be + # numbered '%N' or greater")。block_insert_text_before_terminator + # 在块未终止时等同追加,已终止时插到终止指令之前。 + block_insert_text_before_terminator(pool, entry_blk, line_text) # 结果类型是 ty* result_ty: rowptr[LLVMType] = LLVMType.Ptr(ty) result_ty_ptr: rowptr[LLVMType] = pool.alloc(LLVMType.__sizeof__()) diff --git a/includes/llvmlite/__function.vp b/includes/llvmlite/__function.vp index 247a756..5013689 100644 --- a/includes/llvmlite/__function.vp +++ b/includes/llvmlite/__function.vp @@ -658,6 +658,380 @@ def RenumberSSA(func: rowptr[Function], pool: rowptr[memhub.MemBuddy]): blk = blk.Next +# ============================================================ +# 本地窥孔优化(文本层,输出前执行,保持语义) +# T1: ret zeroinitializer → ret 0;ret zeroinitializer → null +# T2: 入口 alloca 槽:唯一一次 store 且值无副作用(形参/%SSA/整数/浮点字面量) +# 时,把 store→load 转发为直接使用该值,删除 alloca/store/load 冗余行 +# ("虚拟寄存器优化",如 printf(i8* %msg) 前不再 alloca+store+load)。 +# 安全性:仅当 alloca 与唯一 store 都在 entry、loads 任意、无其它取址/别名用途。 +# ============================================================ +def _peep_is_startwith(s: str, pfx: str) -> int: + if s is None or pfx is None: + return 0 + pl: t.CSizeT = string.strlen(pfx) + if pl == 0: + return 1 + if string.strlen(s) < pl: + return 0 + return 1 if string.strncmp(s, pfx, pl) == 0 else 0 + + +def _peep_replace_token(pool: rowptr[memhub.MemBuddy], + line_buf: str, tok: str, repl: str) -> str: + """将 line_buf 中独立记号 % 替换为 repl,返回新缓冲(无变化返回原指针)""" + if line_buf is None or tok is None or repl is None: + return line_buf + tlen: t.CSizeT = string.strlen(tok) + if tlen == 0: + return line_buf + rlen: t.CSizeT = string.strlen(repl) + ln: t.CSizeT = string.strlen(line_buf) + # 预扫是否命中 + hit: int = 0 + i: t.CSizeT = 0 + while i + tlen <= ln: + if line_buf[i] == '%' and string.strncmp(line_buf + i + 1, tok, tlen) == 0: + nxt: int = 0 + if i + 1 + tlen < ln: + cc: int = line_buf[i + 1 + tlen] + if (cc >= 48 and cc <= 57) or (cc >= 65 and cc <= 90) or (cc >= 97 and cc <= 122) or cc == 95: + nxt = 1 + if nxt == 0: + hit = 1 + break + i += 1 + if hit == 0: + return line_buf + # 缓冲大小上界:单行最多 ⌊ln/2⌋ 次替换,每次去掉 ≥2 字节(%+名)换入 rlen 字节; + # 最坏输出 ≤ ln + (ln/2)·rlen + NUL。ln + 1 + rlen·(ln+1) 恒覆盖该上界, + # 避免 K≥2 且替换串更长时把新缓冲写穿(随机内存破坏)。 + out: str = pool.alloc(ln + 1 + rlen * (ln + 1)) + if out is None: + return line_buf + op: t.CSizeT = 0 + oq: t.CSizeT = 0 + i = 0 + while i < ln: + if line_buf[i] == '%' and i + 1 + tlen <= ln \ + and string.strncmp(line_buf + i + 1, tok, tlen) == 0: + nxt2: int = 0 + if i + 1 + tlen < ln: + cc2: int = line_buf[i + 1 + tlen] + if (cc2 >= 48 and cc2 <= 57) or (cc2 >= 65 and cc2 <= 90) or (cc2 >= 97 and cc2 <= 122) or cc2 == 95: + nxt2 = 1 + if nxt2 == 0: + j: t.CSizeT = 0 + while j < rlen: + out[oq] = repl[j] + oq += 1 + j += 1 + i += 1 + tlen + continue + out[oq] = line_buf[i] + oq += 1 + i += 1 + out[oq] = '\0' + return out + + +def _peep_last_ref_eq(sb: str, a_name: str) -> int: + """行内最后一个 '%name' 记号是否等于 a_name(store/load 的指针操作数在行尾)""" + if sb is None or a_name is None: + return 0 + r: str = None + probe: str = sb + while True: + hit: str = string.strchr(probe, '%') + if hit is None: + break + r = hit + probe = hit + 1 + if r is None: + return 0 + nl: t.CSizeT = string.strlen(a_name) + if string.strncmp(r + 1, a_name, nl) == 0: + nxtc: int = r[1 + nl] + if nxtc == 0 or nxtc == 32 or nxtc == 44 or nxtc == 41: + return 1 + return 0 + + +def _peep_alloc_name(eb: str, pool: rowptr[memhub.MemBuddy]) -> str: + """从 '%name = alloca ...' 提取 name(不含 %),失败返回 None""" + if eb is None or eb[0] != '%': + return None + eqpos: str = string.strstr(eb, " = alloca ") + if eqpos is None: + return None + nlen: t.CSizeT = t.CSizeT(t.CUInt64T(eqpos) - t.CUInt64T(eb)) - 1 + if nlen == 0: + return None + nm: str = pool.alloc(nlen + 1) + if nm is None: + return None + string.strncpy(nm, eb + 1, nlen) + nm[nlen] = '\0' + return nm + + +def _peephole_opt(func: rowptr[Function], pool: rowptr[memhub.MemBuddy]): + """文本层本地窥孔:T1 ret zeroinitializer;T2 入口槽 store→load 转发""" + if func is None or func.Blocks is None or pool is None: + return + # 注:TPC 对 "变量 = 指针.字段.成员" 两级自动解引用链会静默丢弃赋值 + # (编译出的 IR 直接读未初始化栈变量 → 随机栈错误)。必须拆成单级: + # 先取字段到局部 rowptr,再判空后取 .Head(与 FunctionPrint 同一模式)。 + func_blocks: rowptr[GSList[BasicBlock]] = func.Blocks + blk: rowptr[BasicBlock] = None + if func_blocks is not None: + blk = func_blocks.Head + + # ---------- T1: ret zeroinitializer ---------- + blk_t1 = blk + while blk_t1 is not None: + line1: rowptr[Line] = None + if blk_t1.Lines is not None: + t1_lines: rowptr[GSList[Line]] = blk_t1.Lines + line1 = t1_lines.Head + while line1 is not None: + if line1.Buf is not None: + zi: str = string.strstr(line1.Buf, " zeroinitializer") + if zi is not None and _peep_is_startwith(line1.Buf, "ret ") != 0: + ty_len: t.CSizeT = t.CSizeT(t.CUInt64T(zi) - t.CUInt64T(line1.Buf)) - 4 + if ty_len > 0: + ty_buf: str = pool.alloc(ty_len + 1) + if ty_buf is not None: + string.strncpy(ty_buf, line1.Buf + 4, ty_len) + ty_buf[ty_len] = '\0' + lit: str = None + if ty_buf[0] == 'i': + lit = "0" + elif string.strchr(ty_buf, 42) is not None: # '*' + lit = "null" + if lit is not None: + nb: str = pool.alloc(ty_len + 16) + if nb is not None: + nb[0] = '\0' + string.strcat(nb, "ret ") + string.strcat(nb, ty_buf) + string.strcat(nb, " ") + string.strcat(nb, lit) + line1.Buf = nb + line1 = line1.Next + blk_t1 = blk_t1.Next + + # ---------- T2: entry alloca 槽转发 ---------- + entry_blk: rowptr[BasicBlock] = blk + if entry_blk is None: + return + entry_lines: rowptr[GSList[Line]] = entry_blk.Lines + if entry_lines is None: + return + e_line: rowptr[Line] = entry_lines.Head + while e_line is not None: + eb: str = e_line.Buf + if eb is not None: + a_name: str = _peep_alloc_name(eb, pool) + if a_name is not None: + st_val: str = None + st_ok: int = 0 + st_count: int = 0 + st_line_order: int = -1 + load_ltoks: str = pool.alloc(8 * 64) + load_cnt: int = 0 + load_entry_order: t.CInt64T = 0 + alloca_order: int = -1 + order: int = 0 + unsafe: int = 0 + # 第一遍:统计本 alloca 的 store/load/其它引用及行序 + blk_s = blk + while blk_s is not None: + l_s: rowptr[Line] = None + if blk_s.Lines is not None: + scan_lines: rowptr[GSList[Line]] = blk_s.Lines + l_s = scan_lines.Head + while l_s is not None: + sb: str = l_s.Buf + if sb is not None: + is_alloc_def: int = 0 + if sb[0] == '%': + tmp_nm: str = _peep_alloc_name(sb, pool) + if tmp_nm is not None and string.strcmp(tmp_nm, a_name) == 0: + is_alloc_def = 1 + if is_alloc_def == 0 and _peep_last_ref_eq(sb, a_name) != 0: + if _peep_is_startwith(sb, "store ") != 0: + st_count += 1 + if st_count == 1: + vcomma: str = string.strstr(sb + 6, ", ") + if vcomma is not None: + vlen: t.CSizeT = t.CSizeT(t.CUInt64T(vcomma) - t.CUInt64T(sb + 6)) + if vlen > 0: + vbuf: str = pool.alloc(vlen + 1) + if vbuf is not None: + string.strncpy(vbuf, sb + 6, vlen) + vbuf[vlen] = '\0' + st_val = vbuf + st_ok = 1 + else: + unsafe = 1 + if blk_s == entry_blk: + st_line_order = order + elif string.strstr(sb, " = load ") is not None: + ls: str = string.strstr(sb, "%") + if ls is not None and load_cnt < 64: + lname_len: t.CSizeT = t.CSizeT( + t.CUInt64T(string.strstr(sb, " = load ")) - t.CUInt64T(ls)) + lname: str = pool.alloc(lname_len + 1) + if lname is not None: + string.strncpy(lname, ls + 1, lname_len - 1) + lname[lname_len - 1] = '\0' + slotp: str | t.CPtr = t.CPtr(t.CUInt64T(load_ltoks) + load_cnt * 8) + slotp[0] = lname + load_cnt += 1 + if blk_s == entry_blk and st_line_order < 0: + load_entry_order += 1 + else: + unsafe = 1 + if sb is not None: + order += 1 + l_s = l_s.Next + blk_s = blk_s.Next + # 判据 + safe_val: str = None + if unsafe == 0 and st_count == 1 and st_ok != 0 and st_line_order >= 0 \ + and load_cnt > 0 and load_entry_order == 0 and st_val is not None: + pct: str = string.strchr(st_val, '%') + if pct is None: + sp1: str = string.strchr(st_val, ' ') + if sp1 is not None and sp1[1] != 0: + safe_val = sp1 + 1 + else: + safe_val = st_val + else: + if string.strchr(pct, ' ') is None and string.strchr(pct, ',') is None: + safe_val = pct + if safe_val is not None: + # 第二遍:替换 load 名引用 + li2: int = 0 + while li2 < load_cnt: + slotsp: str | t.CPtr = t.CPtr(t.CUInt64T(load_ltoks) + li2 * 8) + ltok: str = slotsp[0] + if ltok is not None: + blk_r = blk + while blk_r is not None: + lr: rowptr[Line] = None + if blk_r.Lines is not None: + repl_lines: rowptr[GSList[Line]] = blk_r.Lines + lr = repl_lines.Head + while lr is not None: + if lr.Buf is not None: + nb2: str = _peep_replace_token(pool, lr.Buf, ltok, safe_val) + if nb2 is not None and nb2 is not lr.Buf: + lr.Buf = nb2 + lr = lr.Next + blk_r = blk_r.Next + li2 += 1 + # 删除:alloca def / 唯一 store / 全部 load 行 + blk_d = blk + while blk_d is not None: + ld: rowptr[Line] = None + if blk_d.Lines is not None: + kill_lines: rowptr[GSList[Line]] = blk_d.Lines + ld = kill_lines.Head + while ld is not None: + db: str = ld.Buf + if db is not None: + kill: int = 0 + dnm: str = None + if db[0] == '%': + dnm = _peep_alloc_name(db, pool) + if dnm is not None and string.strcmp(dnm, a_name) == 0: + kill = 1 + if kill == 0 and _peep_last_ref_eq(db, a_name) != 0: + if _peep_is_startwith(db, "store ") != 0 \ + or string.strstr(db, " = load ") is not None: + kill = 1 + if kill != 0: + ld.Buf = None + ld = ld.Next + blk_d = blk_d.Next + e_line = e_line.Next + + # ---------- T3: no-op bitcast 消除 ---------- + _peep_noop_bitcast(func, pool) + + +def _peep_noop_bitcast(func: rowptr[Function], pool: rowptr[memhub.MemBuddy]): + """T3: 消除 no-op bitcast(bitcast %x to ,两侧类型相同)。 + + 生成端(虚调用/联合位宽转换)会产生同类型恒等 bitcast(如 + `%6 = bitcast i8* %ok_msg to i8*`),纯冗余指令。把 %x 的所有引用 + 替换为源操作数(%SSA/@global/常量 token)后删除该行。 + 保守限制:类型与操作数均为不含空格的简单 token。 + """ + if func is None or pool is None or func.Blocks is None: + return + again: int = 1 + while again != 0: + again = 0 + hit_line: rowptr[Line] = None + nm_buf: str = None + src_buf: str = None + blk: rowptr[BasicBlock] = func.Blocks.Head + while blk is not None and hit_line is None: + if blk.Lines is not None: + ln: rowptr[Line] = blk.Lines.Head + while ln is not None and hit_line is None: + if ln.Buf is not None: + eqpos: str = string.strstr(ln.Buf, " = bitcast ") + if eqpos is not None: + nlen: t.CSizeT = t.CSizeT(t.CUInt64T(eqpos) - t.CUInt64T(ln.Buf)) - 1 + if nlen > 0: + after: str = eqpos + 11 # 跳过 " = bitcast " + sp1: str = string.strchr(after, ' ') + tpos: str = string.strstr(after, " to ") + if sp1 is not None and tpos is not None \ + and t.CUInt64T(sp1) < t.CUInt64T(tpos): + tyA_len: t.CSizeT = t.CSizeT(t.CUInt64T(sp1) - t.CUInt64T(after)) + src_st: str = sp1 + 1 + src_len: t.CSizeT = t.CSizeT(t.CUInt64T(tpos) - t.CUInt64T(src_st)) + tyB: str = tpos + 4 + tyB_len: t.CSizeT = string.strlen(tyB) + if src_len > 0 and string.strchr(tyB, ' ') is None \ + and t.CUInt64T(string.strchr(src_st, ' ')) == t.CUInt64T(tpos) \ + and tyA_len == tyB_len \ + and string.strncmp(after, tyB, tyA_len) == 0: + nm_buf = pool.alloc(nlen + 1) + if nm_buf is not None: + string.strncpy(nm_buf, ln.Buf + 1, nlen) + nm_buf[nlen] = '\0' + src_buf = pool.alloc(src_len + 1) + if src_buf is not None: + string.strncpy(src_buf, src_st, src_len) + src_buf[src_len] = '\0' + hit_line = ln + ln = ln.Next + blk = blk.Next + if hit_line is None or nm_buf is None or src_buf is None: + return + # 全函数把 %nm 的引用替换为源操作数 + blk = func.Blocks.Head + while blk is not None: + if blk.Lines is not None: + ln2: rowptr[Line] = blk.Lines.Head + while ln2 is not None: + if ln2.Buf is not None: + rb: str = _peep_replace_token(pool, ln2.Buf, nm_buf, src_buf) + if rb is not None and rb is not ln2.Buf: + ln2.Buf = rb + ln2.Len = string.strlen(rb) + ln2 = ln2.Next + blk = blk.Next + hit_line.Buf = None + again = 1 + + # ============================================================ # FunctionPrint: 将函数序列化为 IR 文本 # @@ -675,10 +1049,14 @@ def FunctionPrint(buf: str, size: t.CSizeT, """将函数 func 序列化为 IR 文本写入 buf""" if func is None or buf is None or size == 0: return - # 在序列化前重编号数字 SSA 名,确保按文本输出顺序单调递增。 - # 解决 build_alloca_at_entry 在入口块终止指令前插入 alloca 导致 - # SSA 名非单调(llc 报错 "instruction expected to be numbered '%N' or greater")。 + # 先本地窥孔(ret zeroinitializer→0/null、入口槽 store→load 转发、 + # no-op bitcast 消除):窥孔按"名称一致性"匹配、删除行置 Buf=None; + # RenumberSSA 遍历时已跳过 Buf=None 行 → 窥孔之后再重编号,输出 SSA + # 编号连续(窥孔删行后不再出现 %1→%5 空洞,文件更紧凑)。 # RenumberSSA 内部会跳过 declare 函数(IsDeclared==1),无需在此判断。 + if func.IsDeclared == 0: + _peephole_opt(func, pool) + RenumberSSA(func, pool) ty_buf: str = pool.alloc(128) diff --git a/includes/llvmlite/__module.vp b/includes/llvmlite/__module.vp index 6e23f4f..eb58c5f 100644 --- a/includes/llvmlite/__module.vp +++ b/includes/llvmlite/__module.vp @@ -367,9 +367,10 @@ class LLVMModule: stdlib.exit(1) if mode == OUTPUT_STUB: # stub 模式:仅输出 declare(IsDeclared==1) + # FunctionPrint 的 declare 分支已以 "\n" 收尾(L768),这里不再 + # 补换行,否则每个 declare 之间多出一个空行(美观/文件瘦身)。 if func.IsDeclared == 1: FunctionPrint(buf, size, func, pool) - _append_cstr(buf, size, "\n") elif mode == OUTPUT_TEXT: # text 模式:仅输出 define(IsDeclared==0) if func.IsDeclared == 0: diff --git a/includes/string.vp b/includes/string.vp index 7926dbb..c198f86 100644 --- a/includes/string.vp +++ b/includes/string.vp @@ -167,7 +167,7 @@ def strspn(s: str, skip: str = " ") -> int: return si # Memory set function -export def memset(ptr: t.CVoid | t.CPtr, value: int, num: t.CSizeT) -> t.CVoid | t.CPtr: +export def memset(ptr: t.CPtr, value: int, num: t.CSizeT) -> t.CPtr: # Original implementation: # p: BYTEPTR = BYTEPTR(ptr) # i: t.CSizeT diff --git a/lib/core/Handles/HandlesAnnAssign.py b/lib/core/Handles/HandlesAnnAssign.py index 8e2713e..c9128d1 100644 --- a/lib/core/Handles/HandlesAnnAssign.py +++ b/lib/core/Handles/HandlesAnnAssign.py @@ -558,6 +558,56 @@ class AnnAssignHandle(BaseHandle): Gen.var_struct_class[VarName] = _union_struct_name2 if getattr(Gen, 'global_struct_class', None) is not None: Gen.global_struct_class[VarName] = _union_struct_name2 + # Subscript rowptr[X] / t.CPtr[X] 注解的本地结构指针变量(如 + # includes/ast/parser.vp _fix_store_ctx 里 `tp: rowptr[Tuple] = + # (rowptr[Tuple])(node)`,随后 `tp_elts = tp.elts`):TypeMerge 的 + # builtins 分支把 rowptr[X] 折叠为 i8*(PtrCount=1/CVoid),既不登记 + # var_struct_class 也不保留内层 X —— 单级 Name 字段取值(tp.elts) + # 在属性访问层 ClassName 解析为 None → 求值 None → 赋值被 fail-fast + # 拦截(parser.vp L427 bootstrap 根因)。与上方 BinOp 联合的短名回退 + # 对称:把内层 X 解析为真实 struct 键(兼容短名 / 带 class_sha1 前缀 + # 的键)并登记;仅在缺失或指针占位(rowptr…)时覆盖,不碰已精确登记值。 + _rst_sub: ast.AST | None = None + if isinstance(Node.annotation, ast.Subscript): + _rst_v: ast.expr = Node.annotation.value + _rst_nm: str = '' + if isinstance(_rst_v, ast.Name): + _rst_nm = _rst_v.id + elif isinstance(_rst_v, ast.Attribute) and isinstance(_rst_v.value, ast.Name): + _rst_nm = f'{_rst_v.value.id}.{_rst_v.attr}' + if _rst_nm in ('rowptr', 't.CPtr'): + _rst_sub = Node.annotation + if _rst_sub is not None: + _rst_sl: ast.AST = _rst_sub.slice + if hasattr(ast, 'Index') and isinstance(_rst_sl, ast.Index): + _rst_sl = _rst_sl.value + _rst_tn: str = '' + if isinstance(_rst_sl, ast.Name): + _rst_tn = _rst_sl.id + elif isinstance(_rst_sl, ast.Attribute) and isinstance(_rst_sl.value, ast.Name): + _rst_tn = _rst_sl.attr + _rst_tk: str | None = None + if _rst_tn: + if _rst_tn in Gen.structs: + _rst_tk = _rst_tn + else: + _rst_sha: str | None = (getattr(Gen, 'class_sha1_map', {}) or {}).get(_rst_tn) + if _rst_sha and f'{_rst_sha}.{_rst_tn}' in Gen.structs: + _rst_tk = f'{_rst_sha}.{_rst_tn}' + else: + for _rst_k3 in Gen.structs: + _rst_short3: str = _rst_k3.split('.')[-1] if '.' in _rst_k3 else _rst_k3 + if _rst_short3 == _rst_tn: + _rst_tk = _rst_k3 + break + if _rst_tk: + _rst_cur: str | None = Gen.var_struct_class.get(VarName) + _rst_need: bool = (not _rst_cur or _rst_cur == 'rowptr' or '.rowptr' in _rst_cur + or _rst_cur.startswith('rowptr[')) + if _rst_need and _rst_cur != _rst_tk: + Gen.var_struct_class[VarName] = _rst_tk + if getattr(Gen, 'global_struct_class', None) is not None: + Gen.global_struct_class[VarName] = _rst_tk # 检测指针到指针缓冲区变量:注解为 StructName | t.CPtr,且赋值来自 t.CPtr(...) 调用。 # 这种变量(如 list[T].__getitem__ 中的 elem_ptr: T | t.CPtr = t.CPtr(...)) # 实际指向存储结构体指针的缓冲区(T=AST|t.CPtr 时特化为 AST*,缓冲区存 AST* 数组)。 @@ -598,6 +648,10 @@ class AnnAssignHandle(BaseHandle): InitValue: ir.Value | None = self.HandleExprLlvm(Node.value, VarType=VarType) if InitValue: self._StoreOrStrCopy(VarName, var, InitValue) + elif isinstance(Node.value, ast.Attribute): + # 防静默:带值带注解属性链求值失败禁止跳过(见 __function.vp + # 两级链 blk = func.Blocks.Head 编译产物 store 丢失根因)。 + self._RaiseUnresolvedExpr("带注解赋值", Node.value, Gen) Gen._record_var_signedness(VarName, IsUnsigned) return del Gen._reg_values[VarName] @@ -609,6 +663,10 @@ class AnnAssignHandle(BaseHandle): CalledName: str = Node.value.func.id if CalledName in Gen._closure_return_types: Gen._closure_var_types[VarName] = Gen._closure_return_types[CalledName] + if InitValue is None and Node.value is not None and isinstance(Node.value, ast.Attribute): + # 防静默:带值带注解的属性链求值失败(返回 None)必须报编译错误, + # 否则变量 alloca 已创建却无 store → 后续 load 未初始化栈变量。 + self._RaiseUnresolvedExpr("带注解赋值", Node.value, Gen) if VarName in Gen._reg_values: del Gen._reg_values[VarName] if VarName in Gen.variables and Gen.variables[VarName] is not None: @@ -853,6 +911,10 @@ class AnnAssignHandle(BaseHandle): Value: ir.Value | None = self.HandleExprLlvm(Node.value, VarType=AttrVarType) if Value: self._HandleAttributeStoreLlvm(Node.target, Value) + elif isinstance(Node.value, ast.Attribute): + # 防静默:self 字段带注解赋值右侧属性链求值失败必须报错 + self._RaiseUnresolvedExpr("self 字段带注解赋值", Node.value, Gen) + if Value: AttrName: str = Node.target.attr len_name: str = f'{AttrName}__len' ClassName: str | None = self._CurrentCpythonObjectClass diff --git a/lib/core/Handles/HandlesAssign.py b/lib/core/Handles/HandlesAssign.py index 29c1ba6..f882d70 100644 --- a/lib/core/Handles/HandlesAssign.py +++ b/lib/core/Handles/HandlesAssign.py @@ -173,6 +173,10 @@ class AssignHandle(BaseHandle): if CalledName in Gen._closure_return_types: Gen._closure_var_types[VarName] = Gen._closure_return_types[CalledName] if not Value: + # 防静默:右侧是属性链(如 blk = func.Blocks.Head)却求值失败时 + # 必须报错,禁止跳过 store 留下未初始化变量(随机崩溃)。 + if isinstance(Node.value, ast.Attribute): + self._RaiseUnresolvedExpr("赋值", Node.value, Gen) return if isinstance(Value.type, ir.VoidType): return @@ -447,8 +451,11 @@ class AssignHandle(BaseHandle): TargetType = m_type break Value: ir.Value | None = self.HandleExprLlvm(Node.value, VarType=TargetType) - if Value: - self._HandleAttributeStoreLlvm(Target, Value) + if not Value: + if isinstance(Node.value, ast.Attribute): + self._RaiseUnresolvedExpr("属性写入", Node.value, Gen) + return + self._HandleAttributeStoreLlvm(Target, Value) elif isinstance(Target, ast.Subscript): TargetType: ir.Type | None = None SubVarName: str | None = None @@ -480,8 +487,11 @@ class AssignHandle(BaseHandle): elif isinstance(var_type, ir.ArrayType): TargetType = var_type.element Value: ir.Value | None = self.HandleExprLlvm(Node.value, VarType=TargetType) - if Value: - self._HandleSubscriptStoreLlvm(Target, Value) + if not Value: + if isinstance(Node.value, ast.Attribute): + self._RaiseUnresolvedExpr("下标写入", Node.value, Gen) + return + self._HandleSubscriptStoreLlvm(Target, Value) elif isinstance(Target, ast.Tuple): if isinstance(Node.value, ast.Call): FuncName: str | None = None diff --git a/lib/core/Handles/HandlesBase.py b/lib/core/Handles/HandlesBase.py index d92966f..0e21a1e 100644 --- a/lib/core/Handles/HandlesBase.py +++ b/lib/core/Handles/HandlesBase.py @@ -525,6 +525,124 @@ class BaseHandle: def HandleExprLlvm(self, Node: ast.AST, VarType: _ir.Type | str | None = None) -> _ir.Value | None: return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) + @staticmethod + def _ExprText(Node: ast.AST) -> str: + """把属性链/名字节点渲染成源码文本(如 func.Blocks.Head),供错误信息使用""" + if isinstance(Node, ast.Attribute): + parts: list[str] = [] + cur: ast.AST = Node + while isinstance(cur, ast.Attribute): + parts.append(cur.attr) + cur = cur.value + if isinstance(cur, ast.Name): + parts.append(cur.id) + if parts: + return '.'.join(reversed(parts)) + if isinstance(Node, ast.Name): + return Node.id + return getattr(Node, 'attr', '') or '' + + def _RaiseUnresolvedExpr(self, What: str, Node: ast.AST, Gen: Any) -> None: + """fail-fast:属性/成员访问表达式在编译期求值失败(返回 None)时终止。 + + 属性链(含两级自动解引用链,如 blk = func.Blocks.Head)若解析不出 + 目标类型,_handle_attr_nested 会返回 None;赋值调用方若静默跳过 + store,目标 alloca 永不初始化 → 运行期读未初始化栈变量(随机崩溃)。 + 此处用 VLogger 输出 文件名:行:列 + 表达式源码后退出(严格模式语义)。 + """ + import sys + raw_lineno: int = getattr(Node, 'lineno', 0) or 0 + lineno: int = raw_lineno or getattr(Gen, '_current_lineno', 0) or 0 + col: int = getattr(Node, 'col_offset', -1) + src_file: str = getattr(Gen, '_current_source_file', '') or '' + expr_text: str = self._ExprText(Node) + code_line: str = '' + if lineno > 0 and src_file: + # 行号基准修正(vasts AST 行号 vs 磁盘原文件行号偏差): + # Phase2Translator._inject_auto_imports 会在解析前向源码头部注入 + # 1~3 行 "import _list/_dict/json",使 AST 节点 lineno 比磁盘原文件 + # 真实行号大 N(实测 CallGenCBuiltin.vp 真实 1409 报 1410、 + # FuncGenMixin.vp 真实 514 报 515)。而 _get_source_line 基于 + # _current_source_lines(原文件),导致报错行号偏大且"代码行" + # 取错行。修正:以表达式文本为锚,从原始行号向上(至多 8 行) + # 回溯取"最近且包含该表达式文本"的源码行作为真实行号。 + if expr_text and '.' in expr_text and hasattr(Gen, '_get_source_line'): + _src_lines: Any = getattr(Gen, '_current_source_lines', None) + if isinstance(_src_lines, list) and _src_lines: + for cand in range(lineno, max(0, lineno - 8), -1): + if 0 < cand <= len(_src_lines) and expr_text in _src_lines[cand - 1]: + lineno = cand + break + try: + code_line = (Gen._get_source_line(lineno) or '').strip() + except Exception: + code_line = '' + loc: str = src_file + if lineno > 0: + loc += f":{lineno}" + if col >= 0: + loc += f":{col}" + msg: str = (f"{What}表达式 '{expr_text}' 编译期求值为空(属性访问未能解析出" + f"目标类型/成员),赋值将被跳过、变量保持未初始化。位置 {loc}" + f"{(',源码: ' + code_line) if code_line else ''}") + # 现场诊断:dump 最内层基变量在各类注册表/存储中的状态,定位属性解析 + # 在哪一级断裂(var_struct_class 缺失 / struct 键形态不匹配 / 存储退化)。 + diag: str = self._AttrFailDiag(Node, Gen) + if diag: + msg += f"\n[ATTR-DIAG]{diag}" + _vlog().compile_error(msg, src_file, lineno, code_line) + sys.exit(1) + + @staticmethod + def _AttrFailDiag(Node: ast.AST, Gen: Any) -> str: + """提取属性链失败现场:最内层 Name 变量的类登记与存储状态""" + try: + inner: ast.AST = Node + while isinstance(inner, ast.Attribute): + inner = inner.value + if not isinstance(inner, ast.Name): + return '' + var: str = inner.id + seg: list[str] = [] + seg.append(f"var={var}") + vsc: Any = getattr(Gen, 'var_struct_class', {}) or {} + gsc: Any = getattr(Gen, 'global_struct_class', {}) or {} + seg.append(f"var_struct_class[{var}]={vsc.get(var)!r}") + seg.append(f"global_struct_class[{var}]={gsc.get(var)!r}") + def _ty_str(ptr: Any) -> str: + try: + if ptr is None: + return 'None' + return str(ptr.type) + except Exception: + return '?' + for _tab_name, _tab in (('variables', getattr(Gen, 'variables', {}) or {}), + ('_reg_values', getattr(Gen, '_reg_values', {}) or {}), + ('_direct_values', getattr(Gen, '_direct_values', {}) or {}), + ('global_vars', getattr(Gen, 'global_vars', {}) or {})): + if var in _tab: + seg.append(f"{_tab_name}[{var}]={_ty_str(_tab[var])}") + # 最内层类名 → 是否在 class_member_element_class 登记字段 + cn: Any = vsc.get(var) or gsc.get(var) + cmap: Any = getattr(Gen, 'class_member_element_class', {}) or {} + import re as _re + def _short(k: str) -> str: + return _re.sub(r'^[0-9a-fA-F]{16}\.', '', k) + if cn: + hit: list[str] = [] + for key, sub in cmap.items(): + if _short(key) == _short(cn): + hit.append(f"{key}:{sub}") + seg.append(f"elem_class_map_hits={hit or 'NONE'}") + # Gen.structs 中含 cn 短名的键(供键形态比对) + if cn: + struct_keys: list[str] = [k for k in (getattr(Gen, 'structs', {}) or {}) + if _short(k) == _short(cn)] + seg.append(f"structs_keys={struct_keys or 'NONE'}") + return '\n'.join(seg) + except Exception: + return '' + def HandleBodyLlvm(self, Body: ast.AST | list[ast.stmt]) -> Any: return self.Trans.BodyHandler.HandleBodyLlvm(Body) diff --git a/lib/core/Handles/HandlesExprAttr.py b/lib/core/Handles/HandlesExprAttr.py index b51dc94..b1b921a 100644 --- a/lib/core/Handles/HandlesExprAttr.py +++ b/lib/core/Handles/HandlesExprAttr.py @@ -444,6 +444,14 @@ class ExprAttrHandle(BaseHandle): # 解析结构体类名:若 VarName 是结构体变量,优先走结构体字段访问路径 # 避免结构体字段名(如 stdout)与全局变量名冲突时被误解析为全局变量 ClassName: str | None = self._resolve_var_classname(Gen, VarName) + # 查找端键归一:var_struct_class 可能记录裸短名('Tuple'),而 Gen.structs + # 的键是带 class_sha1 前缀的全名(如 '43ec967d0517abc1.Tuple'),或反之。 + # 单级 Name 字段取值(tp.elts)要求 ClassName 能直接定位 Gen.structs 并 + # 加载 stub body 后才能 GEP —— 与 _handle_attr_nested 各分支一致先归一。 + if ClassName and ClassName not in Gen.structs: + _cn_key: str | None = self._find_struct_key_for_class_hint(Gen, ClassName) + if _cn_key: + ClassName = _cn_key # 尝试 attr 直接作为全局变量(仅当 VarName 不是结构体变量时) if not ClassName and AttrName in Gen.module.globals: @@ -455,6 +463,20 @@ class ExprAttrHandle(BaseHandle): return Gen.builder.gep(str_gv, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), 0)], name=f"{AttrName}_str_ptr") return Gen.builder.load(gv, name=AttrName) + if not ClassName: + # 单级 Name 字段取值的类名恢复(跨模块 stub 下 var_struct_class 缺失的 + # 兜底):本地变量(如 `tp: rowptr[Tuple] = (rowptr[Tuple])(node)`)可能 + # 因 rowptr[X] 被折叠为 i8* 而漏登记。若变量 alloca / 值本身可辨识为 + # 结构体指针,按实际 pointee 恢复真实 Gen.structs 键并回填,避免属性 + # 访问求值 None 被 fail-fast 拦截(parser.vp `tp_elts = tp.elts` 根因)。 + if (VarName in Gen.variables or VarName in Gen._reg_values + or VarName in Gen._direct_values or VarName in Gen.global_vars): + _recovered: str | None = self._recover_struct_class(Gen, VarName) + if _recovered: + ClassName = _recovered + Gen.var_struct_class[VarName] = _recovered + if getattr(Gen, 'global_struct_class', None) is not None: + Gen.global_struct_class[VarName] = _recovered if not ClassName: return None @@ -591,6 +613,19 @@ class ExprAttrHandle(BaseHandle): ClassName = cur_spec2 else: Gen.var_struct_class[VarName] = ClassName + # 通用指针槽兜底:静态类名(var_struct_class/键归一后)有效且 ObjVal 是指针, + # 但 pointee 非 struct(如 cast 局部变量 tp: rowptr[Tuple] 的槽被建为 i32**, + # Name 求值 load 一次得到 i32*,上述 struct 匹配/回退均不命中 → return None)。 + # 此时按静态类名信任 bitcast 到 struct* 再走成员 GEP(tp.elts 根因,ATTR-DIAG + # 实证 var_struct_class='Tuple'、structs 有 'Tuple',仅槽位为通用指针形态)。 + if (not struct_match and ClassName and ClassName in Gen.structs + and isinstance(ObjVal.type, ir.PointerType) + and not isinstance(ObjVal.type.pointee, ir.IdentifiedStructType) + and not isinstance(ObjVal.type.pointee, ir.LiteralStructType)): + ObjVal = Gen.builder.bitcast( + ObjVal, ir.PointerType(Gen.structs[ClassName]), + name=f"cast_slot_{ClassName}") + struct_match = True if not struct_match: return None @@ -637,6 +672,45 @@ class ExprAttrHandle(BaseHandle): result = self._gep_and_Load_member(Gen, ObjVal, offset, AttrName, ClassName, st) return result + def _recover_struct_class(self, Gen: LlvmCodeGenerator, VarName: str) -> str | None: + """由变量的 LLVM 存储类型恢复结构体类键(var_struct_class 缺失时兜底)。 + + 单级 Name 字段取值(如 tp.elts)的本地变量,若其注解 rowptr[X] 被 TypeMerge + builtins 分支折叠成 i8*、且 var_struct_class 未登记 X,属性访问层无法解析 + 类名。此处直接检查 Gen.variables / _reg_values / _direct_values / + global_vars 中该变量的 alloca(或值)指针 pointee:能辨识出 + IdentifiedStruct 就按 pointee 恢复真实 Gen.structs 键(精确匹配失败时按 + 短名找元素最多的完整版本),供调用方回填并继续 GEP 成员访问。不发射任何 + 额外 IR(纯查表)。 + """ + if not VarName: + return None + probe: ir.Type | None = None + vp: Any = Gen.variables.get(VarName) + if vp is not None and isinstance(vp.type, ir.PointerType): + probe = vp.type.pointee + if isinstance(probe, ir.PointerType): + probe = probe.pointee + if probe is None: + for reg in (Gen._reg_values.get(VarName), Gen._direct_values.get(VarName)): + if reg is not None and isinstance(reg.type, ir.PointerType): + probe = reg.type.pointee + if isinstance(probe, ir.PointerType): + probe = probe.pointee + break + if probe is None and VarName in Gen.global_vars and hasattr(Gen, 'module') and VarName in Gen.module.globals: + gv: Any = Gen.module.globals[VarName] + if isinstance(gv, ir.GlobalVariable) and isinstance(gv.type, ir.PointerType): + probe = gv.type.pointee + if isinstance(probe, ir.PointerType): + probe = probe.pointee + if probe is None or not isinstance(probe, ir.IdentifiedStructType): + return None + found: Any = Gen.find_struct_by_pointee(probe) + if found: + return found[0] + return self._pointee_llvm_to_struct_key(Gen, probe) + def _handle_attr_nested(self, Node: ast.Attribute) -> ir.Value | None: """处理 a.b.c 嵌套属性访问""" Gen: LlvmCodeGenerator = self.Trans.LlvmGen @@ -694,35 +768,60 @@ class ExprAttrHandle(BaseHandle): # char* → struct* cast + 成员访问 if isinstance(pointee, ir.IntType) and pointee.width == 8: - AttrClassName: str | None = self._get_attr_class(Node.value, Gen) - if AttrClassName and AttrClassName in Gen.structs: - st: Any - ok: bool - st, ok = self._try_Load_struct_from_stub(Gen, AttrClassName) - if not isinstance(st, ir.IdentifiedStructType) or st.elements is None: - return None - CastedObj: Any = Gen.builder.bitcast(ObjVal, ir.PointerType(st), name=f"cast_{AttrClassName}") - offset: int | None = Gen._get_member_offset(Node.attr, AttrClassName) - if offset is None: - return None - if offset < len(st.elements) and isinstance(st.elements[offset], ir.VoidType): - return None - return self._gep_and_Load_member(Gen, CastedObj, offset, Node.attr, AttrClassName, st) + # 两级自动解引用链(变量 = 指针.字段.成员,如 blk = func.Blocks.Head) + # 根因修复:跨模块 stub 会把容器/类内指针字段(rowptr[GSList[BasicBlock]] + # 等)退化为 i8*,此处 ObjVal 是刚从结构体字段 load 出的 i8*。必须恢复 + # 该字段声明的元素/特化类(如 'GSList[BasicBlock]')才能 + # bitcast + GEP + load 出成员。否则本函数返回 None → AnnAssign/Assign + # 静默跳过 store → 目标 alloca 永不初始化(_peephole_opt 读未初始化 + # 栈变量随机崩溃,见 __function.vp L783 注释)。 + # 解析顺序:_resolve_chain_result_class 沿链前向解析父表达式(可为任意 + # 级数,如 ve.Alloca.Ty)的结果类;失败回退 _get_attr_class 直查 + # class_member_element_class;再回退 _resolve_attr_parent_hint(与下方 + # struct 分支同一 parent_hint 机制:func 的 var_struct_class + + # class_member_element_class 给出 GSList[BasicBlock] 提示);三者都兼容 + # 裸名/带 sha1 前缀的键。 + AttrClassName: str | None = self._resolve_chain_result_class(Node.value, Gen) + if not AttrClassName: + AttrClassName = self._get_attr_class(Node.value, Gen) + if not AttrClassName: + AttrClassName = self._resolve_attr_parent_hint(Node.value, Gen) + ResolvedKey: str | None = self._find_struct_key_for_class_hint(Gen, AttrClassName) + if ResolvedKey is None or ResolvedKey not in Gen.structs: + return None + st: Any + ok: bool + st, ok = self._try_Load_struct_from_stub(Gen, ResolvedKey) + if not isinstance(st, ir.IdentifiedStructType): + return None + if st.elements is None: + # stub 仍 opaque(如跨模块泛型仅声明):走泛型特化候选访问 + spec_val: Any = self._try_access_opaque_generic_member(Gen, ObjVal, st, Node, ResolvedKey, AttrClassName) + if spec_val is not None: + return spec_val + return None + CastedObj: Any = Gen.builder.bitcast(ObjVal, ir.PointerType(st), name=f"cast_{ResolvedKey}") + if Node.attr in Gen.class_member_bitoffsets.get(ResolvedKey, {}): + return self._load_bitfield_member(CastedObj, ResolvedKey, Node.attr) + offset: int | None = Gen._get_member_offset(Node.attr, ResolvedKey) + if offset is None: + return None + if offset < len(st.elements) and isinstance(st.elements[offset], ir.VoidType): + return None + return self._gep_and_Load_member(Gen, CastedObj, offset, Node.attr, ResolvedKey, st) # 已知结构体类型 → 直接成员访问 if isinstance(pointee, (ir.LiteralStructType, ir.IdentifiedStructType)): - # 提取父上下文特化提示:当 Node.value 是 Attribute(Name, attr) 时, - # 从 var_struct_class 和 class_member_element_class 获取字段声明的特化名。 - # 例如 func.Blocks.Head 中,func 是 Function,Blocks 字段声明为 GSList[BasicBlock], - # 提示为 'GSList[BasicBlock]',避免在所有 GSList[T] 都有 Head 字段时选错特化版本。 - parent_hint: str | None = None - if isinstance(Node.value, ast.Attribute) and isinstance(Node.value.value, ast.Name): - p_var: str = Node.value.value.id - p_attr: str = Node.value.attr - p_CN: str | None = Gen.var_struct_class.get(p_var) - if p_CN: - p_elem_map: Any = Gen.class_member_element_class.get(p_CN, {}) - parent_hint = p_elem_map.get(p_attr) + # 父上下文特化提示:Node.value 是 Attribute(Name, attr)(如 + # func.Blocks)时,从 var_struct_class/global_struct_class + + # class_member_element_class 取字段声明的特化名(如 'GSList[BasicBlock]'), + # 避免在所有 GSList[T] 都有 Head/Tail/Count 字段时选错特化版本。 + # 与 char* 分支共用 _resolve_attr_parent_hint(兼容裸名/sha1 前缀键); + # 父表达式为多级链(Node.value 是 Attribute)时 _resolve_attr_parent_hint + # 无法取提示,用 _resolve_chain_result_class 沿链前向解析补充。 + parent_hint: str | None = self._resolve_attr_parent_hint(Node, Gen) + if not parent_hint and isinstance(Node.value, ast.Attribute): + parent_hint = self._resolve_chain_result_class(Node.value, Gen) or parent_hint for CN, ST in Gen.structs.items(): if pointee == ST or (isinstance(pointee, ir.IdentifiedStructType) and isinstance(ST, ir.IdentifiedStructType) and pointee.name == ST.name): st, ok = self._try_Load_struct_from_stub(Gen, CN) @@ -1584,23 +1683,251 @@ class ExprAttrHandle(BaseHandle): return ir.Constant(ir.IntType(32), info.value) return None + def _lookup_member_elem_class(self, Gen: LlvmCodeGenerator, OwnerClass: str | None, FieldName: str) -> str | None: + """在 class_member_element_class 中按"属主类 + 字段名"查找元素/特化类。 + + class_member_element_class 的 key 与调用方持有的类名(var_struct_class / + _CurrentCpythonObjectClass 等)可能存在"裸名 vs 带 sha1 前缀"的不一致 + (如 key='Function',而持有者是 '732a8c24abb9b516.Function')。先精确 + 匹配,再按短名(剥离 16 位 hex 前缀)遍历所有 key 匹配,确保能恢复 + 字段声明的特化类(如 rowptr[GSList[BasicBlock]] → 'GSList[BasicBlock]')。 + """ + if not OwnerClass or not FieldName: + return None + elem_map: Any = getattr(Gen, 'class_member_element_class', {}) or {} + if OwnerClass in elem_map: + sub_map: Any = elem_map[OwnerClass] + if FieldName in sub_map: + return sub_map[FieldName] + owner_short: str = Gen._extract_short_name(OwnerClass) + for key, sub_map in elem_map.items(): + if Gen._extract_short_name(key) != owner_short: + continue + if FieldName in sub_map: + return sub_map[FieldName] + return None + + def _resolve_attr_parent_hint(self, Node: ast.Attribute, Gen: LlvmCodeGenerator) -> str | None: + """从父对象上下文解析字段的元素/容器特化提示(parent_hint)。 + + 例:func.Blocks.Head —— Node.value 是 func.Blocks,父变量 func 的 + var_struct_class/global_struct_class 是 'Function',Blocks 字段声明为 + rowptr[GSList[BasicBlock]],class_member_element_class 记录元素提示 + 'GSList[BasicBlock]'。该提示用于把退化为 i8* 的字段指针恢复成目标 + 特化类(char* 分支),或在所有 GSList[T] 都有 Head/Tail/Count 时 + 选择正确特化版本(struct 分支)。兼容裸名/带 sha1 前缀键。 + """ + if not (isinstance(Node, ast.Attribute) and isinstance(Node.value, ast.Name)): + return None + p_var: str = Node.value.id + p_attr: str = Node.attr + p_CN: str | None = Gen.var_struct_class.get(p_var) + if not p_CN and getattr(Gen, 'global_struct_class', None): + p_CN = Gen.global_struct_class.get(p_var) + if not p_CN: + return None + return self._lookup_member_elem_class(Gen, p_CN, p_attr) + + def _find_struct_key_for_class_hint(self, Gen: LlvmCodeGenerator, ClassHint: str | None) -> str | None: + """把 class_member_element_class 记录的类/特化名解析为 Gen.structs 的真实键。 + + 记录值可能是裸名('GSList[BasicBlock]')或带 sha1 前缀 + ('8e92345fd262a343.GSList[BasicBlock]'),而 Gen.structs 的键可能是 + 另一种形态。依次尝试:精确键 → 短名键 → class_sha1_map 重建前缀键 → + 遍历 Gen.structs 按短名匹配。 + """ + if not ClassHint: + return None + if ClassHint in Gen.structs: + return ClassHint + short: str = Gen._extract_short_name(ClassHint) + if short in Gen.structs: + return short + expected_sha1: str | None = (getattr(Gen, 'class_sha1_map', {}) or {}).get(short) + if expected_sha1: + prefixed: str = f"{expected_sha1}.{short}" + if prefixed in Gen.structs: + return prefixed + for key in Gen.structs: + if Gen._extract_short_name(key) == short: + return key + return None + def _get_attr_class(self, Node: ast.AST, Gen: LlvmCodeGenerator) -> str | None: if isinstance(Node, ast.Attribute): # 注: 不再硬编码 ZLIB_VERSION / C_OK,它们应从符号表查找 if isinstance(Node.value, ast.Name) and Node.value.id == 'self': ClassName: str | None = self.Trans._CurrentCpythonObjectClass - if ClassName and ClassName in Gen.class_member_element_class: - return Gen.class_member_element_class[ClassName].get(Node.attr) + return self._lookup_member_elem_class(Gen, ClassName, Node.attr) if isinstance(Node.value, ast.Name): VarName: str = Node.value.id - if VarName in Gen.var_struct_class: - ParentClass: str = Gen.var_struct_class[VarName] - if ParentClass in Gen.class_member_element_class: - return Gen.class_member_element_class[ParentClass].get(Node.attr) + ClassName: str | None = Gen.var_struct_class.get(VarName) + if not ClassName and getattr(Gen, 'global_struct_class', None): + ClassName = Gen.global_struct_class.get(VarName) + if ClassName: + return self._lookup_member_elem_class(Gen, ClassName, Node.attr) if isinstance(Node.value, ast.Attribute): - ParentClass = self._get_attr_class(Node.value, Gen) - if ParentClass and ParentClass in Gen.class_member_element_class: - return Gen.class_member_element_class[ParentClass].get(Node.attr) + ParentClass: str | None = self._get_attr_class(Node.value, Gen) + if ParentClass: + return self._lookup_member_elem_class(Gen, ParentClass, Node.attr) + return None + + # ========== 任意级属性链:逐段前向类解析 ========== + + def _pointee_llvm_to_struct_key(self, Gen: LlvmCodeGenerator, llvm_type: ir.Type) -> str | None: + """把 LLVM 成员类型(Ptr->IdentifiedStruct / IdentifiedStruct)解析为 + Gen.structs 的真实键。 + + 先精确匹配(find_struct_by_pointee),失败再按短名匹配(优先选择 + 有完整 elements 的定义),兼容 sha1 前缀冲突/泛型特化场景。 + """ + cand: ir.Type = llvm_type + if isinstance(cand, ir.PointerType): + cand = cand.pointee + if not isinstance(cand, ir.IdentifiedStructType): + return None + found: Any = Gen.find_struct_by_pointee(cand) + if found: + return found[0] + cand_short: str = Gen._extract_short_name(cand.name) + best_key: str | None = None + best_elems: int = -1 + for k in Gen.structs: + if Gen._extract_short_name(k) != cand_short: + continue + st_v: Any = Gen.structs[k] + if not isinstance(st_v, ir.IdentifiedStructType): + continue + n_elems: int = len(st_v.elements) if st_v.elements is not None else 0 + if n_elems > best_elems: + best_elems = n_elems + best_key = k + return best_key + + def _owner_member_llvm_types(self, Gen: LlvmCodeGenerator, OwnerClass: str) -> list[tuple[str, ir.Type]]: + """收集 OwnerClass(含继承父类)的成员 (名, LLVM 类型) 列表。 + + class_members 的键可能是带 sha1 前缀全名,此处按短名/剥 '[' 泛型 + 参数后的基名匹配,并沿 class_parents 继承链向上补充父类字段。 + """ + owner_short: str = Gen._extract_short_name(OwnerClass) + base_short: str = owner_short.split('[')[0] if '[' in owner_short else owner_short + members_map: dict[str, list] = {} + for k, v in getattr(Gen, 'class_members', {}).items(): + k_short: str = Gen._extract_short_name(k) + k_base: str = k_short.split('[')[0] if '[' in k_short else k_short + if k_short == owner_short or k_base == base_short: + members_map[k] = list(v) + ordered: list[tuple[str, ir.Type]] = [] + seen: set[str] = set() + for m in self._class_and_parents(Gen, OwnerClass): + m_short: str = Gen._extract_short_name(m) + for k, v in members_map.items(): + if Gen._extract_short_name(k) != m_short: + continue + for name, ty in v: + if name not in seen: + seen.add(name) + ordered.append((name, ty)) + return ordered + + def _class_and_parents(self, Gen: LlvmCodeGenerator, OwnerClass: str) -> list[str]: + """OwnerClass 自身 + 全部父类短名链(子类在前)""" + chain: list[str] = [] + seen: set[str] = set() + cur: str = Gen._extract_short_name(OwnerClass) + parents_map: Any = getattr(Gen, 'class_parents', {}) or {} + single_parent: Any = getattr(Gen, 'class_parent', {}) or {} + while cur and cur not in seen: + seen.add(cur) + chain.append(cur) + nxt: list[str] = parents_map.get(cur, []) + if not nxt and cur in single_parent and single_parent[cur]: + nxt = [single_parent[cur]] + if not nxt: + break + # 多继承:只取第一条链向上(深度优先声明顺序)保持与 + # _get_member_offset 的继承链回退一致 + cur = Gen._extract_short_name(nxt[0]) + return chain + + def _field_element_key(self, Gen: LlvmCodeGenerator, OwnerClass: str | None, AttrName: str) -> str | None: + """解析 OwnerClass 上 AttrName 字段的"元素 struct 键"(可在 Gen.structs 定位)。 + + 供任意级链(ve.Alloca.Ty.Pointee)逐段恢复目标类:跨模块 stub 会把 + rowptr[X] 指针字段退化为 i8*,load 出的值丢失 struct 身份;此处综合 + class_member_element_class(登记的元素/特化类)→ class_members LLVM + 成员类型 → struct elements 字段类型 推断该字段指向的 struct 键, + 兼容裸名/sha1 前缀/泛型特化名。 + """ + if not OwnerClass or not AttrName: + return None + # 1) class_member_element_class 直查(含短名模糊匹配) + hint: str | None = self._lookup_member_elem_class(Gen, OwnerClass, AttrName) + if hint: + k: str | None = self._find_struct_key_for_class_hint(Gen, hint) + if k: + return k + # 2) class_members 成员 LLVM 类型 + for m_name, m_type in self._owner_member_llvm_types(Gen, OwnerClass): + if m_name != AttrName: + continue + k2: str | None = self._pointee_llvm_to_struct_key(Gen, m_type) + if k2: + return k2 + break + # 3) struct elements 字段类型(加载 stub 后按偏移取值) + owner_key: str | None = self._find_struct_key_for_class_hint(Gen, OwnerClass) + if owner_key and owner_key in Gen.structs: + st_v: Any + ok_v: bool + st_v, ok_v = self._try_Load_struct_from_stub(Gen, owner_key) + if isinstance(st_v, ir.IdentifiedStructType) and st_v.elements is not None: + off: int | None = Gen._get_member_offset(AttrName, owner_key) + if off is not None and off < len(st_v.elements): + k3: str | None = self._pointee_llvm_to_struct_key(Gen, st_v.elements[off]) + if k3: + return k3 + # 4) 继承父类 class_members 兜底(_owner_member_llvm_types 已含继承链, + # 此处仅处理父类 struct elements 的字段类型) + for parent_short in self._class_and_parents(Gen, OwnerClass)[1:]: + p_key: str | None = self._find_struct_key_for_class_hint(Gen, parent_short) + if not p_key or p_key not in Gen.structs: + continue + p_st: Any + p_ok: bool + p_st, p_ok = self._try_Load_struct_from_stub(Gen, p_key) + if isinstance(p_st, ir.IdentifiedStructType) and p_st.elements is not None: + p_off: int | None = Gen._get_member_offset(AttrName, p_key) + if p_off is not None and p_off < len(p_st.elements): + k4: str | None = self._pointee_llvm_to_struct_key(Gen, p_st.elements[p_off]) + if k4: + return k4 + return None + + def _resolve_chain_result_class(self, Node: ast.AST, Gen: LlvmCodeGenerator) -> str | None: + """沿链前向解析表达式(Name 或任意级 Attribute 链)的最终 struct 键。 + + 例如 ve.Alloca.Ty.Pointee:最内层 Name ve 查 var_struct_class / + global_struct_class / 模块全局 / 变量 alloca pointee 得首个类(Value), + 之后每段用 _field_element_key 在当前类上取字段的元素类推进,直到最外层。 + 对自指/REnum(如 LLVMType.Pointee → LLVMType)或 class_member_element_class + 缺项的字段,由 _field_element_key 的 class_members / struct elements 兜底。 + """ + if isinstance(Node, ast.Name): + if Node.id == 'self': + return self.Trans._CurrentCpythonObjectClass + return self._resolve_var_classname(Gen, Node.id) + if isinstance(Node, ast.Attribute): + ParentKey: str | None = self._resolve_chain_result_class(Node.value, Gen) + if not ParentKey: + return None + if ParentKey not in Gen.structs: + resolved_parent: str | None = self._find_struct_key_for_class_hint(Gen, ParentKey) + if not resolved_parent: + return None + ParentKey = resolved_parent + return self._field_element_key(Gen, ParentKey, Node.attr) return None def _get_llvm_member_offset(self, field_name: str, ClassName: str, Gen: LlvmCodeGenerator) -> int | None:

8boZ6SM-e6nY5yjw{p3yP`kl+zVMmxR(DY37bTeOt2#*!bSMmJKT0lrOg3uzFR zuB{NT@EGpD&IOj-$%V1Yh0}6+$#gLBu?KfY5BWzIh5`OZJBH-%ldmKS{>!r5)sDD zW?%8=zQLpJR@bgoPHhV=dE^v?!%AZoq$W|@ht~f@+RF8vmg|H{7_q3VN=H@gdMY?Or2MayvEL=JUvT+*$hYIBP1Y% zBS}V4UQqjX{Q+)Tus~ga0tk8zi&FanT8~`2=f9x+#OYxNC80pw6fZ1R2XCMxfwj{F zy0)U`&IjO3fli|ukGqo*8<>uvN!ioL0fqcv8S%j6#ru5Zp`>XWT29bC&&9)Z2~Uy( zBwTnT3k2mM@6CS3b0=x3rXd-4zNL?I0-EiYSso60Dh~ zbdc$9cHm$^64knV~_r3$!mhw|S?{e`$bRK9k{EQdjWN=@3~hMK{3 zWU&To2p3N$=hGSP^t$rug6n}xL4mfr9Ty;K4f!2v3IRf**E2Ld$_~3v*Yc_$_vwh0 zS@Lqr^5n9Y)~;WslrQsOtq_P(8vG)vFZ42t0GG{YPuOOf{@PGL#oQ;lu!Jq!Fz_yXEHHYV&%BOSeO zCEsN2jtq3JyxFOiNumC``?9(kL;Yt3fu6Ggv=0Kq@ZW(|Be+F zqrNsh@N|0b93Z zY2hWIAAf?|R)ob!0@9A}CLe+&9=)Kq9pJJ$x}2@D<6|6#%GWXB!}(qTrJ z4w_tN=FEo*&bw0U>&VVEp9bU;sE&Pxy#7pQ9~yBc%|oX5pnvwCN6*Rq{vMEX5JxB( z*4&&zI8kzL!PuZ?P34nwxIbCDYNJ#A?tQ4bA>!OSK<7Ls#*ofPf3V&rH+Eo9mI`J- zUis2qD0ZVmpTfr`x)1tW1BrhnkB5s*$%EBTas!kcxxbSxw$zgmN;F+3CQ6wFuRAhu z=M)JJf-zumlaB-aaaCfBAGv}Y3Bdv5$-;WIxBGWo0EJ8=S{c$b7O7_ZD!@^^wSfrx z>gx+VdG-~EzYTck=N-X@wic!wQ$82dF~X_A#M?D%7O!5ukTCe@T3%kayv7^f#)-y! z;D8dsp{O;sa78#GRms%E8wiwUWG=B(Eyq-%Lyw?uAzN(wq7!^o11A{;Su^72R@Q{f z>_siO&zT>Qq()PM$UzKK6OsTW`mqzl7-b5Wo$e2sdCYx{_EtiNh|U2`tjAuD@neG^ zwnQt8W=poQCE2TTOofIcLPC!)>D(On$Rp!;0G&Mp=9rwxklKPfMmZR$oO-+b;db#< z3a_y+04suASO-0sWkJ|3gIR3{YgrfblM6LuW?;kM@aU`)KM9b)NW<^)Br?0CP%5~v zVciwQpgl;PHw%g+3W%F}DhA-wJj6m+)DXe#_MBjRVDM(BsHom_4q-b(SKR_|A0Qfs ziM`4Vqb!G+2Z$7;Zx?)N9@t3%IsrB4pw1=PfG0mP0zsan8U(+|f?Wx+FG|;FV2EZw z$Lh27M)2&4JBU0Ndq1cQP#@OHp?>UF%CE;u|SaVl)I%IzEQnj*U}$XnkhA>>E8^86O0&kf&FBYrfugCaRx z3kg~S4oGP900bjK)1l%O43qc|f$ZW14e+zX?%*IBy@XiJF*u|E#&m)p_Q91BtC@Y2 zYfQ_*-9G=$*3$+Q0xQ3WyKw+xF-9jBa!YK3u#(zB|IIf3Sa#*1xre?J9J=`VI56VA zER&Fc6!|hA_K$tA9i2SJ-bR(^ad;fZt{qBZ+o2c{P5^XW#09&gI=>o){wk@$A`~%q zJG@t0;m{)Nufjfml?R6>IW#BA16%vt5&ytPV^=R=*3_7s_R~FFx_TkVUO$dm-V6?G zBtrGR&efXH1tu3APhXB2>jAxH_we0uTmouzO$4x4HHI^s|Gb)xhE&`Q*ont6U`C3)<3W+ z$F3ryS!u0Q=Fp3?LRflTWg39EpNR<#X9kx$>`&uDAu7|d>-}u}IxwHn1x@4cqS$J} z1rJB8{Xz{J$iHVDz{0Z9D)l~H(1Jy$6AJzTKbUW{8Hzrbek=zDk@@W}Ea2dBXSSD0 zF!4!>oA>3wql((l^}4?MLJSUbo9=-2Jmz~h!7;KQ8rf}8? zC>|mb*rCx!xzz}#YIm7q;10nMMIoZ=370cn8ZCRo0a9=nSL6_uytojk05yk`Kme$G zLoTJmq9X*R-TIeK%YE1F&h9omG%OH}G^bobgd7EoG?*R&K@c2FoflTv>Ba-JmU(R=n`_@hU`eQZmZrIf`=0w=g{fBwNY@(pUtuP`h~nJNSOl(4X-Hn8Twst4AlOoc)l5ci?NlpqeG~t9 zbG70OPQ)w*ij8iSV-!PRF8#8z(g?0OHz2(x!Avk8tusk6AYLZ=oD&ff=*(xN)tqd# zk5#+`6gfc1S{4-ZAO%KZ$T(fP?`wThyZhm1j7oMb+sC#*P%4;QnVCQLtlG9%L>mKf z*{<&wh6k>Cn&5(G!@*lfPy0wijlGk*)}n|%hbsnomwF`(gVZ~F`7MLq+|f5?Upr2{ zo1}3e54*)wL;$nUD<@)LR}M@Sf?UztJGf%?%2mCM+KT?(q16^CM-TAYkUEV1gl0Q( zJ!9Z)HCx_TiF%KeU&oG(eD3B0))Jn@An_9|-p;Fx9m=|33x(I*#^cX+*up5pX5MnI z;RCE>42>T;mfIw>1FrsrI%w75-L;()YEoPyf&5`mSu+0jw?D8|NwY*JUV*}jXflJ8>I@R zFhB{+2s`!e0`T(vPz_~m_Wg;m(T7wYondA#w8ZJlTe<-ZZ?r*%(FHT|2UVMU{naeZ zhA0&YBY|Ahb90zYzo^0N=K%IUaIjl4&A^Ke?_%F=@wbRUX2`b~E=IpL^O|mg2?@UN zWm$J+{a$sf+M)8C;tKjfpV?&kUYQmh59q`AM0X|H9XlTD&c6dyAJ`rov)XBVC*HVa zRBz6g=TRLp*d2d4%ws?+NE*Ha$0>6!znYjOmS-#i0#ME<5wyB1wzd@-$oHAd(I>-O;^ z0Gi=7BPIqcPm{XTuEs5wUU3r2UGh!S4PvdG3`ceM)X>o5abGvyngP)`fljpao)ADM zzt9)hCzo(OsnuzIU5cqQHWmcDMSj%x1&n^NZoLeXu6x?yetDn4^NCo~d zRtJYr9HZ6zqsT#ZwD^bqP2!s}c1DrN$z+7?G_}0U9zK-NG|@>BssjDw2FmJEyi08N z>dZTUChhhxp|U~ff8&CB>J+aUZ90e}Wm~iTM3b?V15gn#hnk zr#DL9Qdf?CIGqCSkY(fL{>%TZA=u#SpRo1ES!lmw}YMywp8 z{w&Fc&TcRi1>D*b7}@>ChBk@E2|uzQv%WiuJG|4(#l32 zh|$~Egh;SsxsfhX8q%GgiA57?@hHWc9~}0!q#AZz7e7Qcizhx7ESM7V#d? z5A%`6D5w7Z-0|aCVJnP%{mDZ%`vC$pkA(+W1e~XM-wEXOBeby#m`1p_LW6Zd3i^}* zPySC_Hdkjji}Q)&=(byz^++GuDx0>Nf2IhE$QP=EBPus*)u9HK>Y^X}RGHK9`)>ap ziz*R1FQnTZzYd?nk>v5jy^di@Q7!@H+a8mKQJ|fI&dkeLq5|0}d=;jJTp2)W6L?-F z`(9Kh68VD}Sxc`@Obrw4zPKyAKwGTZXx9=JaKka}5vI0*k(jUjVuprY8vponb8r1p z&8zL$uFMi8cm9~fGW(j(GrFyTfjM4($uh5!0Qt4K!_Uti{lE?1E(x}pU-DE1kP9iH z)$D<0%pE-&Le8IS&Q2e?cK8rRC4`SaknJDu=8s)1QXr1Z#YWBFkSO5PGIrYNs>kBG+c?d+j9 zuYPuHZvPBKDeV^F7p1g37{Spj7%L(V;#|Nuj8w$!r-t|ZCkK>#{@%~{)}xq!1D@mn zI+8g~eUz3_SRX3|#y(ir+|$3t9^IAJ09nQA#a4A^d-kngfA`%RHf-ET0qf0Mcl0f< zZds4z_{(H`MFOj`z9WKYvA9BtX-M`W{z|PeO%By@r%Sm()JxMU5N)sX1O-p z+>W$ac)1sMbib$To5aTu1YS;Gm9j#;o4wmu0a7V=Bf~2R})99 z|9ktx4?x;K>0hBA0>a-W`!*sp^fGP9H#2+j0+N-7XO$*se~uV?mS@I_7 zvoew{gUPDaxZ9J=JisT(@TN`49eeKQ+4jd(Kt!D0-_Ts^)rHFv2{fzV$8?XH2RTey zoUQHL?Z{=n$j`m`_hHNOcqMZtL-$sCI!IY&FUNNtxVN_ghNoBJV?>5NOaUSPc@Y=TH^uHSXa;ZrHcu8bZVsg&bfYvf9Y%b-m z3g+|Qf3c5EQg5?B7V<@ju4|+PAs>cueCg~gb-C-8mkV; zDhq?BUD`qK3lJDDbU638`ct&P#4i7W-4g{h`S(dDGs{KJ;kG?Kxod1R>r-KHGO@Tt z=!WLQCGd_4C5@qxN2^r;5guIbj1ZZQkIi;?;f>jgPqVG^u@xayCEl&PkImZ020z2! zZ6_4+E}R93W~W(%navgY9{jFzWrevWk!-E!EyYr+V~;k*y}A0|dWw!8JI6zc6AjgY z>+W5M2B-(o<{aEw=*nJtwsd-8jwgPBv9&B z`3z}W&D+9txgdPw(4rqrR{#_;mq6>I7w)D8E#6#CW86B{YM z@xbWr$KBy>WuxDod-06hsuStGcHx|tc}zCdSVxHqKxs;4?_m?AYz~+A&nZ^FiINQ( zn$jji4~%d0^gb%(I#pHgV1j;!#Y21!xeSP(v&xv_C#l*croeo7^q(qNy@wW_W5whtBrghnWQSOqh(1%_F^hW4 z@)*PJV2A=n?u82Ra}$$OgP|sAZ8y53*Uuu(r1Y_gC*doh3IebaQ4u3qolFfD%?(Mz z(e3+9yU{b2KT~`ioCuD)vq!GI@QOrYn*s|UQfNkF;*i&C)9CArmd#lg=qKExxhh0> zY&aYS4Zk}#x(L_VG;RTdimZh`0d0VBYZNMxcIi-UPm+LqTNu3$9qeL}iOQo)dq?5< z{Rh&4av%iB&AoKmPEzfs2=w%6j)zXw9^>Wb>VrqRFJtL_wTTi!{yoyMyY@?{@A8RX zDMN-Leg-Tu)JsAWf!4lCj@z-&rIq6;RvrZIt@BG4T4_Z7jF zee8%nSui0D(W!yfx|5BNT^#NMWWBnJOd8^CwlwybiMabwD+~h&a+rUkKnot&TlLCVVc00Gjm41&a>ndxoR7DUGF*_kdeFFiRaPLn_u3*M{Jm-0Z$FO zFR@CxO!R5y^qcQI49uxF|3YZ@PDGl{_*`LOLi2!bF0DlD97S3|;Z0K%8z-?aK$xHn?rv9h=&PX*8}Ea)1ZnGt z4j%O!qljWMp&UKyeIW(MZDV_(`a%M@K2YOooVSk?$vZo5R#<3o``7h z({AeeLu9Mfu24}s-t95mzy{BizDivV)a&^bp z-m&c@DX2C!_P1cxLu$G5QX$L~X1;y$#clcSdb!d&E(k?4|`}&3y} zB0h<1cC9AcAiSO&83kzc7Aeor?G?s%)hKeh3%mSyZ4Vn-mfv(6js(<>9K2eEuvV_zMozlLE^$fubm>b9K0cNe>|$ z)`HiyjM$?v$fQw-;O4hOsCZh1ZgH*V4o{qcUR{6f6)bvgJY;rx0{kNZ>GdNS-TfT6 zPWjO{3cpGYA+cu5gAYhmX*F+cTR@Jbs_!#3?tSW7%^wiqDY?n=XIv5W+yrMRx(imo zhzkV@WxH#828U{_juh_20P6M(>3l++KNr69L~C26ti715xM37NQ?V>B7UaK6^>nM5 zU(68xY6=RohrJV9x>$clRxi;^z`iZax8qtiMtzrIw}KgX_*bwA_@8fAx(B%$9Bxb~ z?a7>bbP}4B)EL310jVe}Ir3mLbpJBS!lJ|QVGl}w<{k z2c2YOn+gT2IJ}SD28{2tO+fu-1BQ-5CxJoaEh4#btMU)`c&Pzh(QW~F*7jQ7xad9)r=35+`VP!!v zS<>LiaXG5%2AZER)Nfwk66cpF&0IHr)7Lp~`4$C=RrX)C<7_^Bsnp_1x1TusB~d;$ zJS3KJ?(8$}hIN5E*?sL;+OeQ*_`oXH6-O@&?&jp5y+Jd>FgV2<5C#lH#7vk<059l3 zW=U5D9wWOv;I~WJVdoEAKlO=&3LJ}6`<6CrwNP9e0ncj~J4k?(0oH##}d9Y4ndqh^93+rXmQ6Jio&XfVdJWkS4+-})2Y#o&#^ zNC;qj2r%Ld0gaLH7sm-iBuj6bz!l$BJcY>v{$kL_)WefiXc!~v`loZ8LS*XPhi{5P zTZJ1hKV`A^+ttVWltp-Pr{YJjCH0(Rf++Y{A$20{Go4vTvo0oe zCK^k5jbv2ni!30Uc4USpa$ii8UWbB)ijLD1v3bG!6O#XZUitp;!?c=9edmrSPQVbx z5gh;xNoXWjh5#uWv;E2=mBd=eyT=AY1D{s&e=L$pp`l6KU<`wbUzwFbHeoY*F!IgN zGZY(m9(C^3!a(Y}=(Hs3xC;yyy6IS~Y}9ash9SdTRgK!ueENoGp3D>)0S8Olx!$-y zW^3S1T}pCVUkpG;Qzd zHiEyOIEM9Q_wGmcsCA)LkhKdXRY-QS!?Kf6VXFwJ03BEp?yqdIJ>ScZw-cPwy(Hwx zwWA7A$#X|Oo&V@HKht!DWuglACg2;!U16e1AyL@G>lY|vtE{s-yuaNB@0`N=U807k z$&WI^CiwnVRJL90%x8lB;UPTZqmblw<{WSKEyqewCHX5nmT+iHnq zMCus13aqI_HUdpG(#U1Qr`SGP`*n>Ywg$c_Jau8vm`8D}@(qrxs*{oU`w&e}$#J7$ zBJ`=lxC{^;P%(Su{c8v4MD;L3U|H`a=sUoHL8n}pZ^V&27hCR1WC?V-$%Sf1@WM8}EKi>x=iSg+&F_XA zYQ)T?KTL!WuV94n(!UC@yZjRUm1|VL(dn3wfz7l$T(^&^@hLkWywxseMFWY<3D(}* z#|rhX4t#i(GJel|g2qajtOW<%X7$2-=+#9jGnZje?>~2N3xLQ05LRr1``Evu1dHu$ zYb1*n2 z@M38bBYMn|%c8rGz6Zzl5jyM z2jjwRU|e}#h>%N!HzEfqgEvEd!2A&xf>YyD}7!>#}cD z6Ufa*l+Vj+R^+Nk86%cg@$~L()JJN&TLZrW8|vK~8yKxB>nHY9lr)Cxka#QC`l2ZF z+aQExONZ2D08+#WWJ}K-mz%fVO@No_m~pm}7>8vJ!!u85ef92qg@t1bhsP|OoPX{| zCzaozMfMXmRxg~9pk6o};%N6&ioZ(;Q$Z`Ur8vF@WQ(~5;ZhX1+!5;m^~{?&ZgAZ2 zuEMy&+f<6OfH#g0sy>C)&Aq%llZ z6fG1hHCW)>jW2r6Ma%Q7@DMA_f@P=QbMC1)fP@5d4Z@};JKSvWDDRX9Um2^>p&ACW zGYv%wHR|}hk{dX~R&F*=RP4(0^jDq4;IaxNcVH2549N%@Di=HARG?yBAcMelWDi_d z6=PG@s;T0oyR7=fjTdq=viSvXiIX^AQjA+KT@$C_aA=p?izJb_s=)>wV`z44E-6|~ z`w!4IqEN#<67}N(rOQ#ExdB{8!Ga_pXTCDf!zEB~bMfAV3N>~iQXYL8y6rwBqPWm~ zNTOp9N9;-n)X+%F(8MyC28Kiyy?gEx6GiPx!#D`DMFiX6X)D2H5jhVbDZ)pw_mw|f zx`JZl{e%rIulLu6R<7yoS*_Ti<{z2!8Afh`5oSUu>1NFj)Wbe!<)M_}MtI>tcm@1T z^{zi8M7rsx=E|N#x-%!T@Rl`CSV@6+T4Ar~S+lx-a8(Fd`lIy|kB`>#c^A_z9qU36 zgyN(-wmr0L3z3N?NtqIgP3^BruNI={YZ}tbRkhcksc8h|G;|iaLx$!%0m1Bfl!;JWam#X*gLQQpP{U3o>to2OrpJq`E~2Pxea}4O zOwn~3Jd;jsyCLXt59%C^?K}Sf2ULA*e5^V?C117tz~PJ&BH5x&EAK$zLMNY)trj|p z7y5SlaR}S4|AgLsdwNZ3aQfq0nmc`IabI_L-_lX{MJ~CWVu$;s%wo`MX{pJvP2gT2A#ilfBY8O0G# zvC8Wwlw5!ep#RMCyp^+3LJZfp@OD}mZ@V`lvqh6{qS(5t=P6_UiCe_;{Rrt1vMiw} zojV5|^Z){K%oLWUnR}9E$Vc&n`oWVj!E6Too@^bqkasAEs@r10E(R?(1UL zN`u;nC-C}P7nmUp?@RFG>{XsabAr}f^<5cktznhqW-!uF3+168HHNPVx1oUoEtwsw zwE}`&34DF#UDOk^ZfS&oOA!xn7p^bf&~B`w?!|OlsqO^4RJ;XuW%+*D@j>9Ec^lEx z%OI|!5^JpQs*T^4xrLkckb+^^7M1I7DaNHpwi5D?3^ml)2ORql4MupWgi6#tIqZ)* z(26+4aG2TKHbW#%b)sGyb=+kmcNxUfaT_tB-31d7vyspTuB!A)<00uoWsbb?LFXJc z{>0=S8ib;xG6!LRN=_rTjPBX8Qjj;2*fgO#A2(;;dC3uj=*zYh+h`gHucX!*#wxs@ zt=ByihMRH|@Fl;VTtO}V>{|l7QB><;@~yUsV7at%YwUH<5RkcPjGRte^W2-H2FbV- zmb!Vk@;7umYgBlovSa*lWVNBkE1sJqM0VdCwkW%73qVM~DbBU}i_Npp*#D|+8<0+v z7rD}ER4_`q|;kgR<`srJ>o{@z3;{|)d8kB*7?&$xr?L8xaibV7OezWV#d#? zaF)?tEuycuh)`C-E&yM)V@{T+pIz5>oOCsKn5Y=_*ljic506q{btz0-T-6PXl!&yr z1d-|(M9w|a{#^J=HAW(_+p-E~9+~D%d8V;Zzz7#zeOtC?V&_6!G!d=EE0>OxIOod9 zIqmaAK^7AlF4+aPw#>ONMH<5H$w$Gm_RY3+TdjCw3aED!romoX!ItV0j;y3Xjtb#apiI6}#s^DS zwR;G&Q437Q>vR4z;g?xtCx%J4w9T7L)W(q>BLW8h7}^YpwULQ=)|I}>v>{_W%bKh_j&0<%XP?c46zx{({T@qw-PI1-T-({@gw_vb`or<~FRj1@QMN($R@J_Uvu zWrBHlzOm+Bmr+uB{?n&}+e?9QxH^%+rDsrC=|o{K!ecDv3ol`m*mYv|jMQQ%*~4NU zmf~QnSk_A`>|c}`k~n+8d4xasfO#Wj>=zM6L~w(7YrH z1oz9g5f_od{ayM9ok7^Loh2<`=%`_0GIS)_8v`oKl-Vg1n7=@RPMq(rav|wW+AE#0 zrK9tu z+Kw+yTinB^=*4Z@U=3e%-rFWmh}?-RL?bl76E|JgAcDw zlcAwA@EtkMheteo+;*zyaVX95bv7zhmwh}#&LwTTE7CD%$h0>%DZkbHpTG>i2tgTk zU)*WuW)K)TG@NYOtI*7#$A&IQIXMJZ6kGGsCvvt$Hsa$bAcG==%2LW%Q>agDw>{iN zli^(^kg$!cU{O16x-f_ut!N(t;eez^>?>*ZL7VR|Mm~XhByAhdN&A070=VBB3 zXz?BkY&9ajF1weGyd(8TEPu6s1_MzXd;4Z!dhY9kZe5sE0tAcI985syze zJx|e|z4#Q~J_k+(!eY!p>qjgS!(^pP5sbjKB59TgI`^i!4G`u+V1}Mn>~S#6$we2P z52D-nVe%c4Tr+p(=eF?9yXNKYY>8mj5G((ouhW+uYym<5U-z4q6>g@_3b-{l{b{}- zMIvg|tTKHVZc7i2i8i3YUB`Am+Ca?!JXN;bYHrpAuz9GfH1{M(8mzDYVEE8J%zG+AT^pbLE*7$3CCu1I zjnSd+CZ^<7>GC)3$RDMI0FEAXf_3(pjriT{4#D6~AJHdSx-LV&{mb%ID_GtoKGXJL za(oQH|3Cz*+o)FfY%zogE`5^!*^V^^p(umv}plT#b5Ivhek6{rR!rSi0^KH5{+EdVB_%Rx~aFJ$1p9M_(CCGiM~ zSSiHP92Tq-B@Jk#*QsO^O`h^-nGSkq((MroPAL?Lme%J_r*|k=6IH;%J9SKULs+={ zxUkVm9ZK)ewbMs24PFW`(ogoIp4*o{>}r)OfR@ch4PXRJSieKZnZFm-O0gHx%k+m% znminZ8SLU3!Stea5V&NI%-KG4Ey*+f;1i>b$54b&rE>oQBVT*}h(y*X1p(56h8QxF zfG5OM5|Ak_u);L9`>-AC2?_yQ0jD9d!NQd&KNjdJk|jm0DR?14Jc{7VbNwx};%U6e z;3ZvlO)ytSQrHoNHm4d!lG|j7Hd=#+r#0{s1vw=8#z#?sFQZ(JV8QIfQpDpBtyKob zq%*4)sj;fk<@uUjc!`{E$b+|ss*&+nv6((6hJM#f=5v5ifzb*?92sRPF|l!g9*2X<50;1 zN~aJSV)F)8ZDgo8CKW}>6rkjKYc(IhSfipj5-vhg4&flKT__wR&>3?uvJR&^=8L3| zos5rKizlLl()(@7MAs#K>D-M6o$Ae1vq|;8279R*Cfrn%-I&?~)aj&QF zr5!>y8PpEi6vkF_pgib_qrfC>6Dr8S`Qrif)4lx#4-*oI`=6GkV$-()oKE?^L(^4; zDZaUI1Qvmrrsi}PW-NcPzU)RTj%ug;p!u#s$tKr_;}kK}QwU|d%CB$2sfA~4LoR1$ zHUw8{Y8>)%6!MbGtqlmAH<%)ak=JLtxp#XW{&T zm?%m_cQ`NtW~S@ygw+c1`8=W*XZ@0vY(3u0D*3Vetw|M@c^T{;6%y=KryzFG6 z62a+Sxd%%f=idsDcd#XXNUCKU{-XnM_2sW8&RiOSNiyyM$Wddlf45FMSrVoqMC65_ zMfm5kE;$^`jr9dDpe?{QY{%Ma-T{O2{rRRDHQ3Yafn?IW!T4?AC^&oJ=GaUfs7dZ> zHUCD|FFU=(Ht@O)3X@ct!V;u0%RO$t`0)&@;rMQ_gmxM;PCblj?uI0RL8g2YGJ-4K zJ&qX$NE&zVQz&i#wTdAcTCsw^J-t1(!4>^|UVrE-F^GtGp2qkH zw4cn7Q)K1hh?{%uij(Y$h)WYM&w(S?PaagLo^qjiBfQitB;Og@7Fh0XtNGuBR8Mk7fvxyYYu{ecj`HGOLDZA9sA)!bwm4?y2^~69U0AzDktlPpvt5YIP&_6%S*?NpO5A~pymo#i zNTnPc&sbCTqcuGs18D0H?++>GxgY>rMiB~ z)c4Q`apvY6FU~FcCH9a;5B@0kj+&o*8?_n`vaK+S%+XI@B4(EOAK4VGi#(X*G(Vgl zc`KH?BpJnFQ$z~K*aWPosh?uo5-)ZA*rBl-T`U$4ZSYln4zl%hoI2*Bp>)$CqE#pN z#<~*&|D4lD-o?k#hIJyig^LIJd8(#MKRnOo3IroRa!6kehM2{*5SE0L8fzHt*)n>{ z8s%X0DIK@d6N2DLCiX|63v(|_YcW>Z4}TY~I@j!G4}6$}U_QqZZ7eGI4P-lQ(>nFkGB(Kj8+0QU=6F*yGW?%Xw z-OmugH+=}dUAAFrTmqh|!syPlUQy^eF|C&{@1G1LO=^3$3xD$XP$)W%e(359q~e@) zk}s)D3(;+FoRlt8U6eQoG(U4EeAs}|>b2gPV`=7HRPn?cViV>5a1JBC)Ut_Ki)JWi zEI%GN6Xo4!Ulk1*ry3TS!58t~=FeXEIfaN5Toz)pR8ttmDXL1ZH4Bt&o^{F;IG8oL zO;#!0CUX)NFMhT|RB86Wr@CKG5Qt|^vqDNlw@L6WzLcm%_M=5R7Ufsj2(Qwq)8l7f zhc6T#2SSAxlq1s4K*OeDF1hL{7`4sT$BznfoI5?4GRvXBhSU)u+p!>@G?3Zp4pArt zeq_lgt${mqKYSuvQhvpuHY5QD`e~9+4xeSg!z}2i&(wuXsVxSx1Vf&oAiyhh2vjn4 z3Y~Ox!j>hKi+a`GdP{|2a#JC%`jVnX6Ze*ccWb|)^gx|IYi>JaNHspR2$15E;@xvG z-;2TsA5R}~*+ciuN~ZX->4(YO&!{`#i-$r$`HtdJ7s5}Y5A_-~#D^Tp)Dbaeguz94 ze&%J)DZ)XuLl!1<|Ed#5G-ep`t}v3Fj2E6@?LlTqGLAg6PsueYDbEPq?AgOuxY>dd z9ovy`PXmRfnmDRg%Odde2T7EI$S6P|i3)x=wiRlieFiy~@Q0*@8lHys zl?U12((~Dt1~q+$Chm!Yc}dD%y#v-Bp`;Uo%)j*xE3wbK@kQ3&`K>52IKVr=D^DI~ z9-8EOy*9Q-Y8Q~2KmBCpfJY#)tcUKKZJ2{7&Zacpb{q^za_R~cb&0y3X$|}cga{zW zsYVb`(xF0+@}ri^q96wPQ6_NWktnh_y=j(y{=xC!nw#IU^f}Ijg{h^Grod&&1W4!? zN5+jXfA%uKTY$hYNT9lrOhpnF=xuSJeg?7}JHL9CrD=cyElCM8FHC|;ntl~;S&WH) zRot`6)U9kZ`uh87eS@_X_2D(E>Xs_|wb7A5>Tt+~wX3m@D)h4LuI^dZyV9^~QO}}f zi`FcvEUNMU@FF%bwHKX4;cZylJOUP^^ZO|d*Ft%u&remFU@djc!f9@_pu zo+SrXvQ++&AblkD^tHrNe+DupW#R3kB$!|wK!&$zR>Tsi2 zcic{=_DYoLl_%=rewdD#)XI$w7*?Aw$cuy>gbtE#^?rs`Uif`_Mlu0|AUtBH_o4g| z42#$IEAPj3TD5350MiH5{-f&T;=I98c23}fPMeNkTQu!S1IY&@qSj#JUso_c+cFKO>xY*@$ zE%gm9^{dpSpqc5Ha^(D~AirbG`KPqc)>!cOIC!e6^S3igT?`_!Ks8P58Dm>xA zy|dHwu6!F)GEv~L3=dKY*hvZA*b4~E_v*0F+Hpj3dhU4yW==(XAoOuVF^h9(E{in< zToVKAEri-3W8Td zb`%80in_5qIzqbx#ns_GOK(#`fp{LTJ21>JLkttjnf+ZHcCFOM;J|f($gfWb@gs%e z@GoaSd;w`OtL{JnsbCo-btalKWYvaGsNGO*%7_(AHVt9Q9ks5Wap~y%jom{^vr-V6 zB5`xIAnYeT8g`lH@~=Y_tJ18#RoJKnU`9Ap_fAbf&jv#9yZx&Eq6VbJwu0NU`s6<9 zTrSB=xe=7^MXr4cf}zQl0}Imv3R8dc##5`G#rM<9)TB-m|8{c;NtV}!R;^mqzq-Dv zclGe9h9SuxMuBf*148<({G@Z)C57dagiv_8kSLp;CHmSW9WRy{s=KGHXFZ0jEBjaX z*K5mr`uYY3SFKp7wBauaDWb@#GM#1waA!2;wGe?B(|CXT+~NMgm38K(;Z~z}<`OEYx`c=_)kFAkm?T=n7OF z!+zp`cRDZD?!S8_AlJlQf+zL{%?dGQ_Ki0r{Fp3O%e-C<@NoerYm7dMQe}PQtpKiQ z!&}q55DwTPujFvsi-uY zQ~)6+ZTfIQQG3tyQr3R4l%c zdK<`H)*}k*zhIf>3OUkATe$k!8^Hx&D-bE8S{m{W)=38OGw^tHmy^AA>GhK*)HEst z%qnFR7?BIIH(Ol?_Gx%%X;_CRM_cWGWVNpHyhQXqD0B*+5@TIOwC86yOl^q*BT_PzppiR8d@*M=zKKMUSSDv8DKT zR;&i5c=fXnIVJ1!pu*ZRLtvI7co!>#wEW4jY_Nd{xMz@xFGI+sxri+Mb5Rh3>Fm#6 zX9s>kJj5``gtMF3h57lLSNpc4tDk>|U!%SlJq> zjT51Saem(E+9AMEk`v=)$3!_5A4FJwgwUBl4(!(gEuf$w0R%)(*QKsLB4fUcy%g?uViKI_(JBm!>DaG4y(-*c z@!GBCDi1jbN)qbFLwpw~nShD%lp6d4&@ERzAOb1qx_9p{rvC9P4=3$7_#SFdg&IZVLBS;dO6eo?jQoNTH@#N~3RY+DmEY zq$sFO$}DwqE8_A{=*gW>8E-`vBk**)3r2V!8J*A~H7gdx6Xjl~)ScV0-Nc*iAbaME zY=^pYd4^9vS>916 z(wer^fWU>)ivzvV24nR_muZ}sSlCyT!m$onou|Tzsa=)|x+Z;n8j72l65Fd{m|FOr z+V~?Cw=_as-68Ib$Y*07u3eF22aTrr{3 zmts7$o>udAKT%(R-*;dWXuv%@Vy5^YjV(m#RF2iQ7FV_g^bGs4I?ck4XJ1Z(`mZ$8 z0)|jM)KWKz7@hk@2c0uFj4!oUwrkt3))`Arrh&78KYu_;W+p&(>1MEk;Hyj+Ui^=;)_DTNFz#8?wTDWWhiuv^-8 z;TS?(BHg6?WKEA6Y^)v{UNJb-Gd#Fr)v6xX=M+DOE^{}dvDhRVE2#0U{d72ozH?YU ziu1`zAoCwSb?w4wA{Vh0+(*7_MKdpTT1{EPS&U3 zrj3hAJrIh`!6 z0w5|RM6F^b>R4^TULy=E{iJ*+A}kzzq-7pNvg6@gpfyx8l2AqhMz!$@Epc@5PXFWF z>!cnDhCXx>SX2EJUp0hC*=y6Ugm^T7*i~A7ngFMff;lI_G$1%o8vH^_T4FVRO?y;7 z6x7yuRe)9$@+F`98_EqK@MZS3{e?q}T}?$lyHU}skIk^%PZJ9_P+V0_(dieX4|PW^ zRfQY6SlMe!m`WmWE?WfRZIw*@dgWc)Z5F4vLPw(j178jfID&d<3`rr?Pjc!QLYyZb z&t)`6Sq!iQ3JaiSXyve|M@f-y?>UkCOZ~XGCdjHoUjvrD1k;qu0Pt6mO$~ z%r`PQHoP|tX`k{f&uH99a>(;FDmrRyp+z@~a!I)yOl1zfV_-%fc3E40_wMttg?w!G9Z-@U^W7bd?-3{$=uZx;vEill|Hs^cUKtP0 z!sETo8)`d4VW~WBdlg>g?o$VlY(FV3?!&>_uuZgN5VFnmp?~`RDgi;0IjpG zA!_=fjn(Fs3(yeyk7d8ryx*@4{?@ry&#ldL?I^J|Iw_w8KQFVNH6=G%=uU3=fv2y1 z^yci_^ld(V?cy)zT9>1k3W+K4-p$kk4d;s~Ch16#&fzaV4(Gy+sexbr+4cQzng{(u z5BRK+b(l>5)=#&;-dFEiv$}WX;7Xh^gQ2+fW*RY%PbxS)*q8qjbq23XTTRSu{jrI3 z^F^SDxY+ih^+ITi=^-4*jm0nw9~Fj?oK=ZWC;$*P)Aq7Cf!u{1X;WAGobZqkE)!o? z_aAG6?$bEuNYewU`Ey6-FMmd~f3ck)OYu;69ALQ26+~%~HMY~GpFgW^{3D}dkCAM2 zgi4%gKAB=ri_J2hw$38dyD)Z`Bu@wi>KG2?VM^)H2@8vl&c1qK?v-;~-yi#SgE1acjMT^7BSSgrOZ|+?po9vq7yX&W`&A!5>kem= z4ZxLf$*Dbr&lnVG3-$7iq=mZ`r&3HNVCS|5meVamz+zaEdY{v!uKgVG^u2Zcy%<*B zy4+R+#qX;FjYt6Xd%;u~lgK<&z>jeDnfK?K#DIKqb>_v0dT`vM{%~3?OPe5{qqf@? zmib!=c>bZ?X&TlHSQ`QE0WB9~?KEMWZ7VN5Sa0Q?-txFUUa6Ar03iCYKG9 zhZIBtML--!gYBfwTI`vZgi|;aQ)km+*c@F^j=dAk$VSKuTVxrrOJM|FSBTqo@6YMI z8;LV~Wrj;CY&qXDFwIEbeuoA+-h29J!sY}l8Q3x%rqK?Al3B>(;ewF?>4|Lq@#LSJso{A=OTO$8J z#M`g0^>$I)2VX~PU=bYJJH!ypGqz`0SYOOH4Tg$9rL19uKT)7ig<~g6+ z`97zxHtWiBmDUE*C6jVj`FZ+^Pv7+UwPS=V%Bf*GZ~1Kwrt~can+uAN36%mB`g`rw zH%LTD_l3iEnMbjoc_vME^~%}n?|>S)bVg8pJ2-=_qW~AEp)ZaCHSUrt!PU2h=@4O; zwYXihxRxLq%j#hzBn%Xg(iHrPEdKecQ0YXA=qpcdo(VSWlSGP;w3Na@TDwDwZ3-Am zF9nyd3wxaax@Snn$hvL|=h;O{l1yyOkq(usl@=fPj;$kd8Qndzuv*gpcy$tKzL z2xW^iQ0^2^s8zf`iKBp7WxMMw?chlUISPdA6T@#c*Eg#q%w!X}s<^m)15`K*C5RftFOE=)$ZwB~l%~{O zJ9Scxat$Wf2ks@kY_BS5n>6N@xM(5Rcy;Qu8*J5i} zzZeJ!B_V%Z5eePxBSGbxb7$Uhwri9BW&7l8PX`?cU$rqlu7a`mD(^TXlwJSFW2Cu3 zSJ8e5NfT>5q*BWS|41JV$!k$qGS{5fb4Qb zk;)|*(JurTuDco>*splW4Tp$>BPS6gT(tH3b8XVWQ1SmZNrK8%83EHe%_AIG-RzvW zif6^mLu+is#XHWc5TL9JBlxbVL3)Wi+4Wf8@@~O&WK4`NUzulIw=E7^iHXMU!cx%@ zyB=w`QXfo|DDKuU@2I>U7Cb6)l&^RJ1kcqZKLdzFP$m3#i96JUE>M;Q?q>TSemUcf zzc&o18;eL9#{FB#tG=UjFTG#fjWP}vU}g(XEDnv`cEgS5<%;6)zQMdjc7b`=(IRPF z-O}^&&q}IZ{&9*G`$DSTs=nd+ish?T^)Bxj>RY|MX7=~5?})K-o4}ZRsn4h1TLX{F zKw&}PPHys}i7%i@LR;rQBv>rOp3-C^#6J&B(OQ0lfH?$L>!=!BEsl$k)CD37Ru^&@ z2tGtRaHWNjg9y?=%?m^0GoWD+l@?_GHRLrGt8fJh9aM3~KE76FXPWUHI_`U7U~k>! z!(dIGIS@FX$6r+BLa9uR5{Kcq9%1nr8fTJ zQWU!=xWQ8qrmZ*d@+c^I#C(r$h7RrV7PXpx5PI@5bgTK_#~2;??|lkE=EIq*7cXXe z9^sj6*dSdrTon$9xvWqZVsFc(6p=*Z^IVfQ|-ic_CR&>qFAV;K_}_)kRDF^{VoQjCqBJ@|?OM!N~wbX@jblp(<&gl4bRi#!Bp zORpz+jYkM(FFbPng)6fcev!T(o0=qo-?714)cbOQiXn#t8Gk08vw-0A%Xr(`%+c3b zyNBn0KFH-1>VT`{7-b4jC<{9+#^2V!2%vE}AXBK3pd^sESRoT;H;>%_G>#`Z1pQb( zcjxJW&)H;9G~%^TZ}WnXlXI4Oy;|Qh1j1V9Gs3M@>3@cLEzSbjmN7hmReyMVcz4b6 zD$@(0wT8d2Oh_Xm_Bu_u3^@<6M6p-PSa4(ay1gSlpzY%(SijH_{Ac&?uJ5Q#5X^Ls zf&1c9$YED!=pPKhv=#+3Z(~(r?QO{<)DCwvumlY(haP84s~QWFU@)R2H0};MGt3@1 zV5b=ep7!!{C@899kP=jIja{Lb>HL)wvOc_u-TA0u+N>?3U(R@inMU;jL7X_vhiKlI zEqn&Jsl(ise##AbsSK|_<4z}@oWJrq700|P8c2E#y72yyR90QA!2pYqDFyeyQT%n} zbjWPnhn57S$RAT6BhOHjN1sU^BKw!}JX2&CE%V0?w_f;X{|sd3PxD_?_o`08@~V>x zu&34h56hPMhg=f!m&u}oX&?*6zkW z9Bia$zWuXnCk}d}ZR{}Y7|o7lWquC~6BLZG5cWn3z}}l!j2i+pd@>Fm}Pq2cqyF6gB^q`lrb}iLyf%gm`ch zj}y1K2hjcvKFqPlCdito(WvIwx!IpTjZ;jU%qn$I{CHMc1ID74{MPNbKSUYHbiHeA z>=80X|7q^<2VQd`*3+9dxB1A##8e~uPA`A@DS36G36BJ%76fjt*BxYt*|2scPoWUf z4CAf2Gc$A1T898!TF831qYP;d3Q?=^R`WycHas1=@SMav4Ccm}d>yj9s_!!;pSj6bFTD__oi0u#{11#oaTMYfFK#Zy1QZ=B74asZLYt)F~s${hMdAs*+e zLQ)YSWq#9m2cMa0F#vQ?Fq=e#Po$Jk*5t~L zlT>GRBBrF?-|ys_h|q&c2SWF2DD z-V)j*GN9qS8&gr-x*B*Zhw3OT1(mPm7aMxu5RSlaHUFf#!5b1iF!&RR?h~j5gfyIR zS#i!9jbw73OCZsDy-|^vd|<9Ywjx*nB$f2TQ^5e{z88H=RY?bvONB0#6*7X1kupPN zMPKC!<_*+~f6G~xRvJ^Sh*lY`(F$5ZZ4{rv+R+STQ@hy? zK7XkT%(LLqZS8F$VoV^*m$;T=_pGvR|F9%W+Zehk0lsUqAQnc+6wGq{MgfTU{7B7< z<%D3LojZ-EAIF>^%eiAv_aZtZBI2c$_>~kFw~kZrTGpT|Urv5?X&-#(3GHApR=Y%o z5bHkhaJXNghR7olFePWgu37^p$VmutCJNZ-&ZSGUkT`B9XObol`U1-k22MAUpiLnp z3p7XHA}~HjzRV>^tyX{-Q~f3Ao`Y-$gu^f*|Wc=OjEx zjJ-5LM56-w-yF9%HeUvG^!h75Ls}s$-{oQhQV}{~U8)>AQYXG<5OO#7@?~TmZ=M+j zGQ%6=cGoI?hnppYoOw;^ekcrsl`4fjEHKs3<5)-9=JI}P?Q;$7-d*XQ7z5S5_+$p~ z4%ChkEJH1z5&Z$3Vv{QLuR&2R9t`BsJz%Sac%KeAg{b2p%~H%G>=NA*0=t*D|u2v-buSP`XgX1|D{(0*~! zjAbB3>xD_dzk>-QH)nZ4sW#AjF6_QA9ln7kpAO-Ms{3yR@2`piib+i*F7<6?&LOTI zL+B)B^1UKwxhacM9356O6>GXNyDp-yBPIHB+MKwhjp6pB^lR2;PzrSW|9xg{`PlKL|K1s zf~aYh@XYTdLZ!j}|A~xuPtlklsMYRTu?;JCVs+o}$`vabeSM8aPfzdgp!sfM!Gwou zL@_^FBm8iu#Xw`0j%H3P!cyT292!_!!q>svMpEw4LvR!vb|JCoid%2IoYjgX4JVp^HL`#5Hi?^=;?ij+r;~BOzl)z zs#AUp40yX0*jmCe(?{Oh;Z}75^3Sq6YI`}cJN5saw`X_g@a}X@po0$n3=_)23m}9! zESf};Xb`(czF^FuNZW`a%07r!_{MmX??7l1mjB=I^J1-Hfu)Aoe7*Lz-E~X1AS`)- z^^9bhx?|y(nD#^MfB+Z2N#)&s z=SJscTb(J>Su4xJ$Kz(#+7j-} zy2ag~$#QVV11ic4&K^6MZNtt>FF<5+NR~0BWo@%qEVVMUh4A&loIcyYd59*~Q`#nS zgE%raFni(o5JOm)nFDpZ*D_*Xtj%JHP37T^6O&VeSqOwVpk9n>Og7}Z9T^SLOQHNi z$OxJaYqqfYbOQ)2z=;M0)`;AJ6bgVn`tVT&9#}Jn5Mw|ZP>i_r#b?8S)90lT>~k^s zsCdU@pCd3K<~X|a5LnyhiHBk$Ep;CCQ!tn*i1xq9K07y@Yp3ixy2`OIktoYSMK z6pryI70Ee#?aXCd)jq1YYV$Bh7pt(vWE2%UuWqQ`zxnR!rXOzIupNLZMW}-(-uC&Y zZAD&W7;!DtOU1bq&9?Qt`2Ez4gBxG(LEx#g98;X0?j^= zf7nG}M)o0FL88)E)31PG;VZk%IKc4B1kfnA_UNIUwmNvRXHxYd%%3f${i^XfpH+FG zbFZ9L5SrE2TautOd-$AJ5Lv6pW4bm{?vQjfrxQ?JTuIo#iYMiig`-F%dHuwES)~IO zC6RE5Hm}fUXoh0)A`Oa$@d-EeuzeRW5LYTA6if60nMfjw$&++Q@I=M5e7#%64@_X@ zTCZiH;U&80n{4*zn~cd2sf9|h8reEk`*5)MeOy-xv@^~NST3JhD5on!%B5qIpnT{! zGzNJxt;$r2RrS7={k4^=*R1MW(LXq3D#e$~SDNy%@4|RNE)h;_Ulw^vKzHuw*-#>= z;vP_;(8ovUc6orva182P32MvM05t^%iX&Q&i@K$!%Qe+%u667)M^#AcN~mWvi7+go zorf7(UMCV+$RX|=x|sOBEevh*Z=|MaKJbQnY}k{&dXiP+R2K4dmuMjmWNAOMm#7(V zyw&_>=UyyCEF`IhRQnrl=7%0mc7xq?4(?;ut$J;9`%ShJ1}^W%K1>_(-@eF>C>>9^ zh%a}yb@P>Tou%VlrPZ+nfANwqB$A9VAO&dZG`JtjkW8+GD%QMx}M=pJH7acQj zE+U>Q?JD9i+^yC8^YWqNL?P2p!Jn<>e<>+`vRj{Y-=UB01UXB;TZ2L>;CY5Qbdgp& zukH^OsjQ=lIOu1e%$;k^Uw&GYJl#?8LoQMnuC|+wL5-osz5PqLRu=rc|GC*q&q;Tc zD1_#^o@I;-QbRU>OA(e0db-#PrsncYnO}UXygfS{nnPnL)wZb2=6ILGWcnqzyhBWW zj=0?fmOGjLu6lP`&EoLHzJ2>B1WODY_e&3V^8qU>?Rowe2d|xakp@*-b|vh&GO8ku zl?jSrsVo*Qmf#8YaVR>b&NR$=_sTGylrQ}u%(%QeKfExmY5~y9G^{29c&n=pTNzKe z0tn5<;20S?B*#*CP+NiS^KBqbRAERheLU^gVHsyL+kyH^abgR>Cttu4Y5Fi&8q^is zwCa(ZCeP<=+aXD;)_uvuW6FhN8u|fP+J1b7iHVx4kifBD62+5~TIDAtm4}P2~&);8tUW$cbu|@~E-=W$~Bl9_kTPt1K$zo~Zm~ zasGVTsB_%rpqYE)1oQK6n%M<7LDoCMtCnVYGljvdTBg-CUirD>6$MTk+Q>%vToRlT z@o5eGrxLy_qac+_$N?S%uIamWkL|47HSx&E-pXAhY7nNixX&@P>a>l>HjEHYi2D2# zB+coEBM{EP4KYJx6LdmXXu>)i_VzFDUDn&**DGvOF?u7EsBl6ZTyeItBCSAJ>XBfZ z7D)h{l;iW~5isH{nJ%nS<5Ff)7sqc3w@HGr+QB6<*M4h4vXCvu_J-EcYOYk0G}Xfl zEWj7pCez0GQi+V3A*N@9s}aiMl(3~Vwzi{$r;dSdzQ6KL*d2v5N|T_sPfQVap7$=E ztPz|@szCqTq34pF!TS=Mt~<>xaDq}!%7GOxHzel7>@#n)Q?Z0gX$E3J!FL! z9>T>vwA(!$FVac%m^pFO%O5iIjoW6q_szNLJw zjux9n7RlYYXJErU+jeYzU~6^50~_zDZdt$0Hx7CAks<_C*0*@w!vUs^bLrLbejDge zp8RAO=dE|IUVNFPRnd?GpAfEzw4GYs8}OUzNZ!`}9K0y+yklNeQ3`5d;gBi0Fr;W6 zR@!N+OKNz@o{A6L1UpfW@{PHGVM0X^T*Yz?%p6W}MA0?N1uIF%3m|3;!$RFb1RttV z2}j@qG5s_Vd*rpug+fTVPxi1L5L^r>CL#UdE&>5f{%TbJq!zR?fd(-w1)R}MJPNa-hs!Eg} zd0m*!#;I%kpbpgv=mgP}v$vkjTPHlzpf-_L^7(Rw#7PGt}~DV|9JVRO;8_ z(uoXr`Q(n!L9X5Dhnc4Ir3kStMYw?8)3TA8)moxaz8aogXf=@)gbF%^j#9p+PSO@i z^%zvPcJ8i7-V|zmR>7OTJ|`(yNrD;P6MGV-QrkIiZ`L-upM-=NQxQM_lxJ!L0euCf z-%xZhPAY>sJrKqpR(6(G0+WDm2h+~%(teqXRxDMQpKkGo+f;7drI>=-&JqHBDvfd< zq)8p@tQSay>JtwS+{ z&0$|6RRxj7^oi|O0T(o%6qyihwwsXo=c=9sC^%P4R!#~0q)V1oam4w zk?^|eV!V8=%dIM@zEhX4Q*7|aJF=|NUTykB+v2^-qw0W6le%%Cco~Z1DWk%RB)Vs4 z$)fw*cWqmlKbP#{g5H&$g z6G_{o{PSZqdMt%WtS^gs>5|-Kj}aCp(uKX`_*2RaXd)r9O-z{@#Kku^8)MWgP2%6_ zdPP_4G#=~Po>eaFwgSIObVSh&7*t^4wiG17L~%T%-Pc(hy~7SB z>TBaWqyKlZBo65b5+1IYJS~ z*7qbe@+tbhC5x`pG&<+&uN)<@B(MbUKpk?=6*jEne*K7BPdTLoczL;tqMNb%z-8>F z(hMOuDD1h7>N>Olhl$1|+q6JkU_tE)T>0cssB46pE2z%NcL1eTj^M&trtoCU6y6X{ zw>FWX{TQ~|UiBNhyZ*`n@!Rl}jyCPoOILuNK8yTBUG<5s%*h3mME2{#sv(ayzB!W| zzZdHTT-X-!uP@W!7DKr{Q_XF=m`G}vB>=i`-cpU`J~+?Z{w)V!D=*l55q`q%ZSXWO zh2A=onJ#*`7dtcWMs$&VPJ@=li%U6zz| z;5;Ks(u2rQc)FZ@V4lHt7UwNAOh7?wfyXjMu!*`tpSTW!ha9xJSQ8o;o%Ia6Rq2|4 z{9x|oW4?f-7kJ~EqzSdF96Zq^?)l~t9@tTuplS+J6Za^a|gZ!T=_xz@S^S!HCIQ)4Vkj!s9k!Mbrv_3-DP9m zWdT$SCdujI3&?rkW1_CAXcg8~lvA6|i#dZ3TSH=})dHYVr1$s|KJCBAR$S;Ulibn) zW1Yki5hAV?P7G3mD*u}}gjGQZ(6=fhmwqL2);{*QUWg9@r6(Wp|gFWDa8{{Xzbx- zF*qX&&2GGsA4nXFFbfFXl(-ptWNL3bAmuK!nokFv%;&}P6YE`tW_;7Lr(1J}Uq)A% z8r-60s^eCdja7y8J1aF5LoD)GMHi0H;;aL?HW542B_SNi+-?M(yVJwhuSqn>^DRxSR`tcG`y9)3xrwZainG7H2XlBG|CT zL**qH0O(!zt{sAcLGOC8%;3u_bJScGzOm8%m) z+)2n1194+LnU9aCxx(&U6D-$)A=a#JG#abw^%eF0)oWIG8Pq@AfhL(^A-?PIz{(^M zAbiDd^0zfA#eA8{&IT>Cw zkPed0k)vZZOV%Oh#WQctU%JGsaJx{)0mggOi+!1bX)}GZG?Pxsrx_-~4{QA`eop2# z&K=hfrTTAEMQ~Z}!*`BtW-0dca)XVEeqhz%C+sVaD)4Z2ZN& zi+}?lUoXu;%Q{458WSfnbA_9eFu zF`2)-kl-p{PW@hRoN}3XHii+)Q2Qz~{)pJ=0Hf)iaRE4WA4Q+NRkPb3?#lxDTV3pI{f&E9asI%bviqA(e@?-|_O zh78|n-$bnb6qvI!#=pK$D+5=~;3U?z`|aYS zIz9?OGun!aBNcTS`cccZ?cGXVl5vx$?o(j5V=q*W%n2b z?Wa9@TN|=2Xsod?Q&a7AeJOMgvy=(P+_ptiMB8pe=zf<|_W%%Ef*X=5zNuj8vkT*w zhh_Uc@P!msF};KCr;2GD8?IIt!?sSnPGHLotPZ6^U2w5bR3<_Nyb*Y>{bGjO7QThD z#%9?If_KjL>}&Qk6ZPJfyoK;lJnJZXM9@vbJA&Ra6DovCi;*0ark3F>M3+PvCklkc zwpJ#$oeI^BJrd4`di7WH7v9eg9jc585L@&7WhHmJN|aHS*gA^~2e1aT0bAxGEIp+Y z07;T4Am+HHcUAwY-rAZqgMBEdeZ$_kC2W4fMk#-H=s!%bS@O+!Sb+Ptqno4RatfKx zMDt8m?D*`~L`Z6s?)bE%QjMvrgT9Wtb>L(QnaFN1Ax0%HOUcYRWWa6eSovwV49-zqwU z_OD(^Ynzp;dsZ=w_dZ0Ept>uC!XPHhrz`7qFzLK6?`caVlgQ?pVj(>?n(g+C0Y zgA!Ri^?J5q`I;4L`d2MqL%h@U_Qxmg9~m?gUR=+n^_%Zs*lL%LNZl3+NWUyGwJRSF zWv=N5=W6M-_ssxl4_Cf7vr%~u2{x#BSy=O^ zcL;Xv#`Q^m!~yV|Yz)QQS_ED9jV1K@oW1>>g5n>#=fUknLX>yd)!W_Iz1%89B(zAQ zg3NQDemHmJ)A^5HGaIS}j!fs(M3H)xcSW%EZXDm|=AXWVTH^M9Z}CQ$9TEbdNQ2}3 z@XhB-#+K-`k1|Rp4*IP~&m+YZ?tgw|_rcZUy=@IFN!K-HG^Fue6ZS$pwu=}8Bab>p zE!E%CZBg^KknaCBu3Ro_;mFBqXe(zb!nig~5@M6g5+vfc;eoB&cT_iT-JwzB+KPV+ z3uHhc5FGFt{s;pj#i%%RD(Mi~2f$?I=)IQSL;;WJ5E#eT|2$$75c!_yPvH^N<043d zN>>7C^9_euCp06pnko}SP`oj9&l`c-hNbBzRsd^_}Cg?^VWyf-@kcd^}h96H{O3wm0x~%&$^s?u2U&1K_l%P z%yhgZt|eZ8s^#qjaL+bLdpX!8cd2cqi&k&UCjwliqCro1QI*h1D_3<4U))mL z6{b2#0G@F&MZc&pHNNv>#bFYDgq5mZ$O$5*O3-S%@BusH$wtclA8vlA04x~p`~@Ky z>j`(u`K>E3%${R_*4s8=6bT>}oZ|b%?KseBbCaJ#+F?2_X0_+m^`e2cbTxfN{4PdY z2Bgpo?}JHR;c8pV<8K5aE}rp-|MP|*DiDRvw{^Ht*UcSL zV8C$iQ+ez>n#A5c@cNLy{@IV^3h}9)r{NU2;mG@o7%<5J!FxvlpZ}b+A zEXh({7viJeD3S-D9ubHUXkza6eXLLOSDr<~CtNR4a)+8zH+JgQNd23jW=BGN@C{~& zDEhtMVv^#a6Ag2N84RIPngI%q)_)_s4I400z%6K7w-m<+nlSA50!=S{9BwQpi%^re zLV%Uo`eH^ZihYSRyXq7Ni`NN_xX-n;1b9D1m*azde)`bd(VrL9P*W0?*Lv2hSlPRJ z_0X!7%U8LQ@cY&6jmGGGwF$Z+t=zQrp=G_b%t`m`^V75En?gyC5{(rdDmWr{nfH0@ldokd(6>N@>oS&c`{_)ZlO=WNffs0Gw`%Qc)6?F@^~j+*v)=rv7}nBYsc z$ZaTa7Sg#npTjs5qX(kZL(@SC%}`~=y^}1Y@G~~2mb6w(it93~aIsYUq1F6D8+!97 zU1Tt@J(7=n{5gzR6|Y3j1dlZ2!3txOT_@{R=)e-jMhqvV)`n$n2J*Spi|&C3eNIZh zhtlR0?Q1o^Vsmex#wpu+V2b&FhIc z$$na(w*@VMV2ZY+SpktmPaemDrYmJ&hp=V6YhkNsyBEmsmXri>a@2G6L$1wBsX2*n zDy-j-PXbtf@6d|g`tWLLc{*GxRgGQ)SI5FaB$?VJUp@aeG?qCy6`x(@fj>BCn@=b# z5zDX`5l{F(cZ@Y@S%6T{fY#R9a~XJv%j~nhbea`$M>XrwL*A>DhQ-C_?Ew!-Yc;=Cy`R2}>qm#yljSfvB-B@{ zcr(EVi@N|rIb2X(<%)G}KmD}|!o@PgO~)~IOAE*Ha67O?ZuEdb?(F>-aKo4~Qd*&J zOA(5B$Bga9m<*3X{-Ht9YbA$paOjFC>gEYny=81@O3h3*NGXiQFHbAZ_&Q6)_86VU zqvOEO$hb*lqji-4+Xnu$8tUWJ>bn$WvK^1=_6B6_u23)@P51I;uLgJh)Ik$r zVT-TLfBfR?smtz!^0KHLi>8keKmg|}ZC4tI&^MJK3b!AGFMwV6AHEdCOlk~tmEHJk z(Otp>f18<6p7&zmOP~|HLxjq^CYW{H zIPmHfE9x`|>R;Kva^fr-9dg_B2q!7<W>9I5S;kC5a-kGG70x)~vHb1$57cftI*XXtWD`?uIoJ`{r2T=c7# zI6^T7!ZbgExC%!Lqi>@2ISwolGaAa32cqC^;mHS;)`jF$cLp3p4m!^H>G``zAacVP z5<89)7y^P{qnqp7A1Y*SMtY-E{ZJ1Up6#**0t6zsg}brFuNP(p+b8a~7>HK$@3;_F zzEMf(zGa05+vW5alv2TZ&gLAKOOUWQ1}ZFBxp#EcX=z=^R;z_+>#I&~(v$K@=fP3t~tFsqgaF$mFUjeCT*rEu*R&y|3 zN!6hCY2+3NpabsQx zeN^cj9xoAXMCJAjCHU7O@dyeI|Iu`t ze?26UABGxx;{yPEy!KNc1&c^Hnp2mrUU+W)Ex>S6T+WKicNGpuG1U%Cjt6;9yWtx5dJ;W&YgZaJ@Q(Q)U{yiM@gdgw$PpN2(dCMfmn938vH9S>`uRvsf%(#-| zOF>P2ZmwQF?N<*_M7dH`%mc~fEH)ANaxXcZyIKRkFZ*DDR<;qVcmhtD5@ViI^4GMi zn@EQ_j;2WXa0EEtk=3(MMND_({UftSf1M2v?z)T6L|Kzb{`8YX z2&N+>IMxxbi*;~7K(z#=KYnm(bPL7yN5nSi(x8|~6ChS)8rjv&#bTWry% z80>QY9r^ZFuULimYPh$tdZ?$qCR70l(R88t@AnW{-K7|MUD@YsD1|da%;&E>X=;E{ zeXl+939)+xzVOZBfZc7*m)5{~jyrhp_g_qtNp3eo(nAVB)5(7NA#SwUvzX=IC*YSf zC95@pl>5f@{WJ5Ip9QR$qAo@Yt{ruKQ(mpZMV9T>n{M$lx|Hb#cA;0!0N42Q-mBG4mAvdLkH`a2Lde`_@0m%hFq-0n5h)->x10 zWyqU>V8-`Tux7BASgK08NSZAVqP62u6nQ5g$e8#%K$|EzIJmktw0e1e&#Jy!ZMYAQ zZ}U%0M&2>DcWgUlqELJxZnO)bSD~U9UHFbxob3AkgL6lopF8|4(b%R2PUC`de21A^ zLard^6xw@ThnSTK8@xI)w68S*dJgrh9_p?4)mE<=T+!%vtJ1fqUPLHI6|zFc$K=%b zD52{_s1Z8{kra1SaXr42k%Jq8D4|k4l-@An<&+CCny9w~eNM(j0YYIUk#RU!`U(?~ zsX$?~(mY#kG>?nx6`#&M{9k0cuUB`Dk3DAF^4V;gWFO9f5odw1s?hmB(cd%8=ib$9 zc0b|Hu8+wUB`=g^k9)Zs%l#m>Cq|_TI>jAvity5fW(dsGr*&Cv(Oru|S1^u{6d-hG z-b60qYmb{@B}yUpFo}#q+FPR-ZcI?Ki6^{$pP$%vu8>YFoR;qn&Q)9xOb!Yhbx)|M zpaJ*y;>^-Qk-lAE<4+)rrPVDsdnmLZlu0JOa|zP@I(SBN>v_SC^ft&u2fb z1R36#VA$s$=f?+DI_jjuD{ zc@X}09i3nREv<=MIuURvP>pCA`f~+MFc!dmEtwz7`KQ(X%qvDqYqi zNDKLeM&kaAWGWa1ITn&b{Z1;Gpw;}os9V7j;duj2NMkUbiyy=%q1oi+_nY3h$Y{g? zQ6(9(goagh*@hn*iC0#&nU0dIFSWW*Q+?Jd4MCXQffZUH(qs5~Xk>y;gIuz|bMJ`jNM=gq+fXY7RJ{K3KV3T( zx}1B|iNqEU_B4rD=xP@ddMYbUDPZv%35yt%WGI`{gBFSS49PF1BDwbnOLb7z80;X| z>JYQ}RknsnBq==zBX%4k`dJ^@8>%oJP1sDg|ijhWmcyI}&4bu{6Q z63;B!#Tic2*}de}gYV8iy`QO3a3BccW>;rEiE7WZsXEzuytu!_=Nj;U0;HA!#9O%3 zY*H_17JBUwz~HOCNc_J0o~IAeACJ^(L)SpwZl8q&<}3u*K9^2AHr-G%VYuixh!U znt%cTvf!MUCW$)O;2x{#CejdEV#uU} zY`vl!ep@glC2<`1iP?KZ>Q_5q=)JZ6^WPeX%-T6aOL!DaNsRAQ;;08hCE9*-am35n^?3O|Rz!YBV8I zB8BBe(SY|k(k5umhnCxP+4n0>6fBiSwtI}3VhEvH+D)t71!4Qu8`ilKZw42_?v#4! z72ooDkh(pVWyy6f)L~q>_FR1Vn-P4L^dnA8g@Y({Vge1~dOom|3RF39OMhJDCE(V; z3c(g`3fnf6#Q}Cj9s9H}rC@lS0}5TZ8X=Wl6+$Fphx$*$Q*`n1xH6GF6r~+b=|n~G z6o>g}vuj=EsL*lkqc`KHzOtfkNQi3{|B6~LOCxM7ZaZXqT8&j4B>Bz<U3<5h-(7_XbSaA&A`Xv_HXxD3?~le00O zf0f`HtB>hKefBth=9$x>N{ab5d|@b^anO(?99Gn7;)=hJAEe?}Ot<^O1K)y-;c9R#$Z=WT*_4sS=W>lvLpmEXlGwh}BMEJOo$S#>+OKDw?{v zlCErlEGfE@!8NP}Bp4g6v6EaTGnp_25~hL>VqohKjp5dNi- zkG_$QAj;*q1s5SxNi^-&PhBeaDN3S@k?=v*r08S7F3Du&(x~H!lNZiCR_sf5;(qr8 z?4$kbjszn!wCo1*01X9zQzfUe!=&$~1Ji`t(^#P6e7dv-J9p5O7etF125^ zR_AU%U=7EV=4|d!9I>`7q4lHpWuL8M+8v19S5yBuNj&0@{ZB@ow=V2G;9~IcIdDRt zC|wBk0}a<^oV;$c@w{p+Vu^dVkr{uGhVgfnpnG3Hz;?xIZ1-GHog+^rM(PQ*v z>&k&E3&jXt*?*-SuIdPa%9$>3<0)Jk?a@sHtjtq3%u&`^%;bwf>|v!Dpm!gXF3*~D zxl66AcE!oy*Uz8u00aM^q>^NR^9R~?XfBc!Fq?`45u)btsE7>608=2Z8O@t>iI=wG+orVL)nd7``4fAA{WG;6twXaj z(?>Q9N=D~WNQxfgtXRx2MxE}Wo9ivg^6eFL# zN%qbv@$}@2u2t#lIAaQo(Us;A4E)t6Xt$-4oV7Ci*LhODDVDU;d-+ZO;Ea!{-VXql zqNe=phu=AV9mF0hm>98__g9b=HOO|W=F3zhIDZcvAY8!0>RB3*be<*1>FLi-QGr}d zlmN5C4V@ANJ|PHQE0YPbqcZ*N#XIY!CqvGMR; zC}`v<`^B}voFX!ro**`7qM#gvslgMe#paPiW3yC7T%pA-QmS&Tj$L%dDX!J}l?2{= zEgkbY&Rt`2swY*5DMge4%i1t$#pMcYU9OfaJ@*!4DLGbfX9)5`m@M#Y9ks|c*_VC# zRdKEaFz}^LsD|XsDI8)eN}8W?f?abWU7_{%=mm(i_XNFLo1Ue6s+fqKB$0}_JF64c zVR26K5fc`S7&B5cs1ukTwwbg&VE+1)~k0JCx1HY_-V{8zSxNbuHAD)KtHv8 zq*Bs6{$8tYsAN^@pirc3Z0-msgEMsChdUoH4o$a16xW6_&RJ`zi(Vv1vV};G9=GhV z_AM7J`??I8V~Zl;T>O<+NtcY!L4CoTW}K?!`w-S4!W7!6$|<1h#5;aal_b7aA&GEN zn>=O$=sS`SjPU%TCHlzi#H5ItK;X+I0`y3WXn~TKLuNM5>nKTEICgi4s^@Ey{F}(E z+bP!Y?irl07hbqq=U>mF#ml)DtLT!RT-(pQ>Rob`4EPH0FCUc7kd{vWC-|sb2nsV3 z^Yw$o9Hqh6=IeJ5hRrmEr2OIosc~=eLuZASnfF0FX=fdr_UONt2prS0b$#1;fehJ6 zUEdwhLiV&=t+3dyJbd9HNwH~mYx;{^VAr`pr0GL@o^H$}(fL~c8@d+YR60v0MTBEp zF4$0i5H4Nrj!jY}V5)4eZ{ymbHG}mHLye6?BlW?J>jACjxq5(?t8Xa7dkwR3 z;)5)b=;?95$tIv_MOPkDAk`6;URQX>2k$)~0#GCbB9zOs+UB(MwoF)ki?#TILg_B? zySrKr8PynmC_4sfrXcRvZ!9Y2F8DqLwFEcDh<%T89+lQYOvZ0`#s><4>fVS%IHJ{~ z^2LgF#>WZE@z*MgSYfx^A5+sEeT{CApq&LYc!Ta#bdDKz&W!3))2k;j??OZ#g!G*v zn8D8+1tmh)Nh0rje9KQhZ@PdYnqxTs={)e*nY>-dAtW#ou4IJ|A*-BVrRb4Xo~Y@y zx48a%Zb9VnKvY5sj7XPHJiYWJxdknc+ybj;`IVn7pMLAo6Mv&0&ppYZaRyhGj?DYR zu9%Y!QRD#~h2Y?jW+msdN`M0=?T$}Y?w_SKeLe5dT?`6t+DqR@_9^@A-{MR0cqdXy z@;!igd-M;X_jp%in~55IznYL6tKC{vY2PhhyX@Rq7t)jWbLH&Z*>3$EC*GY`rAQMu zPZza`J>8^LQph5>xMMgZEZ3PJ3O7q)MYgNfzh}LcPd!0!MbQ@o$`I9P*WX|F1u|j3 z65+YzQ_M8(pfL8Gjrjrd=p)Tq%@^y$dm!q=P5in^fw?+wGD8OstezkRQfiJhjPema zbn6OXy0;8oGj!`eJV-Z3zUi+Ka!%N%M>XyVp{1=oevgpTi1(^1kkrE%sL6zHX>7JT$&>eWP9K7jmv1tvX)O`%0FeTa77wRyC*eaFsi z`*gW_q8=`K`Ti#v9P-4%JUsc<B zuFA1c95@TI(5>{`>G*;vhIYrZwvvM|d}O&Eyqxb3 z;k%{?*oM}|jwF!LuX9^;Xczf5D?w-vF(w`^zqvj72v=DMFR4VrE0`gqSQ5#Q4#I#7 z2vNojSC??Jynpj%u+@G_5RIr3Q|A6XH(>{S-hZ=_jO5lWy?#;#qnl}X z_Kt`f?SYNfB%`5dWU+39^pjT}!J$NBn4d2G`pM$ELmLRr4L@ohB&WZ9|AmLhv3rc$ z4lDnqd(JJLIlA=ZBQ#?bCM;N;17>Xx-Z=y>^l;=XfvFsQ%m=gOh-ED2v)jdyqH z*#|E@_ENkq<<_ci9Gcv)apT(Ib@lq1#(GaIx;)%BfX^WJc&Sy(Pa=RUzrB_p1is@H ze!Lz0cnSc!_6PEn-AIi!%*^a@0N`>D06%tOp(M+}Wt1K($ta z<2Yvm>hUmRaD_Grb6?Q{UONGORc4|6svjzZt+PZJUwFAxnlz-)>ws1zj!zYaRfjgesjG0G0j4=X|$>wy!7gMp&p^X7;HbwaMPdQS8hxbdOu6#a8p**xQ4z| z_@=PAGVC-b2DxnL6{%@o2;T%Q3@@|Vic2QmY!g^|@;>%WPh%Z!&5_4G10PeQa+y(* z_<7;6^YT9uy#3(Q%V&Nat{~-9=C2FQI-{$p8PM1jOJ|;Qw_*mZVD#^ms(j`*l+ASU zMOGX;6>j7!`LsWVs`CR>QkQe@58gR`;l&fFB}J&ed-9sJJlIQ|_^v7XP`H|nzN?e9 zB)udHh{53V(rry#_5LPXWX_M|U$mbI3n|K%pxD&RTABg4*xhQ!PvHEdy`ka3`bZss zrVS(OM(QJz{i*HpbeNF<1W6AnkQAq8Q@b7mG&NaUoUx+M1nQ?fsj3R{F|l0aC%;p1 z^Jqg=14Ahaz8twh6-sqI$#YETTeOi!9!cSf3R9^=qyeh=0$bi`hr)8WjR7n8ON~H9 zZ@DoQcPnB+0+Uww_K8=M_M!{Tahzw{VAT- zkwcx1Q*o0@bC>>!zQ0_vo`AT6jXVF^43B-pcZo?<&RBNKvDt1um7e9Ng;&8RDwm5_ zZgOz`%~-X^D=&t%f>cZXFVa4F58O5oNM<*3Qw$A?mN4M0#5c<`|KWtyID|`E3NZ$f zL*OpZq;A{h6wc89DxKPY4uXe=GU(p8R^RAK7FL5ox&U|Xut~e|6fX)V3bqRsh7!(B zBuv;XfGS&!^>#P(9g0VL&LWcx_(bg9?08*uWG=q(3>+&FkbMKyVuNy*HAIA&?}Kv> zJ66K-8_z61{Zo2!R^rxl2;$>nc?RmQ2g2-Y6GQglT;$h~h8%|Yks zZ21C2u|*Z#{n4do&SL%XJbQoY11S$zhrzqFY=?8Uf_*!;^c&EP-JJb<#2T6dX1N&H zZAw1Wh#uvZy?*^Pu>Z(_uO5&bG7F_O^@A_lvaPE)+uLulgduYN)%Pzw@~T_G1wA~| z+;e10k=w&7=T!1kzN9fmr)?a|w1V009SUiE6jd#n1Wy18 zQr{+f>q@O`+9n$tTja(q|5hgk!W1l6fX@_DkIfd})WsBt^qE$;ufDlkK|-zpy#8Kl zKB0p*`3&HazZ58Xp&F@>f@tE0=l#^vBo_Q@2z#7EWhcndrF93s1a`FJoE@r9%}8<` zo1Gg?#`(3GUd(elBf-1l;y}*oP~W*7{byCsr>hMc=w3 zPo?VHt^Xr~eTnwyTNF0<)QNI^U0f_B!_{`>TD`gHbNUs~VQWvPhtxkuvKSN_kQug8ke#(-58I(=`y%zzj{!H5ZKCjL=2 zghJPQos7?+%_;B~L#{Hh!>s6IRUaN1b|UB*cwa1Ott7vI=w{x@^ ze*b8<+O4}4Rc{n4Io~4Zblo_$$KMlZ3y<6^0X|^4b>T`~6VMjWcHMvoD4DHuQ zR>TP5-KCu&;Ir2lZCUnebn(o2qZ*xMNK0P;=)Vs zqd{GI=>23(A?CT#owGa>R`9&Q7N{4r{G*es21Q@o=$ESubSPJ) zMXPL3rH&#&FO^=RGmM+Za%6)#+S=(7n2L~Z;f5uBwv4c6e%f*3<|{@Vfh^$lPOqCd z7u>vS1g!iPQuXqK=4v{H6mcKpv zX|6@ZP>`v9|2-Hiod3F!!ol)%gzRV*TLNPEY`6D;Xv5V!Q zcVIj}`Z7j#BAe2zJl`3%>89Se(}@vu08sl#nR)=AW>TxrhENrV%rgvXtn3aw{f|PG zZnwVEv3yx@eb_ON=u#rTeI>OxBnE=t{W^-E6N&`d>H~cIL}`;!HMKJoPV-gx!*F z?-HrdxwM>eY6#UD(+x#ZWFu*}HirGPUdxj{b_7_bzv8@8ZwES-k9a=*>54C@;GNwx z7Y-;2qVWUOn;ZQa6>NiP)to{Y+fjv=UuzR~0$mEGfOv8o0Km1KMkD9H><2_w5ojg7 zD11Lg@W8Wip3TloA(?QX8Q#D?=dFSu0dd7@x=?@IAX@uPMfbIlQGO`f%g%ki)hwpeU+YTwn|kZ?ST?7bgRQpWoEgUzrw zK0uljJA}n=VTtV(zkQe;^O7+)tbJ-bY?IB8&ktHGc&xHD-8f7@KM7FYn@59?aABKm z4QeS0@s%+9YEeu*@L{_%^x~=WL`Q^*v_jgm;V2w6ECsTY$5k_w<$Hd)^pv!6mLgJ& z*Mq(EcqNc4n!zU;hbNnu-TAKtGU1qM#rZ1R=L~|;TXGLH8`C5iXHFf$fw<$+nkWKb z4>k|<5hLHYLC0JTbsv@LRK7<2D!j>$2+pTPJ{vS3msWV>R)}|0Zl zcy#Bdrzis`$-6zeBz@8Ng6(s8Kv7V6b0E|WGiUyzDp27Dw*X0RCgI9)av&TR*qw{` z2ckpnL2q>x#j%j;O(1cyODpKa%4RspSlui?e~_{^DXkw^JcRV)*I>+j=nekm0CJMo zcTvxr>kkH;SpN2|HvfOz^ZZ=t?2*K3P(rz_Lx&pB9PY~ z{wd~pEL5XRbri+=!QxK|c)riFU>L|l;ffs|S)OTih9nw>_* z0x>^bX}a5J>jGt$wolzz$UUvY8)e+WE6k;pc1hi<5P2VQl$7awF!806j~a3NGl={2 zepzFb?H}g^Zx}GiX22zefz*XrsI8_VoCcdepSZtML6`TvOo15$QT*CKW})=?K`_(F z3AxweK7^zE;(0#`E?}lUxcOFv!NoCCMXkxt+x(g@QjC?*Oki~)3+OW*_~Rd(eG!j} zjP!3lRP5NB^Co|1z*la7>tnzKf@1l&$~U1PcMsAJdxhD^1@r1tM1S^q{a7t%+1S8e zDFDQsC{dv4!%cbBRd@~Mh_+gRS6#(+!kT=i5}s6A2Djz-ES&x^gF8oFis zDhTI<`#Vz8Olsrg*jPQrxe|Agvjy&=bS|W}m}lN6z!nrZ;S|1^7O5xI`Y`bQs}ZP6mGN75RZ zNzgrzD$L8JT*oI~laOJ|F22S@J6U__N1(rY$c!EcAYxgUo)cHBy0iGsrh=@mBgN`X z#n9D7V`04i+ubUZlzB<86QF^Ray?5<3@PJa1xteHsm+T|@-|BrPhhZw!OHnD+Qm$r zzq$tn1)v^xDvtY>SDrGH>WD{dRuc7bk zPB0Sy5Y>3=KlsfHisA`gxJq(^$4M#LAJbJw`^S=*w!nHR47}3!jtl>ym2@pCLvjax zs%n3g_*SX`P<)eX^U(_r|2UoPc5A3>smvpX?RsGf?}Je`ic%nMnV+c7eS@z}=vwCY zDzO{Kv6Wh7%xdAt)dlGqTuqfSX30t0O?I9fDbfhR&rJ|Iua|`R)Q<>(bff|o8N%uJ z2yc_;VXhZndjZhe<@=w9TYd2UGs}0smhH@&KgS*kubNy9Lll%}aM*Im9Dj+eG|Bt^ zcvVG1XG>^(_rJ7!`~f%D1)&qjv3Fj))V^!^wY#B+w6gw{yP4PnVBCWw`@+!+k3TFe z|EV7?Jt1=|_YM>voEcYsOIgM6L$}@NT%S4WZKbC9rV3m8o#L=Oz=SmQH)kBzl18}w zF1~g*USh__wu2*FWwTdx?0k08BL+fk4kIEuEOuOBB_IFA^2w7WA_CKuNr|j-3rmgb zCDGMF0*f)6p0^j+G>Pu+-r^qpwOb>;6=f&rqSQfN*d&+V)kVoFHgN>6_G7ULoAEq6 z<{K+dDDbV+y5j()JYL^QsorojtB4MNW|kJHVb~$GDUcXO# z$?-Bh%*Ukzt(GBv`Hz8hh`V%~9}_5-%{SnrxCvUYTw%Cw2g&daxqCSbnAVb7mv`-0 zL6v^HZWdKRovlqMzZ6%-7B^c4V=jCGu&dSP=THH;f%xkk+ro63 zHG#gwZnkNZhV7%!=;Ffj4-*82zpOMYSrBMZ>5=91*w8Q`AS60xBMk1;w|um*nr*4f zN{ujxmt(HUDW0hPhEkAaXU8PrhgJk2GxbLBJ%Gj>Tr;r|#8kmzu4;X5f56$CosVLC zyY($6<4Z5Sv2_2>9aIBy+Os|`SIdi|uIc`^KeL_2L}CdR@@P56%dHFrh|kCYtaRUi zZX7l?`uknHOa#wLyGx#Nm^|YNPOz+%d-tnx#XEx7<1T!vz2JKZb8HCH3TI{U0Fm9d##Ji zh+b8my_ogQ7#)^Of+lP$@0%U=BHDwPf&6LCX&?`*fwIJOEk}87tgZN2_FnMk9D9UG zg)$pSy=&{Btm~%NM4q{jyIXlV@ z9L46j1QPbz9uW@Jqy6BYyaSkV1SZ1mre@lsm$8MR0YjBGM|5PTiOE?)g!^Y*ZYcNb zU!2d01;+m)Y7_I?HHD%#MJUpX%Ax$z8DU?K6rK8#5tj5sQQ45n;%ekt}|4h7l9(KANn1s?L)+RjNaj(phVqC^71e)b-c zd^z4wK%qAdR~);l%=M&zG%BZ~4gVk-h#wUh74(u>D$^!%sBtIPbnkgXX|^*^l&1C; zaj}%fI5xOib*)tUnH}jw8e5HQ*^BtRhF)`gHdOjXIN0O(u)T?SAkBxfLM)8Wir!U~ z`rhZIeprA6``#gT);EF?Gg6-%9I1~55cJE-b*6G+CQzw-0VTye6FEv#EyqVI96E_q zIm@P8KCYTn{w+DNWsCiG*E%8#wy$)pILRYf%7J8K<=-k~`pT)$G&x~eGYf$hpu?{y z6jwrvcPEmzW3yu~nql@y23ud@(yi}>DIjETo}23L!O2xS-ZW8M%@?1&*Vs6#YlAQ_ z{*&^~t=L@v4>KPk@W<8e(oDePb+K43O%r3&ofOr{?jEnsCm1k3>x*bw6kc554&o{j z-0#>F?qlNN&CyN$7};zGK-ouluq?}H$Z1K-11HgbH04PZC6@1cvE8~V?}_jeZ+(Zs zieg~fVs$&4TaG}x?a>|hMZ77)rPI-5z08I=K$7LSLLX7@gLTY&HyAE1JSclxRJ#N- z&o7qZ%;RUVr*`tC9v6_`Fgo;L2O8=4DlWShYZ-wEQErSLR&bwTzh4Bvet(9 zSMwsKZUR0U5#0w>4A8Rl{0|bI&J^FTA=b|xo+4AUR=dX5*6iWm7v2m4{lypV4r^hp z=gd|{cW>!$kG8$Tm@2C7Tj$$x|?vUpaTFjaBH_fyq1N1?qDHfM7jY zG$Woet}(Z%96?~HYV~NWRkcpRo=jH00^j;tGIuc0W0n!FfJ_) z(Hh0x#l;h{OHMzzuaqKoz!S3C7vK90mNbSRwg6%QayTQF5Ib*WrG)qK z99HlL9ZH(7bea@>K;?UM{IoI>A?)x8iZY1mR-uLI2A`YN0Fz?_(?D1nk;>6ZPz65n z{OnmyZh5>Hn*@+xg9za>!IB0$bf)138wRPfw&KahjGlKv4UF;IGZvx?pX*;S!Z&+6 zE^0V9a)*1QWG>KW2v^%JiEN?0)ahEcb%gO0#W` zeo9(VN1RS4H=|$c(9PIV2Fs51t{K^l{RMM-7Ax1G-_lgYbk4wOHOO5y48|Tfmhx0W zw3NKnGv%;rwn>RF@b86gqJo?JbGCRLO!?UM9izq2;L!TjgBw?`rI(8KL_&SGbrY03 zs!d^GYv@)C_h1p?yLv_hb2%ZI;$pD!l2=pSLn#ldz`1c9=-XEpLz`qC&`%^cUpRC3 zx6@48t=|r%eD=B87%pqMrSYk%ju7`b2??q@bQ+hbQoqaL!ahTClq~&LaN93OXFF68 z^8n2qSSmt4>ypUO8&S4M&^-uZRbgkOF*&$l8DpVuzex>uwR;}f`gFLzV1*3m<15nq>!5mgD~SejuexBXj$%jsPE8J;=8g> zRza;Ov)Svr2zfB_;a@|TfktU$n@|$W{Jh&t#9zxB4iH}qDK@=L9!Fz^X;r8-E8Em5 zN@?Hkm>fRx5AEh#c{e00YrXuKSFF%m9VW#ago@-oe^IzbI9vVP>)-OX#wk&Wz@jNR znq>8ddNkkY)tgK`@)}`;Xt(|dPqIoE+L}vf%$|l&vXAKF^LZb}?6r|!jv>gVx?(ep zn~E7Z|Da}3d3Dlo;!6J~ZK4M5eyzvev!;00IUoG~(!D1T7%$=@dhth9 zyUZ2&{H0pqa1YY_4|qZiu`*! zvJNm-^HHkG;K8L)iGy2XyRY^kVa>hZ-+2acZ3h zIpU*qtX^m*Ox8;UC+iJTu@85Dgi2&g~&6g*g>&m&TvIP!kyEXh_Y=JfD-bTrj@~Vw* z7@piP*%%ob9~xd$_vDXHhE$dyPi*l;2_@BBbxOCs0^QsT`4MFZugV+E$`E=uk$HPU z;R5_@f8@P*L{QihJA4w6aC@J)kL$?o!T!|3Amn~FSpHh&l#g0l)F^xl4U^FAaiYpT`iyt^VU>-Gb7h%H)$VQocl6-$;Cf(Qu zHRG{;>`s#K#imlY)>97zfn*~`vD(+nbPY(1xvFV*i+fSi2n*rWSP*)Mdh&EQyD*Rr zikWF^BLalU071!wn422bt)r)TIYD=IS@%}%NRxf{A!f}quk9mjfP8o>)M#cRf#G*; zRY#W*Fzk=q64E`F0{38P%tkLw9Os=^SkMS#g#K1t#PQkbX>v}nDWT&h%dOIV15vc! z#z@F=PRKB$Z$+P56$N!12RVMOaM?$ah@~_<((S=>U_#jZI{HO_Ck~3h?aqEj1B5J@m^|m(wh&E!wdwkyv57j!v*FnK-(`>ljX0HsqEErl zd<^Ir8+*)+4&>mU`zcZ)onlkGFp4YHp?N(bm{C^V!qm)20|9RNDdUtTkmcOiazd%dBEgIzG03$iI$lM3()9 zH_ss#QNMoj`g+r13#P`c(OuNoQlP~R?w$1j8~BUTF{NF&$qi-fO2fNTU@Z0G5O;35 z606nY2-|ey5^`F_V$Hyyio)b&&@IJ+;g1XFP&M@+u^Uqy0rZUfu!N!UnXqtW7ypPV z=%1|#SIedcp~?t_E6(o**9kCgDPoaRY3$T{vouQ8qux9-v!j^|m+jHwU(k~9|Hz84 z4=cic0u;8-&ZmJl?auz^nh;uwL?wWv)Wu~+B!vY?Sk6Y2+f^s0=O7dPN|N$M(g z5Azyu<*0IVBePXM>aY1XGQf@3k^8}LwmZvq8%sJqez0V-e&KGv3s@GaXF(7w&Jsmjo_kCB4H>wx%*VGny9C=8 zdCPSYoeOQ4v7ZP*?h)0gG69Vm+t~bRLeEIq@NBNx)R>UE}IImlM zJuf~+(PxERc~qm0{i}i!@Q}NHZ^eN>n*;e@TS%*CWxvtc-vN(xLgfew*6#&%)<2d7 zn1mqLIJm$%KQHB{JM_&1%6ZCYcdKkxUs;NT&89K`X|qUUh_X&6-XgqjV*UD|$??ez^|47Rc};{eUfYN~;ccF zanyC@mA%U;UxaliuFt(z(mC6sBRVveh+PCdHhU!`x#?OqwGsJQmV^g>2?%ls5Kh~) z;@3p~qXbsV9C);p+KrNz&<1wjxKn_ah6qtom$G0^pUkVY>K=Ezq9>mLMwC^PgRZYm zeL;ioZ5I1gmse3L*JM9R49{*b9Sn}7Paa=Tv2%9z_Qg3#52o9%fpAKC6P(eHd-(%){4&{+BW^v*mCKq2%zv zD@oS$!ikxV+iT#MvMU2;ak~c|U+Nlofkb^pK2WSgwjRysDr>j)21z5G|FEJ#h$lfr zU)-|))-JQP&B}8+{Ro!Ev2W&`CI!(7WSfUh`GoD(zf0<$OSA*tjPoDV2`!z%k%WF6 z^<*P@GB(FKl=g1|BRe+ATj^NMlCHA34?0-|h8LsX%jWJsbMgFn;}j}#i9wtojLOVB z&Ye}wvq*tD>hvMzX`?CGGGtA1R8byg7mWEENprUb8nFtgi5-Z)8Ct*x@4c9)DR3?i z8Yb;DLI~(M^eK>--vY}DnaRlJrxehY+Kt(e%8t4Bhs$T)B|_aG01-P7S?Ix6$VoQz ze6}r{j6#~M#jfROcTC57%sNT`Z5yCVG-}Qq>0I3q5z+A z5>HP8EF-$qA}+a`%ZB=q^#BE)h|s>t0Ee`@K55u);c!D+lB^kq_RIYbB%n|q&<0bQ zsdyu^@a5xbw{8zy&<(A@s2Ai18T+fj;w&Gjl|&P3pX5Exje)vN$QeOJ>9Erqht)DC zz$lGKLZhaOOC_zyM(3VHEM0p3bt01ET6M`G;fvBK$PP9JN5+QhgY4i$y|HF^gKgF) zYt8AY@rEjHsFM2+L(bH(`z{>6FJ;sdsFMhVVpu~FZ} z+dzcceJ`V#`r9xUmGd@S_OK_foN`R@ctf>YpHG^NJl6)>Wc!@yr-YG3B=Urcu9vBK z7R)P9cCZwDiHo*QHTeMk?(mr~@b>7aU1hPkB%}1$~@e@nRcI;Ym^T1#c zl2nZ*T<=ho_yLuH@M&2s8qdU5ndN)mCHl&X#iSL}`96PC6mj%~`}yMRVao!3wPG6F z2gRP*xkZ^_B;V|+&+Sv5XR-7Q$dC8h*)@$TjyX0GhgZ1KR@5k@{T;iv?7VU7wtY35 z%2mah4G`?I)tq;1sx|9f-TaPXx1mU5S1v@P7|(K1tQE%V{AzW?OmeVw8E9bA*ec^- zaEXU|Prt-4t|xx(v5nZUaHZdj-K?=AY*d(XyY(L`dy(VHJ79X@eH^OK^)K9s3x!gA z3Q!PA=4(h5KgGkwf?xRg11jNX0sp?{{5#)qP1tAr!1D$52h8V3x-;9P6_gakzuWQA zxU}TryME43z8r>9`A#N9uU8OvMy#~4ZsTBM?FiV%jrAKhh9J$4Z$S$}Ke!3S`}5H( z^5S^{a=c*-9qEmJI0EaGEFsgge6%S@Rz1FDMQB7Z!p|WGV|X+Zj@e>^gs7CLm6~^~ zx<3y5OXFG z%aT20vq?E{u!;l$1{?mJyw53_LiW0CEI3K>ezn7v7>%exr!I9sZSFni{Q1+^J{rR_3yX0 ziZM(DFmtwDtT2o@EDpVY#U~m2HmM(Y79z#ktX95VGDtK z!ULAut&i3A9GQ~s1HXaW01bDV0AB|y)a>VGn*uMxSfYE&v?6Zr@TA?kTutmC8eDrl z6dJJ`>?$k!6}4DvuxAUOPz%yr_eshgc5-pjcj3*&(`3!-*~q8W2zP&-3M$r4xbNL= z#U`-jAzRc^Il~Nlwng2HBU2KfJX!u~A4{+-zVe=%1O(>T^Xrf6Ym<(_-72Ty5e2@k zJ-_>W4Hl++$cB2yXtBA;imsMcVFBI73!FNkX(BG%q%THHgt9kmtYBgSL33nq<2pjS zMuMaFQ@iA}rUP^Dpy!zrJBCG?i7q*MyYeTmsC=Bsd)5d^V%?2>@Xk38tr0W%^&4dM zFTDyT#4kK%9Px`KAezZFSE8zmEFj%llf_2YD2J`uJEFr6YU9WYjUPxccGCc|_JB~Y zlmhPSG{q}L;|J>Ap%@G@Tyag*7gX)I^}}jitg}%cTEB5<-SBvQY+~cO3773uDx+Mk z-wz}}3Bmi{RurGbgwr_Td`o9vv~hkp|HSIQhaWV|7>Co*4lN`CRn|U|8J;EsEbB~9 zm>gO=F*3G(Xqf+Ra(F!W@599tc6Hi?B$-9udN1wg@&jb79hFVVU@uvDhd~NOK|&K6 zti#F(-OjMEyfva2Lf|UqOmg>+z0DYH#<4_krz>(Ct_J1i;=ebQ=-%y?&WjupMLRLM zZo|5@>(@;Tj;|eDw{fjY*`Ej+tjsUW6#0a?X$a}h{X%-2bJ!A|3vxV%WvUXwh?tN4iioLLXyL`ztHJY+^1j2oz^yaKMprN{1#UspQA3{W`}=oC?8F>58q z0y&+`^Ia|!>SDubY3^_Z`<*&guCpPnQ&ovA(2Ah-JtthB?_d*II`)$bXW##hd-a%a zX?4<>m8%We2WrjoGwEH~rRSm&I)iVxS$0LZ%?IGy3MLJLmHI_iQO7Cm>9L zH%gWPOXor(VM4Gb(PW|=0xqrE2R^6=No)szUaFuE20_d|R&wX^*`Fzj&>A4&(&~$u zg8BZF7an@77`$_P_&;5i1O+-3r)~-bo?d*LI;aNmitRXrNw$8t^!Qth9VI66 zz`$5Rj;HQLn{?Km=8J7V1E57u=nX*&L1Z7gE6J8m6N{?{_Nnr;g?fYeD+$rZ%3;|j ztIhRgP+rTA{0!ex*7A{g)mebuj`7bAU*Oz7w`^afBG zvU~A;lf%&}%g(+}amlw-S;8?y+dO~XUskZ0O)aZ^`e6E_4pU=tN& z7heNN8XieyVe~RjA3fG2LBK?jS3p#I&^WoY#!HVLgI1RB{t0iYq^4D^aZM}rwfxGn zj3FI6v@T`aoVd^Bm1A)uRQIp8dH?>sJFdHNKNSG8y_CGDwPQQjh19TUu3Q(}aUBeK z5xn?;9SDtl)#^0>72AS&069a?fQmgztI)P5S51ZM2&oK|aMRV4(h%TXPeXqKK3zMs zf0b<%X@s_J2qqWbe-vSmel#TCMYa`e*rgM1>TE4CpNn>&a$eeATx@-ETyF2^R6j{D z(dD}uhj!Ix$OA%|_}9BEN2}fXSFqT2>)-Hf4+f|9sn+K!o}=KD=lk3K^T1`7-S%Jf zpTE_A{*M2gYJJMPiGFv2mh8P->F+aTe~vAyM2$3rei`<#_GZ5TZ-M=+_1Wwv2~4vT zQu$o=8!3eT*j>Zq$_H`f_|*m|k?PxyL=9zGNP z$~uWJSU-(&L-g^dn2~lTF5@TT-@bFxfBuL5^FQ^U|HXeAt&cIq>lP;nuT!(1j(^2=HD!Ao$f$fFYuSj)--^y)-CM9@eZT6@+N7AlPlkA;JQ{%JsY4EdX|BGc) z$T~2RDU9Qk# z9pl&X%|rNbeJ14q1o=jD<)_w(8AQ8&HHgjpS4sj;Sm<%318p{FD-5;Kto z>e-Ao{+a=YH96EDw@N_aFt@(&y?s0Jq3X|D(t}%d=0B-R+9fa$6GgJ0&3{4ZT|m3) z`i-#W&vm`GzQ>PihkE?Dewgj5e7;9pTJ1&Fn$B+xC56?ie2Z-en3&GbZ<>{DwA$qL z^=YWHI&gzw>1=ZA?4m{Fb-cP~%~03Gch<)msK#HZ42j68w9JrU<(WOuZftf2-1=hm zvEZn+A#CDr-(@%HkP$_xG}Qt55BVPs!Olp~*%< z{Yv&h<)OWQxmGIN|02~dm4EjuL2WV__`cBb#6eNot^9XmlXYR_h3yM>n|`0DF964U zgyI6#X9k<1K?jhKKgjx#gU9a02~&sUVhfrx&eiO_;PacEtN&n;BFiXH`ic$8-Z4<} zFjEfmj=k3{0-k{UqiKI7{YfIRB#K(ISr26fKA%0a!B}wR?_|F!K#!ftez71yWROEs zV0AS(HDAmgI@=tR!-1tJA7DcUUW*Etmf*)n-!7loH?V!x9W#z(OVhgpZ{MatsQcGD z8cA7%(*TKSXx~`rg_LIayPa=%NX{2Je-0S2*@A_kOwdi&uY?cu`1Q~tN58AX=ET(D z9zQSk{<+Cj+UsrmxoaHUy>PJ3xy-^nyI#Gs=daC!y@ov9JV+B=GpYCfd6Hw$M;)~Z!oRS2D$KbH+J>^7xsGBh@*wP$7Hx` zD2}Adx2u!MIcu$Jy(W3xy6^GDP;;tBOUL*y%7Xm7@~dO* zRhU}&3@bPb^E}Adv^VGRgSC3|5c0t%_8i1dH%1%8>&0AjOb_h6Pu@fn_vDeijV2B{z540$0^34d z20yK8eYyHuKax?n)>>C|JaT}RC{hHm$zN7;{r-Gw1I1n7-r41Ek2gH)UmyWv@-Fn+i$WC{ICRT;dx@bUxcO(@~UdJls z5?R+qK?9Y;&_&z+v~2yW9j*IwU$S;%vGs+DEo)}Bv}UzRVZ7z?|80Lfc-dvGT-tAS zisDsHaoaELgYwv8IjRWT?Ofu#Z7*-%c9Z_|y8iR$`nak#cAfm&w(F&!zO*uia$CQe a*scHknO?~y`dnwd?JaA-5A>Bwjts{3Y2V1K%+^P8fbt(gA`@RrRweiZe2FI z+x_6f8)fXo(V(49W)inE`Ql9CyqtF?ak5D!o5a~{Hj~Nb;baq!*U4n^Ir%&@j%PQM z@obWvJoestbXRrNEp*?mdm2QSzE2Wcq;UJ3^WSsNJ@=gde5n89r}~V)-mIOi9xLA4 zOy)9jNl9i@IeD+77HhM)j~(dyQ2)pK`u6C5uzDh+CC5^^f;zUM|LFw%!?o%G`=^i9 z&V9H>f8vmA{K%sIX+SIHONCnXbp1zMRkG=fS{yU~J*yPSj~b37?&Vb}yPm7nf6zX; zRIF8x*8fNPCsy)ms#YDU|5E?Mak}h?oFqRwN*16omD zFK1IS6|ho0Z2el!D+R^))BQ?e<9w~!e>Jj4)(LW$(l}(~-@-rL%XF)BM z3)vbPF?5Lzq9f#2R6caPdWdR5%ce5rG*MrvRvn1U=5m>a!Uk?DnKJ!m15^ve+PP|f zoUBo+_7Pi2MWSgfMKwph?66c^%4yk>O27G#R9w+EvTB6 zpa&}G!3sK6K@YuNLyyGK=?Z$3{OSqv_fv)vh(a|bt)WObih+^nHP)e!@c3u;L*)S^S9pK6+}xId$1)ohM_m;QBXee&N9Z06Es0)6Yx z3~s8MNwq-HTRlqFN#*aAP%bOyl2}bq{0x)-m{(G_bajoU)phbSWlQtJYPM`xmj3J! z{Zsw-$p5Hi=~vJdrTNuC?}iC-rLNTi{#HADwscus5(pb1%b`M zw3^B&1vPD`g{*flWdKP35Bi@O-XyA!Ga5lY8mbOmCU7;C6YKki+A_f&`BJ6^l#Hg( zr4AR=VlH!={9NNV=yoE1s#q$Nbp;HP5A@5BKT54s&T6?V`Sl3-HMI}X2>C>TpyPsi z3gaV%e#!W=^ye9xBfocue9(n6G*A8u{js{dfLg2ZB8xTD&_KPiGq?XF5Qc)S$l3RMV8b`#j)FYt%hRcr_8@uL-7h) zte~Yhx<>xPavZHxP$G_2Q$d@SOvIe#dWH}6^a^qRZCW)v5IRGgkFjOZ(|o!@MF5EhO^Lld;5M?F zE{Q|DKJ*H&cw1futuPFFQkIocZc|IiUlgs7%}wh_stm2;0SRBOD#Er1hL%O{QT|Bd99@CA4=+Geoav(rY@!~suvYy^8D2F z6qJuRREJb5qblTF^)k3fES)1^$aNatSaBP2p(;*L)z@M`(WdSGa7Ux+7{U851&DXn zL1FVNsGurod0ow>NOZ%21)LCH8Ci_4 ztS&@>#T@YzbB{PNXCl{DrDbR_4|s~XSDcsxw9%OrXfa1U#oQ-OOkz#CKY>Ae&{NEQ zabm7SugQ^>1hANgJjEOcUd)GSnr5sXa|M>ILEl$T)Syo_&e((zVGQqx&d+u?0BbgnuWSuqMx>hFzLs}5aw zJwL|v*T+5EmNRk0pB=wxZ#j!W7;h8R{(M2b?X4C3`MrI8=388EC}SXnG*V#Z`M}wG z+87~4Q6)K4iLG>MKdHe~N%3ch5Lz8qJ)ncbEQs~g3GuA^BeeE2;Zw*#%Y$AHppe5| z9)zd&k=s95g;1HNYOh5{J-jkc$}PKaE-Cdl1x|5B@0-CYfc@FWy@sXa;B7D=|5HWH3?Gx2P@ z;Nst-cU_L|yB33e()3&xxmy=J=an8`r{TOfiS0(-A$MAQPprtKyS#4X9dNnB-zipH zJEnI=Y>U4rR^pL{fxYjF!mjP)VaVpK+HDkW?=5ga-CR(zgqDD>0gyj8@%B#N0>`Jv zFQum^FQ!wfdP!MVn%)9OWjSBS-PQ=>fh@xt5TaYP+E0lqyk%>p#cpT5YBsgFvu@b^ zMM^gjrZ3v#4`?xh86<9Di86$E>Q|WKn<9?yU-viOAt_K^kDEX^)TqGBjqBY(+Tx3 zOgolMIwD?5f%`h%8CEjHHOQMv-rGs(1#YWSwluw69frZsbzdvvP+b{>&8xS=!0P^T zQ76^&^pd;&8gRgnzUN^eGCCR}(a~%fy&OM|4@V-9x zhV9|$vL}G&E8_(Cp_*b-EPlEJ;Nz?F|O04pOWOL2qP*syYzTgya=5fY1}QY}Fx(g&uwmIGofrWaCyCCQF9XYKc%z zQ^sV^h@B%&@Fwy0ixavZJRYj6Av`Zf2x~Us4JNHkiZ>>9eWqYk*FZrf(+JXx%LML$ zpuqq_=p%=8IP`e*Br$1sYb#7TdGTGj^-Edg{ZE)5< zB9kE^8+0B)K6htArc+V85|-P5puroi8{LmLJTy9E%hPIKd*O`0Eq_98lqisy6n>fN zmJP4Zod^xjvD=@7GyLd6bm8jitUNO>U5Rt;bpB$|!wfOWD4xJcgpU$ASLSDCVMC7wcM2 zna!y97icSqxTe=b4RO2PD}(<5OxCXVN#F^ZffZ-h!wtK3zv>bHfmmT5Fog{+S&vT+ z67#e_RTnUAeZ&$vknA_lA@fXjuMYlD0Tk+vA*rr})yYh+Z;mB&1j#yOF5u_B(JX=FE z?s}nW<2y((@)q6MK%Uh4rSs>Ni&N*-i>kW5?i|R&lcTE_9&VwH3PLRQry-(9(*0Fn z%<0%hleW4;eQLcmKJhEV+s-im9IL%DPI_+pSUtC-OLbtSL>PR0ns&(#pu>hvSJ0!c z*L-cgg2eSX#6Kc!`76Ej^I(z;lZj)-A~{_N)x#pi3JX9pdnan zc=Q|Mza={HLDlXC1sMqj2?{mKn0~O0$1sajO-%TeDz?%`<582|+bE#*eL${ZAFp39 zA%M;_MlX9+JBRk?I2vft6p;N76-#LXfiaPh82-QLG3OP0xmMR>u;66(kD3lQWbZt9 z@;e{#f29g&{|yi@L^#;c1+PbFB~ri-k8o)M@LaTMBGBUzzr-gx;9)Rgf`AtR?lS?W z`Gf}afcp)hxq@Tgdr4)Rdr1dwuB}`4J}FLylzAP_+eCTWNoTMhdHHo?NhwAgSZ5dN z^z?;`N#(-&#r5;gPpzMyaA8uk;NEhWU1T$1^agrJF)kEpLK#YRaO@Hce- z#K={4zFp$;3QERNs>K9C|Lo%8JTOSiHKiDJ?oe{BirNg-(R#XxvXOa)JN?G$QtS|% z#DjEAVNgC~7n%j>##fMH^fZIAHSOLJg6ZnPy4Wr4=#pX?6eYoR(&t zO18D77;R<(lDYr-q9n#qp+EHYPsV~$j5aU<2|2KGb#YmgRU<1XN1wVp_pG_F6r=r1 zK++EBiwZk;hYW$4KyIuq#b^T)kktEE1sb^#So#>d{tcuUZD0bDd)Sa$n7NPCgG*g> zmf7uJLyFPHCLsBT<`?5v=-*MUgF1tbh_TJ&P<)zqZII)LU#marOZgzk9?cYO+ z(KZnvyZ4K;`G9V7Z+n}|O0mb_L>yCWOp*7{P6cD?}Fci@Jw$P<6y0OJM7 zT2vyPreKl|>5>X_;3GN%JGn2iT(@m~DMs6RfGj*n4J=ITLH%~YlDVeqGDc zLi`k&38LGV%);`#G}qUbVrStb9@HfszbHoJVMAnQ*0!;_6gvkkG-3D?aUNAop_#c` zLuk6X6nhq0Xu@YHQfNBy#uMF!&~$Yv_6|6qhYWa62-?ykCcY?gLlycC-T6k9(L1&VD<#b%1# zSYC=_&BF;jOhVr|>GEY+kd2Fn88)^rEX5Y!B;K!)+_Lry9#ju^VvG4(CgSG>K|O8J8)qePJo~DxAba#5EJ4 z1qn=E2c&F?TooAC1l#IT>?WMl!}LTFDE6@4b;Xw3zP=QD4NmaEJ1LUK7G>?h$PJn% zXBfM&wiJ6GpvY8WVOON=A;yhxu)eGmTZ5B!h%PHG*7^`jT-&-*>~&yy#l>3R>MO4m zYrP*(-gVj>B@E7gGs=MTP-9&wCd0`)tgkB$&?Brz1N*{K>wKqB{i2kn*pyjR?Frt`YHx2|9F(i{fGK$wC`+A7gEE&|OVcu0 zF(5z3vbJ++Q1((v5KmD~r4|PB7g>V4RtM!TwbU+*#uP8G1a~eCN?~g0yv`yjA_pe3 z1b3|t%3*4$T^!dXGjH!)8kEa))ZF9ZC{5XYYE5f{a++FecZ1rrX>Cx3Q)_K;M5p*u zto_}zHYnLC9XCSHGFr7NjPn%#JWF)<@}RV*mV<$2KXtAPN`h*EO&m=o{v(#Po7M)U zL$#3B;3XAthW{6q=7##<`F8O)YiH5%PA72uBTEU*-vX2& z^@tUZx zmY4cwmhi6CK`B+O)$0_eBBDEH!JTV$P=Zx!$902ewP|fox>ZZ-B3W1QuWpC;`s$#> ztCrqP8dMQz{{xofO>2Wvuv%9LflRFUODw^g7YF5HwH6mh$%>g(AI*z{aika0R?&U%0TCFQ1 zd0-XPKF#cCb1n@^+-jYxL~2nD)y&?urnNyCTy1NM@^H*9x2CnF7$B9aZEaEBjoI(k zw6+ujP0s9#YhGN60dm1w@e@76g=M4ugjL?^S{;-V)(W5WlU$haf5{Twy*wy2tZjL5 zOk8*`t0Tj`JSan~ZFzAllK4am($_g80f}NQ>GiW+81kRlPWs03pnS3QS3a>Df0`w} z$NHeGvG(-^Zv9tUk-yHt2gn_3mtWxKUu#AF`tAp0khP*~`T`~B;?C@|Y+4(XO4bUr zsNABi?#zzM=EXrNW$lZLitL%am(7byF+gfr>!j1MF6^ZHe%4lZFAvHvYk4{Y@xsLa zS(f-7>x1&l+SeC&()~s&^4Cu~K(^UovziW^bk@EwDEF+@RR>Q&>sT3-iMGD7DA&%+ z%Q{w;Vt~A~^_4}XYnVA%$I4O+kfqkzRN!Q__Ju(?Yb{;FQ`b6H24%3VuPkaeGgGjR zm8BRUpKX0*QM;L$e08iW#Q@oDt*}@i?<;1qlQl06%5`gHee0yNBI=@;++D8KK`C#o zh?KIm{^4 zwK^zOu5ER3oH@*B)wMb(ajvy`oyb;%r)O3XxK;t-U9buostE(z{j% zrR=p*Cifb_wt~0zV_wCMS0AZW%u$@43ON{TE4-xD+2h; zZZG%ppj5w>$L$v5ugChJ#J`U9#etvM_2sd?6a%CIcC0V%lEdu$@>pMr0g?hAHQ&~| z#trQC1wbi+ty(T{rr@T9K?#HR8)g^M7ZUg4MMmRDiuHBGh`fc8ag?f{bOosuv|d3Q z6@)5Cs~}uKw<;)8L7Q*Z%5T+@s$g>`<24R`5JzSa8j-ES*&J#f=DrmBTrnb<9*qL$?ogi|bte^)f=)np)RY4DtANL6U z+hO+q8Ali5O+-cv#EjiZ;g(96E+CVw(U{+@rc zhT;{pSV2p1bdCInydVWH^xSl?rK0iG@b~~@t0u*(N0jt6F4sdnW1XgvQHvMevt(yLE+`^d} z;>>?fbKvX%aX7ONl3YV@n}CUo;(dk;bgnuWiQdiU3Z>e|YJ`x_(}}h2ihMUb@%%f~ z6&>!>6bG0Nv0_9otHWqTG1bSV?pVj?n z+ffzZ%}nP3q$dim;8q;&yr1F!uAeSu*p2^&PY-}M5lasp-$(Exr|jqIV~tNFr}eo0 z$m0FA)yU`QAoES&gdp>Lq4)JQhlsCv|3fhElLfVNT;Q*e zs)hP})j~-K3%^nnj^N@594z|R3#!`50c1j=)AMJym&mkz{Wu1Pf&ImMMN(DM5emXu zsg~-}IGn)=I3V<^cePSSFfeXfp)&~hKzINS12m_b(UN1GUrlh7L^k#MNqm*YIqio? zqwt~!5J2OMF1r~&)=M^V8$g$#FHfB-55(2xAFT&gZ+O zN88c{?fOsB-4#Tgx4+~EO$4c>66sxl+bPxNg$=TGAgTAKwGEB4NQ`g0)K`>ZlvEu^ z&S9k91sB!6s1&0V>QK_=QsjXJ*s#O4MGfL~AZZWe%h^<^tdz7|7I5D>mo*5}fg~Qe zgGkp@F|VW`4?4%H22DDUyu*4mnv%>wifdogphX9gmIP~sRQ?_pl&y!Jrh)+@i|3cm z$7ji_G3znW;L?q&C=1eVuKG0<>Hb5D2NwJa7QWO?k1K13+313S{-cqOwUyF$%C| zNAF+-{nQs2jd>n59J|@(v=A1|<}~~hvDMo-_`{v=Q78Hk918Yts+%DQf=KcEaz}AQ ze~$oyfM$JApx)mo+6l8h?Xp-s3TJhC{}0VBguJZn2>)$xW~Wy@@K7&I^LV9s9tXC1 zp6`OspW+RpJCEq@NkFTU=&q=CnAmspXJAL)V=Eb6-cGTe&iFhHhmj!zBb+l8y?q10 zMH5+%s9vw#oD6t790>Glpon+hHgW->qu{tDo`b{4AaN9%x!Zho5Z->mUMkSqdm$%C zcC(v!2OI?Yl~RsyB6AFLXycJ63>rOx#&^LPd4L!>lM!rX!p%n~Gx~G$F`on5*v?y& zyxq}?uP z+FH()JG>7X1%0|hAFovh)44J!j-=f4zS-W;t2@1rP6#pyXZ(R;KEv6F+fwY-Pv#GV zAV_kA@E71f@Bm5tYT1pk?sY6Nzk%Mk6x`dlf5VOQTiDuuI3ioVRutwp0Bt-v;lu-Y z{}E$-&^9E}ldA6t@TQgKg+ZH=$c!*u>TdKVd8`fEqGYXaYZ?OE_a1A5HY^=8?cSZf zCC}AC+n2~_I34$0>06vM=upgO_!I-! zC}G<>f%Z$_FY<{F*cxCHT}Z{KLX#%kR*0y!Ts^T~JQ~_9% zY6Atq1=rJ~Z<5+NTK)^4CIIU+?V1o+u8EI5%5}&B)-GC_5M08DpC_7V94s&J=>@P} z@347i5m2^=WnC9mY@T#zM&;8CU=f=QF+y(mmR>&U(91XR=>@QG%Q|R8*KgsUaVX~J z_!I+J&O|sF_3MAIRZaK{e1Zd(_>l20mf%5F`ryCklN_+##b)vV%U8hD5rAeEME;2my}iKvH^?%nwXrvbZPz4#D%Gglb4dp^H2<}2jq1{%XC41 z_GP6QeIV$2oH*Pd+P3`*MGnZNTuI63xPjXj1Tpqyr5L4Y2bP$sybBT=%Sti&)&V5( zKvLb%_&Ou?8$oN-M-cUo9<|P29w7TfitSvQL;7|Tn4$e?4hM^Bikql4G<5}a$Y)01 zs(?(rH+PH6d4*Q)*vj-B4#>*=+=oLp9O4v>*F+m*i=iS@C?)Eb) z!9o5V#9cLLiZS}w4P?~8VtI2@Dey7NhlYKjf?gz-xOWpEy{CfS8%Hnsvf9(9dnm(3 zmgLpM<>?M~Y@DNMik8cINx1Nz{~lc;R*U(M!pI;;YUPEsn zrGk=il&ZJ}Y;GZ3LARXlvU-vXyeR20$XItWh^#N5=Mp{j5a-c?e=f}aCF}_~u-*yQ z7XZx&+P{Q7N!JxE*uMa1me8#Q?yDGIPM!4yKr@Gj8-5|+93qa;{C4}3O#!oMM;pQi zo>#-`eBuLUm_{4o2bpWa6+X!Uvo41kl5=l*&l?&3F+SM=GZD5O51Es||0kbj0B`3u zR0MlZ$Nw*%?0`4cgN+^0+1(XC_ym{R2fWDH-G0YcIy}uMFW~*gCT|bibcX9l2ENbH zDiE*xTx<83wyHq(&6fE}zqle*a_N*}Bc0CVok)#8e?eJKPhXh6FtM(zJ1Ra%jytWC z6mN_50P}KnKWW9=C?SRdxQ7n4!8}!QWykR}nRNvB@?ITEDP$(6R$^q>aBpZ~Aa^IL zGP1|JecVhL#VcsBg4$xV-*RQZDqb0|1GhCYm0Qb=b;Wn$H=ZPWNzb5Th5k~Upo6BM z-o7M`PLM3@$qIU)f*!1(Qx)_ONhm(jhNED=5!i%$v(}!3Z5@AyH`J1>lihSs$Y(vP zI*6VL8=T4eEaoW{ovRK;R!U^pa;nBAjwED)aWY2kbOk+1Z1V*9`zf9T^Ukf9qUDbt zf6&?x?PA3<@y!|xJ9N9KQ-$!wOE!>9Q))Q<(qDgk7lV;Dw&D(`mfLD~JPgh60one9 ztY1Kbd<2{}By<+kY7Xj2e#Al@dhsfbWu6 zr=bjkeb`dQn=}r()b=q-y9>M^(pt8utq|&HT^WJIQn>Fawl)UH?{R1YFsNu~Bakx& zf1d*zpK5%npD-3uev}U>^hFT}DUa5X5_IH+pV2{MMqT)v4wJT7=>bEKV|7&o6N}(i z9J^+r@u`jzJuaE7;br~zEYz&>sS5C@eW0$YUO97zEQx{R3i?FB?+V(=(HxqezrL`L zOP4chBv;^@xWk|NAk-AqrMVZ@R*Pz(xRy{0n_67GTQ086sl{8RTz)N4P_o6PdlB+` z#nRgR{O!$ot)%K7O6q2QZ9J8po*2J0em*%qksO~=9IqAC{-s=w(OQTMC-VWrAvi%{d};Gru6lha7&U7h?lTFbrh+6Q=1mGPxvq)$f4vjROGf`iMhU z^ly1xDQF5AG8x_!YG+MnL5Y}w5OdUt7@;>v+iX#Cq}UFaDeIGO^!d@A^d6La8VCz# zGMU?(WR9phCX-ZxR+8nhZl|hkqT{plW+|>X^kKL3!n3S+p32nzdp}^x@iDhrOqT(f zgv3QYMFHmE9`R5Va8?d~f=^3;nW;y8v?MTBh5uJR%>d?g{4^sl(}VwI1xqJ-MCwcE;Tdf0|E|fcKcAE=_W!N%?DRXfYB0ovp26qTx6hQy9&bIwD`=X`v!9 zV`p_l6BjN{E2&9Uom8jB*Hda!9TAnw+iX41^enP=X!JVi^<2NVtQN}|z(EQ66F3d0 z|M2Z3YBEb@&Q?dFg+i_nVGnHpA!lVbZgy5F)>PJ0L7G?1QFZi&Qpl3w96hdvVG|2! z*2ah6>FqKUhIAb;8?k%9_frjMV`ONS@w)Fv1%Wo~wb=jH|$8v92DC*;PiC%jSFlA>k#Vq`{e z5MqGO`;Wt6;GnFL;i*U|=vd%#2d3|@?$xG48X%4xKM7~;qq2IpR8Ugn{;#g{TbzHp zhn=KJ6hToE0>$5~*L_}q1Hd7=-AlClJ4=R!^9BD_tY>(4zgVvalK33^{dqWZ4^ngI zk=BV{H=960JGaa0cL~nU$4z#ba#1ak8eTc0Wf>{-ZIYe7o;?ihE2xu8{flsbIAVnM zn+hFqRg^hN9_wguqiK9TKigVF(32zYu|g!tnLzvUK^Tycpwx z0oN0{UO9GzAtPbz4}2o%DO1Sk^0FLXloQeA1t~t0SX>5{nNoLpWq=7SnoybNR+r|b z$V?(C&qXf-%Y2L_^Iowsuf~b2Qam~*udYOaWv1PHo_5|RR_3Lv62W&uzAP=TB!Fc; z!IHT@c$p8xqw&P@&2G?Dzl$a2k>JI&H~SbT_E;B-!)=JhpQ9ze;yQQjEvlyA*LO;d zGyWT~vfH}`P1zkKb{tRmT!(aZyDtJ->*w=jV5|SO`y!zAfKS=_Vl1qPtPsRsf0ojj zn|C|>7Wu@HB?qjIdz*)Xx==5Ne}Yd_fR$q&E>}=38U8&TM4l;U{5d{F0Txx+dzbBd zu2FEo6?j=sZ^o6`;(q^IK6L<=9eJvw8-+;t%sDP^1Xz`0@29Opr=ct1bvii8ry{_j z6)%S!R2d6iC*s$qSz(P&8Gtn%_6A}LFJM(3_?!9k16cB4Z|t}9Bd7=h{}i7#04o9> z@`!bUt`We0z^4Yl2lJ;r)L@Lp>%tQ{{vUk$0(?(?!b4wrECc_H=y)!`Pd&?Zo&!F& zdc{6;j03#p91pN~flqUQuaO>_GaR@K{62|Ge7XXBtn&zoOkIIK-{DX2X$tTy%OhXf z3$I(xx;=OgzIXX+p;unO{I$?4Z({yh=#^J8k5qMUyqnqSqKu=GD<#MEY@*jTP`W6u z_utkAmbOI~Wew%=dKSXwc#l32L)STiu%= zgXBD=YOTujex6xY?Wga&4Dok=qfK>CDn=;NE<*#Y0YC`q$<78LklHV0OJv*@Ljijp z^Pk%HvfgXmnF2hR7PbzO8@WUZv|w~FbUBk#e6;Yij~2*?x>yiea5ov_FO5QKK_q3+ zu>MwT40ZGJwA*x)cs^NqyKDz*jCEvr(FDYIFiSvdqdYkt#2+T%!r;3Is>IKm9Mb(N zaW3ATWgCmPQS_^WqqR9hWh(kkrG^k@^wV%gAJ&Z?FJ~C%Nf1_dWFWnrKyTXlF=#u# zrWSI+?{43Ij^4B^tz!am+avl8*5jezO>0%+JoA*TxGUVkjV^v#h6QBkp_P>xbIdMB zMAp*z9C~VZP_Jigo`N&;h;HMhLdOj7hB5UW>}F}RwPx*{{#}oI<(CH_Z&VxsI;Hpo zasZ>Z>3vMzP)l-&kpSB!Tx;W6)>I!`N9;*u{0Uw_)zy4AW>a zERa3T&0FN(yuK&6Zw%hrUJg7bxZ{2IJK@Z4Zf9zK?(G}`AZQNGvF-qX`GB*{@y!50 z3sHOM0VpZ2n}qE=8~~0Q2RiitS~10b!s5e#qdwC6f*xYP8v_$?7&u_{O@$QP5KpBX z5&je$7)Gwo%&$hf(WrikA!O`)@QvyZ+A9$0{k1rzCpfq+H2h^ZlwP9|>Ej{#t|YEW z-BE372rb|}6@P$A(LT*Q;G3d-&bEI3700^z%7{O~r!v47IS=eWztQ1e;nNb}dlpMe zLSMM>pYiDh@HObP+uee{58V#Y5=pNOrQwQm*PL;Qx0I}&|f(sbBTE9Ij(~oFstU^L9n|Rh&&s97oUCrGfs|1 zA45N4a!`1Q=%R6mJ95%^l}}HA$r!I#rx(&Qj(#W|AHazj(lKC5%)D7^FDuhlKh&_a zJX_W>X_apR3V-s6@LzV;52akVbRm^aUpjw2c`1EfIp5R|)xVU>G3s}*qr84-LEW4! zr_-c*WOr8BSNkuQvng)~vYf5%Bl!gHFJbkk z?#u$S);d3`1G{{uip1&2${mf2v56=}MzgChnEs6mri1ibgiyVo_o7Is9-wb~$qph* zMqN(}H64!V&K}?H&hU=ovGcX2-Q3>&qJolflxms*y@fQd8PL_kgl<|ZX}K(!yd{%K z>)t2ZHhzmA3lMS9{aB&D28aMz$&lb&E*2I3Ijf%eZSRt<-Ou;HvE$zlXYXOsh>=(6 zWHsQu9va@GnDY%d!w<;nrpDKl!Eo@7gsJy#4;{RB0cR4?Tma@us#<$_& zLz{csJPl{_x0#{6oGKUOB+b3q$7$~l2y{2!#c{~5!`XjSx4#kDDZuBv${&oL<#S1-^c2Uz>+kj-cqd z57*)iwu}s%l}8LK6Ph@_7|qwTdH@%0=Qx^S1P)m^Lmw~6v&^Ux=;SRWwDUH0z71z*GgvF8wcFu_26x5rtQ1_<;K@I6GVK9Yqv6Zg@j)fg4&04c(1^`=j87URT1`j4m9}Rd_>( z&l%m=(ccVj=Fu#L;Tp=frMmc&~UjymQnD{ydzy&4ei3;z2rf zuYQiusc-YH^$Xx;r&~QVduzL0SVizJ!kOKCwN46n{P2y=!=iuhqW@nG%=91c>)X>u z|Ei#MWBwP5f90T2xj<$srDYL7aF#E$;q*h0c!T6u0t3mm*f7f-3TmLF4J|MWvibMHjZN%a$`OkPd2{o6wFwVv*J1q!aK<(d>-Bu- z!@J?bKL=-N^RBf{wsaVnb;H)5hqHBkS5FkR(0_yX{eJ=6(nW1zUHC(Lcv8Dg>OTgz z^m=}x9PVlO0Q^tDEnN=xv|n+YuzU5N!dZHhQkau~OrKxDbx`Yx&(;cGAs$2-JfwZ- z6~cgM&YKHh^iOb=kY9u|wpshIp$b2!bx?%W?QHJEKZmpWVdKG*SY1{M1w{bCwe#)6 zX?y)s{UJOI;9LRRm*9|aq=5u7si+*jd$&7fS}<|$e*%O89aWe|8YzM3U<7PXFQSg= zh0ejW;rv2$l|(L5?62U!Va5pr9$XP&8>n!e72)aNIvu_WXZ6F>B^32xyD}+;=`M%9 z!y`CG0EZ62bO`?d2Mu%bkpT`^pU_792ywl<59gjP^zDI1ikbm0s|-(%=F?+gFQDa* z8kdW5wxB90q$D$Z2Z+AkcTPI#e%$Z7`zH7|`BF>-H|B z)k0|UE}8r^pvlerp|Q^kn|F3>{MVDMGYgLaLcwaR-OS%jAp!hH`r+SF*Npxr!;UKE z1H-}@KvTu1fQB(Peo>dM(No78o>HaSj5ZR~b2t*co(<Z*0hW{k0-YgU%0=*C?o%uoMMOG=jNqR22U#+T zh;&RDp|ScyEEz>aI);qkp7n=WGKz?FOc|l=_#-SCMMOG=jNrGcA7#lXBGNHrT%H5I zUHuqKMiG&YF5_x^5m?3_XUQlc(lKNNKOcXBC8K~y$A|&oZyx`OCF4l&(VQhCv|s&6 zmW&64$q0Tv{uE2bQE@Ut+ws#Z84n7R5&V4oX_kzKf|qev_p6EJRcJ&03`@wv!3%j{ z>8d2fBi(op_)C_Urv!+(aw9Uc677bVe+Mb%Ok#0CipZ}MXD|hnZpuNDNqF&cvauIl>fEKyKiG3EDWkoClb43dj!( zn{qBL1A}&yDW!l6fd$%E!Nokt6jMNwz!Gy|=2c*89%70qAWu*iQ;GwNd6+4tfK-9y zf>z*Jx6YK=dv`k060OGuMCA@1O>yZwq&_VeRH zWq;H|_7$C?Ai~Q~z%TmWI7NR$tms~5mp9}L8B-#sIY*Un$?ge2$2XA{-p+Cbah~k! z7TTyF#GqL7{W|$v5zZHE|4pQYvt3pU<@C@SvpJolFPDqiii5v}?u1Jf^g;!_ND{Q~ zCiVC4si619w;2ZenqxolaWOSj@UtdDKH=d<2v)R`mdlckR$0xaxp32xdVY>iJ!{=n zk4y$+BHxIhQ1yQl9iu%BE7dC70B~rj}JoDxY`p-ac3O6q1Hh$b^SN%tJ^{ zl?!r`IF?(KcvgshFrR+b;q>!1mVOMMt8n?+mORWq2I}r?Io!YK+D=rGfzBS4&C%j!#J$I3;;qBn`r%OitnR&KzL+J3c*S z;q>Hn>ooLKEaeJ(Q6Pt+9-rho^z(3v@(K|RMJZ`8JYD5eQ(-5lsaQ@1f6jUP@J&87 zm3D%fHp_uduJ)OKhQF0hO}F9H#P;IFw00W`PCv(|r@K2rPh~(o{V|`OKDZO~R4k|h znN5scXhlzZrnnBfuh|KDDg)~289qIIEu5Zwf&vi2kW1T_^ASm^W%d}?|NPEG94DN{sXyY4^m>1k^x=t%+8 zQ~w37kl>>`K~L*|7vOVzdaCXSJptZ;<9vGh<{hCYz$y^%^rIC|bHW%m&MH{(k{RK+D-8Iip z#Df>PB7<*-)7#@7w>w!&ZRX{CK}~a4Q0VGt9t?rc@~PuzyR43NLF$O{spIG2)WN=o zP>6_5;d<|>5}($7VJB#fBB?uC`vjlXei2S<>^xIaz>U{B*?yT%FTV_@mopw7+IYK6 z<+5p6gmRpzO7Cs>ANdsbD{zWqr{oH1pe1n52ZGV(xz7Awg;R{znQtJ9C`P`W)A*jm zz0dsT_|)-haOz+maw$?(8>GA5K5*1^SZB=FKQ+(Iz-xRO{dG8vKErldM5APiZCWdU zPn>hA*7E<~z^BaLfKw*h|0lH)8T~21mFcRgUu`T^{Rp3`eiKer?44Xx?}F*+clq@6 zTX1?}*Nu@uti#KtMe-%@t967EVv>h$3GqlyX`YZ1cUB zPglRc6Ldw?RLT*BLG8a3pRWD@PFHM4wVnsufLnZu`W&31*g?WN0TiH5|8YK5eI8C# zewdmlYEYZ+_xTj{g`J?NqBgNEJdb6Coqx@zs6XBbidxT4l)(^n`Vv=|@FzP#QDsO( z&G0GePvI2h`I<#q@Q5$hJ6pM&lzyvoy~!l`l<`G4Ww7&j8>(aLxDvy}Eu zKBavXPHA3Vk3y`dvk=K7TME_`d5uq5{{W{fuOP$lY=*jELFRovyve1-g}y+Ed@4G_ z5sR(HM~!L*{FTGntDoXi++IM%J;i(_DrXC-l0r%{!?#^^EV&}xf5WGeen6FY)g1q-JERpNET8D87KNn!KOPH^1Q ze42a=P?PMODXG%Bn?k~aQD>CpJOK4iuBZPLpH|NRYL$H)-d4!HQ@B#C18|E^RZjq_ zihZ@zvKcL_%1TjSTeGbgh2%GEpIn#ppW;*HQ-G@ULY=JS^Moo;PLWG`XD-pEobg(9 zpLTJo_Et^bp`=K{_)QabXyn|7Yj4)hqJ!uN`Bj|$@;LsBfxbTTzmLVybLY@`Lb^Cn zL6a3UwS_Lk&Xkkr1mR*lSwRm}(1R6ps)8PRy@no%qtg}iDEZYBIa{N4|};@NAb6GP^3xQ}+B7>9r^q zLRzqkx9G7~8TY){86FN+EvxRU4-KwBW1#P}rqgpQ~s}Fkw+7cZf4L&#W6D+9( zObcL24L-T>ceBJ6 zFhIaZY-nqLk|nl)F#=4n;fLdX4@+zT!vuW9hPL+ivcwiJmx?Vm_}>0Lme>O3RQZSv zZSC)8i7jAkl~<*yK7{u2%slionAi`n1Q!sddD&YRd=Wf4{S-@Vpg7GC8$3??L6+D+ zahfSM^zQy4me@dXnjtp0FaKed*g$cbDK@mVe}pAAP@HCn4Sx0fQI^<1ahf6a@*Hq> z<;PfJ1I1~&*knKEV&N{ zFSl1C(9%^&ibuNfAoQ0k$xp#ZzH%c%#?E#_^1th{akt{y)sOu=reP`0s6ua zQ*r^h79Yu1R%d~2KFpL{K)S_8@|ifa%}1D$3&^;5Id>E7ad^=WFhv)Tb@4jS>oe7X z(LTx)TtME%2koyeE(1$`kSV!<)QgYg3p1|*OMZwcxq$48pX5>;Sn|V6$ps`}d_3GL zywQ&^MHi5S@f981>PMNP3rNJA^Qh&jJ9k>k7GF#lpMkM|jHv|yvFx^5Ai39NqKznY zjB}i+1p#sGwpv(NBxqQSOA%l!oM37}K#c1(gVeDjW+K;CrDfnu#==Ra4g^HI+v;FB zIv*w1dte+qz|?_&uy