buildz 0.6.47__tar.gz → 0.6.48__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {buildz-0.6.47/buildz.egg-info → buildz-0.6.48}/PKG-INFO +1 -1
- {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/mhttp/caps.py +77 -8
- {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/mhttp/mhttp.py +7 -5
- {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/mhttp/proxy.py +1 -1
- {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/sslz/gen.py +1 -1
- {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/test/test.py +24 -23
- {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/test/test_cli.py +9 -4
- {buildz-0.6.47 → buildz-0.6.48/buildz.egg-info}/PKG-INFO +1 -1
- {buildz-0.6.47 → buildz-0.6.48}/setup.py +1 -1
- {buildz-0.6.47 → buildz-0.6.48}/LICENSE +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/MANIFEST.in +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/README.md +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/__main__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/argx.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/argz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/build.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/callz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/evalx.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/test.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/test_obj.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/tests/conf.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/testx.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/cache.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/config.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/dbs.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/deal.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/deal_list.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/deal_type.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/defs.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/factory.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/init.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/log.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/request.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/run.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/save.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/res/cache/cache.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/res/config/base.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/res/config/config.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/res/data/fp.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/res/data/item1.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/res/data/item2.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/res/data/test.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/test.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/xtest.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/verify.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/base.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/cachez/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/cachez/cache.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/cmd.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/confz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/__main__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/basez.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/clickhousez.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/lib/readme +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/mysqlz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/oraclez.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/orm.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/postgresqlz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/sqlite3z.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/structz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/install.txt +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/run.conf +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/runz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/db/tls.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/ioc/deal.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/ioc/help.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/myers/deal.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/myers/help.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/conf/ioc.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/conf/main.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/conf/myers.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/conf/search.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/conf/xf.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/help/default.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/help/ioc.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/help/myers.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/help/search.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/help/xf.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/test.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/search/deal.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/search/help.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/test.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/xf/deal.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/xf/help.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/dz/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/dz/mapz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/evalz/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/evalz/evalz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/evalz/res/default.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/evalz/test.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/fz/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/fz/dirz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/fz/fhs.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/fz/fio.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/fz/lsf.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/html/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/html/test/demo.html +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/html/test/test.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/html/xml.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/base.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/init.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc/base.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc/conf.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc/confs.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc/decorator.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc/loads.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc/single.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/base.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/branch.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/call.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/calls.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/branch_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/refs_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/deal.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/demo.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/env.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/init.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/ioc.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/iocf.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/join.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/list.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/map.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/mcall.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/obj.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/ovar.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/ref.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/refs.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/val.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/var.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/xfile.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/wrap.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/base.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/base.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/bind.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/confs.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/datas.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/dataset.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/deals.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/dm.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/encapes.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/env.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/envm.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/ids.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/tdata.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/tdict.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/unit.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc_deal/obj.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/logz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/mhttp/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/mhttp/record.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/sslz/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/sslz/gen.pyi +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/test/__main__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/pathz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/pyz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/tools.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/myers_diff.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/test_xfind.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/time/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/time/timez.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/tio/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/tio/base.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/tio/getch.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/tio/lx.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/tio/test.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/tio/win.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/xfind.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/__main__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/base.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/code.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/code_modify.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/copy_old.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/file.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/base.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/buffer.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/listz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/lr.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/lrval.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/mapz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/nextz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/reval.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/setz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/spc.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/spt.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/strz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/exp.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/item.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/mg.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/pos.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/base.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/buffer.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/listmapz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/listz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/lr.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/lrval.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/mapz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/nextz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/reval.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/setz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/spc.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/spt.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/strz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/strz_new.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/strz_old.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/exp.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/item.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/mg.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/pos.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/test.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/test1.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/base.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/buffer.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/listmapz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/listz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/lr.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/lrval.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/mapz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/nextz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/reval.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/setz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/spc.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/spt.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/strz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/strz_new.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/strz_old.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/exp.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/item.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/mg.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/pos.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/test.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/test1.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/mapz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/read.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/readz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/readz_nexp.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/stack.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/write.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/base.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/conf.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/deal/jsonval.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/deal/listmapz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/deal/listz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/deal/mapz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/deal/reval.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/deal/strz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/itemz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/mg.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/base.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/conf.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/deal/jsonval.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/deal/listmapz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/deal/listz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/deal/mapz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/deal/reval.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/deal/strz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/itemz.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/mg.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/test.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/testx.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writez.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/xargs.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xz/__init__.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xz/conf.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xz/data.js +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xz/test.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz/xz/trs.py +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz.egg-info/SOURCES.txt +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz.egg-info/dependency_links.txt +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/buildz.egg-info/top_level.txt +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/notes/notes.txt +0 -0
- {buildz-0.6.47 → buildz-0.6.48}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: buildz
|
3
|
-
Version: 0.6.
|
3
|
+
Version: 0.6.48
|
4
4
|
Summary: 配置读写(基于json格式进行简化)、ioc、以及其他工具代码。a json-base file format's read and write code by python, and codes to read and product object from configure file in such format(ioc), and other tool codes
|
5
5
|
Home-page: https://github.com/buildCodeZ/buildz
|
6
6
|
Author: Zzz
|
@@ -2,21 +2,86 @@
|
|
2
2
|
from . import proxy,mhttp
|
3
3
|
import socket, threading
|
4
4
|
log = mhttp.log
|
5
|
+
from buildz import xf
|
5
6
|
import ssl
|
7
|
+
from os.path import join, isfile
|
6
8
|
import traceback
|
9
|
+
from buildz import fz
|
10
|
+
|
11
|
+
cert_conf = xf.loads(r"""
|
12
|
+
// 国家
|
13
|
+
country: CN
|
14
|
+
// 省份
|
15
|
+
provice: fujian
|
16
|
+
// 城镇
|
17
|
+
local: quanzhou
|
18
|
+
// 机构
|
19
|
+
org: testz
|
20
|
+
// 域名
|
21
|
+
comman: testz
|
22
|
+
// 邮箱
|
23
|
+
email: netz@testz
|
24
|
+
// 是否是ca
|
25
|
+
ca: true
|
26
|
+
//dns: [localhost]
|
27
|
+
// 签名有效提前时间(签名多少天前就有效)
|
28
|
+
valid_before: 1
|
29
|
+
// 签名有效时间(签名后有效多少天)
|
30
|
+
valid: 3650
|
31
|
+
dns: []
|
32
|
+
""")
|
33
|
+
sign_conf = xf.loads(r"""
|
34
|
+
// 签名有效提前时间(签名多少天前就有效)
|
35
|
+
valid_before: 1
|
36
|
+
// 签名有效时间(签名后有效多少天)
|
37
|
+
valid: 3650
|
38
|
+
""")
|
7
39
|
class CapsDealer(proxy.ProxyDealer):
|
8
40
|
"""
|
9
41
|
http和https抓包,要自己实现MsgRecord类处理抓包数据,否则默认只是打印抓包的url和头部数据等信息
|
10
42
|
buildz.netz.mhttp.record.MsgRecord的实现可参考buildz.netz.mhttp.record.MsgLog
|
11
43
|
"""
|
12
|
-
def init(self, skt,
|
44
|
+
def init(self, skt, ca, srv_context, channel_read_size=1024000, record=None,dp_cache=None):
|
45
|
+
if dp_cache is None:
|
46
|
+
dp_cache = "./res/certs"
|
13
47
|
super().init(skt, channel_read_size, record=record)
|
14
|
-
self.
|
48
|
+
self.ca = ca
|
15
49
|
self.srv_context = srv_context
|
50
|
+
self.contexts = {}
|
51
|
+
self.dp_cache = dp_cache
|
52
|
+
def sign(self, hostname):
|
53
|
+
dp = join(self.dp_cache, "_"+hostname)
|
54
|
+
fz.makedir(dp)
|
55
|
+
fp_csr = join(dp, "csr")
|
56
|
+
fp_cert = join(dp, "cert")
|
57
|
+
fp_prv = join(dp, "prv")
|
58
|
+
if isfile(fp_cert):
|
59
|
+
return fp_cert, fp_prv, None
|
60
|
+
try:
|
61
|
+
from buildz.netz import sslz
|
62
|
+
except:
|
63
|
+
# 不能创建域名证书,则直接用根证书
|
64
|
+
return self.ca
|
65
|
+
conf = dict(cert_conf)
|
66
|
+
conf['comman']=hostname
|
67
|
+
conf['dns'] = [hostname]
|
68
|
+
sslz.gen_prv(fp_prv)
|
69
|
+
sslz.gen_csr(fp_csr, fp_prv, conf, None)
|
70
|
+
sslz.sign_csr(fp_cert, fp_csr, self.ca[0], self.ca[1],sign_conf, self.ca[2])
|
71
|
+
return fp_cert, fp_prv, None
|
72
|
+
def context(self, hostname):
|
73
|
+
if hostname not in self.contexts:
|
74
|
+
fp_cert, fp_prv, pwd = self.sign(hostname)
|
75
|
+
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
|
76
|
+
context.load_cert_chain(fp_cert, fp_prv, password=pwd)
|
77
|
+
self.contexts[hostname]=context
|
78
|
+
return self.contexts[hostname]
|
16
79
|
def deal_channel(self, skt_cli, skt_srv):
|
17
80
|
#self.wskt.closefile()
|
18
81
|
#wskt.closefile()
|
19
|
-
|
82
|
+
hostname = skt_srv.addr[0]
|
83
|
+
context = self.context(hostname)
|
84
|
+
skt_cli = mhttp.WSocket.Bind(context.wrap_socket(skt_cli.skt, server_side=True))
|
20
85
|
#context = ssl._create_unverified_context(ssl.PROTOCOL_TLS_CLIENT)
|
21
86
|
skt_srv = mhttp.WSocket.Bind(self.srv_context.wrap_socket(skt_srv.skt, server_side=False))
|
22
87
|
self.record.set_ssl(True)
|
@@ -40,10 +105,11 @@ class CapsProxy(proxy.Proxy):
|
|
40
105
|
http和https抓包,要自己实现MsgRecord类处理抓包数据,否则默认只是打印抓包的url和头部数据等信息
|
41
106
|
buildz.netz.mhttp.record.MsgRecord的实现可参考buildz.netz.mhttp.record.MsgLog
|
42
107
|
"""
|
43
|
-
def init(self, addr, fp_sign, fp_prv, password = None,listen=5, record=None,cafile=None, capath=None, cadata=None,check_hostname=True):
|
108
|
+
def init(self, addr, fp_sign, fp_prv, password = None,listen=5, record=None,cafile=None, capath=None, cadata=None,check_hostname=True, dp_cache = None):
|
44
109
|
super().init(addr, listen, record)
|
45
|
-
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
|
46
|
-
context.load_cert_chain(fp_sign, fp_prv, password=password)
|
110
|
+
# context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
|
111
|
+
# context.load_cert_chain(fp_sign, fp_prv, password=password)
|
112
|
+
self.ca = fp_sign, fp_prv, password
|
47
113
|
if cafile is not None or capath is not None or cadata is not None:
|
48
114
|
# 导入根证书,需要单个根证书文件cafile或者根证书文件夹capath或者根证书数据cadata
|
49
115
|
# cadata是证书数据,不清楚能不能多个证书字节码拼在一起
|
@@ -53,8 +119,11 @@ class CapsProxy(proxy.Proxy):
|
|
53
119
|
else:
|
54
120
|
# 不会校验服务端https证书是否有效,可能有风险?
|
55
121
|
srv_context = ssl._create_unverified_context(ssl.PROTOCOL_TLS_CLIENT)
|
56
|
-
self.context = context
|
122
|
+
#self.context = context
|
57
123
|
self.srv_context = srv_context
|
124
|
+
if dp_cache is None:
|
125
|
+
dp_cache = "./res/certs"
|
126
|
+
self.dp_cache = dp_cache
|
58
127
|
def call(self):
|
59
128
|
self.running=True
|
60
129
|
skt = socket.socket()
|
@@ -63,7 +132,7 @@ class CapsProxy(proxy.Proxy):
|
|
63
132
|
self.skt = skt
|
64
133
|
while self.running:
|
65
134
|
skt,addr = self.skt.accept()
|
66
|
-
deal = CapsDealer(skt, self.
|
135
|
+
deal = CapsDealer(skt, self.ca, self.srv_context, record=self.record.clone(), dp_cache = self.dp_cache)
|
67
136
|
th = threading.Thread(target=deal,daemon=True)
|
68
137
|
th.start()
|
69
138
|
self.ths.append(th)
|
@@ -120,9 +120,9 @@ class WSocket(Base):
|
|
120
120
|
skt.connect(addr)
|
121
121
|
return skt
|
122
122
|
@staticmethod
|
123
|
-
def Bind(skt, buffer_size=-1):
|
123
|
+
def Bind(skt, buffer_size=-1, addr=None):
|
124
124
|
wskt = WSocket(buffer_size)
|
125
|
-
wskt.bind(skt)
|
125
|
+
wskt.bind(skt, addr)
|
126
126
|
return wskt
|
127
127
|
def init(self, buffer_size=-1):
|
128
128
|
self.buffer_size = buffer_size
|
@@ -130,8 +130,10 @@ class WSocket(Base):
|
|
130
130
|
if w_buffer_size<0:
|
131
131
|
w_buffer_size=0
|
132
132
|
self.w_buffer_size = w_buffer_size
|
133
|
-
def bind(self, skt):
|
134
|
-
|
133
|
+
def bind(self, skt, addr=None):
|
134
|
+
if addr is None:
|
135
|
+
addr = skt.getpeername()
|
136
|
+
self.addr = addr
|
135
137
|
rfile = skt.makefile('rb', self.buffer_size)
|
136
138
|
wfile = skt.makefile('wb', self.w_buffer_size)
|
137
139
|
self.skt = skt
|
@@ -148,7 +150,7 @@ class WSocket(Base):
|
|
148
150
|
skt = socket.socket()
|
149
151
|
log.debug(f"connect: {addr}")
|
150
152
|
skt.connect(tuple(addr))
|
151
|
-
self.bind(skt)
|
153
|
+
self.bind(skt, addr)
|
152
154
|
def closefile(self):
|
153
155
|
try:
|
154
156
|
self.rfile.close()
|
@@ -287,7 +287,7 @@ def loadf_certs(fp):
|
|
287
287
|
def load_certs(bs):
|
288
288
|
spt = b"-----END CERTIFICATE-----"
|
289
289
|
pems = bs.split(spt)
|
290
|
-
pems = [k
|
290
|
+
pems = [k+spt for k in pems if k.strip()!=b""]
|
291
291
|
certs = [x509.load_pem_x509_certificate(pem) for pem in pems]
|
292
292
|
return certs
|
293
293
|
def verify_certs_fp(fp, cas = None, verify_time=True):
|
@@ -14,6 +14,30 @@ path.set("res", "./res")
|
|
14
14
|
fp_prv = path.res("ca.prv")
|
15
15
|
fp_cert = path.res("ca.crt")
|
16
16
|
ca_pwd = "test"
|
17
|
+
|
18
|
+
|
19
|
+
ca_conf = xf.loads(r"""
|
20
|
+
// 国家
|
21
|
+
country: CN
|
22
|
+
// 省份
|
23
|
+
provice: fujian
|
24
|
+
// 城镇
|
25
|
+
local: quanzhou
|
26
|
+
// 机构
|
27
|
+
org: buildz
|
28
|
+
// 域名
|
29
|
+
comman: buildz
|
30
|
+
// 邮箱
|
31
|
+
email: netz@buildz
|
32
|
+
// 是否是ca
|
33
|
+
ca: true
|
34
|
+
//dns: [localhost]
|
35
|
+
// 签名有效提前时间(签名多少天前就有效)
|
36
|
+
valid_before: 1
|
37
|
+
// 签名有效时间(签名后有效多少天)
|
38
|
+
valid: 3650
|
39
|
+
ca:true
|
40
|
+
""")
|
17
41
|
log = logz.simple(path.res("caps/%Y%m%d.log"))
|
18
42
|
fz.makedir(path.res())
|
19
43
|
def gen_cert():
|
@@ -44,26 +68,3 @@ def caps():
|
|
44
68
|
#pyz.lc(locals(), caps)
|
45
69
|
|
46
70
|
|
47
|
-
|
48
|
-
|
49
|
-
ca_conf = xf.loads(r"""
|
50
|
-
// 国家
|
51
|
-
country: CN
|
52
|
-
// 省份
|
53
|
-
provice: fujian
|
54
|
-
// 城镇
|
55
|
-
local: quanzhou
|
56
|
-
// 机构
|
57
|
-
org: buildz
|
58
|
-
// 域名
|
59
|
-
comman: buildz
|
60
|
-
// 邮箱
|
61
|
-
email: netz@buildz
|
62
|
-
// 是否是ca
|
63
|
-
ca: true
|
64
|
-
//dns: [localhost]
|
65
|
-
// 签名有效提前时间(签名多少天前就有效)
|
66
|
-
valid_before: 1
|
67
|
-
// 签名有效时间(签名后有效多少天)
|
68
|
-
valid: 3650
|
69
|
-
""")
|
@@ -5,6 +5,11 @@ except:
|
|
5
5
|
print("need package requests: pip install requests")
|
6
6
|
raise
|
7
7
|
session = rq.session()
|
8
|
+
from buildz import pathz
|
9
|
+
|
10
|
+
path = pathz.Path()
|
11
|
+
path.set("res", "./res")
|
12
|
+
fp_cert = path.res("ca.crt")
|
8
13
|
import sys
|
9
14
|
ip = "127.0.0.1"
|
10
15
|
port=9999
|
@@ -19,12 +24,12 @@ proxies = {
|
|
19
24
|
}
|
20
25
|
|
21
26
|
url = "https://www.baidu.com"
|
22
|
-
verify=
|
23
|
-
rp =
|
27
|
+
verify=fp_cert
|
28
|
+
rp = session.get(url, proxies = proxies,verify=verify)
|
24
29
|
print(rp,len(rp.content))
|
25
30
|
|
26
31
|
url = "http://www.baidu.com"
|
27
|
-
rp =
|
32
|
+
rp = session.get(url, proxies = proxies,verify=verify)
|
28
33
|
print(rp,len(rp.content))
|
29
34
|
|
30
35
|
url = "https://www.bilibili.com/"
|
@@ -34,5 +39,5 @@ headers = {
|
|
34
39
|
"Accept-Encoding":"gzip, deflate, br, zstd",
|
35
40
|
"Accept-Language":"zh-CN,zh;q=0.9"
|
36
41
|
}
|
37
|
-
rp =
|
42
|
+
rp = session.get(url, proxies = proxies,verify=verify,headers=headers)
|
38
43
|
print(rp,len(rp.content))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: buildz
|
3
|
-
Version: 0.6.
|
3
|
+
Version: 0.6.48
|
4
4
|
Summary: 配置读写(基于json格式进行简化)、ioc、以及其他工具代码。a json-base file format's read and write code by python, and codes to read and product object from configure file in such format(ioc), and other tool codes
|
5
5
|
Home-page: https://github.com/buildCodeZ/buildz
|
6
6
|
Author: Zzz
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|