mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-19 21:37:57 +08:00
fixed broken v1 networking
This commit is contained in:
parent
183c5abf60
commit
cd098866ea
288
.efrocachemap
generated
288
.efrocachemap
generated
@ -2594,14 +2594,14 @@
|
||||
"build/assets/pylib-android/_pyio.py": "a6e88d66fbca88b13213cdd2177390b8",
|
||||
"build/assets/pylib-android/_sitebuiltins.py": "8b5e3f6e73917962fa014ad2c4a55e61",
|
||||
"build/assets/pylib-android/_strptime.py": "ff699c3f7647db7621bb88c43cc282d3",
|
||||
"build/assets/pylib-android/_sysconfigdata__linux_aarch64-linux-android.py": "3d0400e723f4dad156512d4229270993",
|
||||
"build/assets/pylib-android/_sysconfigdata__linux_arm-linux-androideabi.py": "506b3106270f7f7ae33e195d1f5caa55",
|
||||
"build/assets/pylib-android/_sysconfigdata__linux_i686-linux-android.py": "f38a2b60f9cbf0524885e5c1c99164c1",
|
||||
"build/assets/pylib-android/_sysconfigdata__linux_x86_64-linux-android.py": "d67f056bcaf3d491d68254c206067d19",
|
||||
"build/assets/pylib-android/_sysconfigdata_d_linux_aarch64-linux-android.py": "e4322948686ce1d4b37a1a3f8000e2dc",
|
||||
"build/assets/pylib-android/_sysconfigdata_d_linux_arm-linux-androideabi.py": "a4d14baa8cfc0019363742349449942b",
|
||||
"build/assets/pylib-android/_sysconfigdata_d_linux_i686-linux-android.py": "2ad6c96209fd69a4eef4a7d730cd16e8",
|
||||
"build/assets/pylib-android/_sysconfigdata_d_linux_x86_64-linux-android.py": "bf6ce8f2788661352014e973351f35cf",
|
||||
"build/assets/pylib-android/_sysconfigdata__linux_aarch64-linux-android.py": "cb9a77b04173c8776365999b57186e36",
|
||||
"build/assets/pylib-android/_sysconfigdata__linux_arm-linux-androideabi.py": "6d50596ec7f4858a0c6a5edefde21f7a",
|
||||
"build/assets/pylib-android/_sysconfigdata__linux_i686-linux-android.py": "bf9358a2243aa7884b8e80d85c969fa5",
|
||||
"build/assets/pylib-android/_sysconfigdata__linux_x86_64-linux-android.py": "45eee0efbc2441535b94a8ad5acf4d2e",
|
||||
"build/assets/pylib-android/_sysconfigdata_d_linux_aarch64-linux-android.py": "f8ff271cf6df0b5b4d46d9c548abb84e",
|
||||
"build/assets/pylib-android/_sysconfigdata_d_linux_arm-linux-androideabi.py": "da171b290c06a34d6a5cfbb296c22c34",
|
||||
"build/assets/pylib-android/_sysconfigdata_d_linux_i686-linux-android.py": "dde2516b5ac29412dfbebaa7b3de0d0d",
|
||||
"build/assets/pylib-android/_sysconfigdata_d_linux_x86_64-linux-android.py": "7df452144c6630afb96951487c1257a0",
|
||||
"build/assets/pylib-android/_threading_local.py": "4a9688e3987d7d692db46feb9214945e",
|
||||
"build/assets/pylib-android/_weakrefset.py": "e4fa8532ace46dfbc35149c41ea497f7",
|
||||
"build/assets/pylib-android/abc.py": "a0daa1ed187eee8690c1e8438b97da90",
|
||||
@ -2612,13 +2612,13 @@
|
||||
"build/assets/pylib-android/asynchat.py": "2ef3a0ce322332fabbf8fad4e133c6a3",
|
||||
"build/assets/pylib-android/asyncio/__init__.py": "edf0e79e2b8b85c08f09fd14668e4822",
|
||||
"build/assets/pylib-android/asyncio/__main__.py": "8e391b47f448ad922dc2614dbd93011e",
|
||||
"build/assets/pylib-android/asyncio/base_events.py": "9f7758e7f013043a50c693e5e8d068b5",
|
||||
"build/assets/pylib-android/asyncio/base_events.py": "8494c7bc5f5fe98fd64d882ed4cc4722",
|
||||
"build/assets/pylib-android/asyncio/base_futures.py": "d2502e045d28ea562e1a82ddb162b4f0",
|
||||
"build/assets/pylib-android/asyncio/base_subprocess.py": "8a805e04a2911b2d8e297f0029def4b1",
|
||||
"build/assets/pylib-android/asyncio/base_tasks.py": "f4388c294f4cf805a6f1e4ed12a5a3aa",
|
||||
"build/assets/pylib-android/asyncio/constants.py": "13f733940667d1f81cf83adc6e5b2a5b",
|
||||
"build/assets/pylib-android/asyncio/coroutines.py": "fb3e431df7d09ed38d7fa76385e9bb52",
|
||||
"build/assets/pylib-android/asyncio/events.py": "07c04d04b5e255fc5b79698715f4dc4e",
|
||||
"build/assets/pylib-android/asyncio/events.py": "3063d6b0d1fcbb50f8142f8ce58531fb",
|
||||
"build/assets/pylib-android/asyncio/exceptions.py": "db8d3794a37d50a433d13c1eacf0d333",
|
||||
"build/assets/pylib-android/asyncio/format_helpers.py": "b0447581eff1bc759da16d512155c72a",
|
||||
"build/assets/pylib-android/asyncio/futures.py": "297232981f201edac774ec3a49a0845b",
|
||||
@ -2632,7 +2632,7 @@
|
||||
"build/assets/pylib-android/asyncio/selector_events.py": "a108fbd3a49f967da245f39cebf7694e",
|
||||
"build/assets/pylib-android/asyncio/sslproto.py": "2ec1b21e523055147d94c8c634154aab",
|
||||
"build/assets/pylib-android/asyncio/staggered.py": "f5056f0a56b73b477a9fa65e71145366",
|
||||
"build/assets/pylib-android/asyncio/streams.py": "e9c609b92b4e9bd3383cf4004c6186c6",
|
||||
"build/assets/pylib-android/asyncio/streams.py": "f00ddd2b2fd74554ae1d3088bd9d2bfd",
|
||||
"build/assets/pylib-android/asyncio/subprocess.py": "edb8d98278300b6c99f36cd08643c743",
|
||||
"build/assets/pylib-android/asyncio/taskgroups.py": "5162e5b1806d9b647383d34ba1b21b56",
|
||||
"build/assets/pylib-android/asyncio/tasks.py": "234550593cd4928e6ee2c9591b6928ca",
|
||||
@ -2657,16 +2657,16 @@
|
||||
"build/assets/pylib-android/code.py": "5d47099984013b933c96b02ef16981b8",
|
||||
"build/assets/pylib-android/codecs.py": "6fac5e2969e98ceaba92d3b8e42cb2ec",
|
||||
"build/assets/pylib-android/codeop.py": "d375467fb29fccd43ab94d15a2e63085",
|
||||
"build/assets/pylib-android/collections/__init__.py": "44999193e5c3d379e3feaa50ddf5147d",
|
||||
"build/assets/pylib-android/collections/__init__.py": "dcffbb6ee2cadd0c05ad22f2ef41f89b",
|
||||
"build/assets/pylib-android/collections/abc.py": "15f410d3821352033a90a04539c99060",
|
||||
"build/assets/pylib-android/colorsys.py": "1452923f15188287bc677e7128cb6b31",
|
||||
"build/assets/pylib-android/colorsys.py": "ca8f117785bf7606c3919ef0f4b828ae",
|
||||
"build/assets/pylib-android/compileall.py": "eb3f6d92f020ebec3f3f5bffc8a4dd4b",
|
||||
"build/assets/pylib-android/concurrent/__init__.py": "aa990702e8f3a7af205efb5ae23a7c85",
|
||||
"build/assets/pylib-android/concurrent/futures/__init__.py": "3e46fadb9de9c995c37dca4311641d6a",
|
||||
"build/assets/pylib-android/concurrent/futures/_base.py": "a1cd37aea6fe0efff1bc00a39543609e",
|
||||
"build/assets/pylib-android/concurrent/futures/process.py": "4725abe3e780075ac264da12a1db5714",
|
||||
"build/assets/pylib-android/concurrent/futures/process.py": "a44e8618e158f8f351dafcb566a02544",
|
||||
"build/assets/pylib-android/concurrent/futures/thread.py": "e63753b8201f1392dbebc84a15054a13",
|
||||
"build/assets/pylib-android/configparser.py": "a6b19c20d70861eea310e5504621e562",
|
||||
"build/assets/pylib-android/configparser.py": "914afd2b2cec90bbca0b94fd176b5176",
|
||||
"build/assets/pylib-android/contextlib.py": "6f52eac914e438ef54407760def8305f",
|
||||
"build/assets/pylib-android/contextvars.py": "ddf2ae9be02601bd8fc9c2cb8a51c04e",
|
||||
"build/assets/pylib-android/copy.py": "e7c43b1ec5f81ef36486ad8b49ed7f74",
|
||||
@ -2692,33 +2692,33 @@
|
||||
"build/assets/pylib-android/decimal.py": "f57d255d45b5d1d7d8e13c41a283c3e4",
|
||||
"build/assets/pylib-android/difflib.py": "6b3c8fd541b2b8d0320727025cd25275",
|
||||
"build/assets/pylib-android/dis.py": "cecdc0c02aa3d70a7f550e60ebc9b3ba",
|
||||
"build/assets/pylib-android/doctest.py": "eb60b2b39e0deb976ecbc69a8c2392ee",
|
||||
"build/assets/pylib-android/email/__init__.py": "7ebfab5c51b6bc698aca92ad4903346c",
|
||||
"build/assets/pylib-android/doctest.py": "8a18c35f3aa66130955a6a3bf1bfead4",
|
||||
"build/assets/pylib-android/email/__init__.py": "4ff603eeeb4ce0302c8bd1b220fc5e13",
|
||||
"build/assets/pylib-android/email/_encoded_words.py": "d7b77501689dd1ce32da789b46264a6a",
|
||||
"build/assets/pylib-android/email/_header_value_parser.py": "982718787815084548747d4b078902e6",
|
||||
"build/assets/pylib-android/email/_parseaddr.py": "a6d2999aeed17f060be8797e761a01aa",
|
||||
"build/assets/pylib-android/email/_policybase.py": "09b0c21693ac080c52c52f5daab616aa",
|
||||
"build/assets/pylib-android/email/base64mime.py": "a1ac31203212f2963b4c07629a3b919c",
|
||||
"build/assets/pylib-android/email/charset.py": "7bb5baa9bbd627097d1f32f1a3b503c8",
|
||||
"build/assets/pylib-android/email/base64mime.py": "d3e4fc07d04833487677dd2a888c3826",
|
||||
"build/assets/pylib-android/email/charset.py": "1d101758464f75bf2b93fb17fec9542f",
|
||||
"build/assets/pylib-android/email/contentmanager.py": "e88780ef1d37a11ff216060f740f2572",
|
||||
"build/assets/pylib-android/email/encoders.py": "f1c581f5c146c31168f6ff4a2a6591f7",
|
||||
"build/assets/pylib-android/email/encoders.py": "d401cf76e52f0205393dd8bb1ae28b46",
|
||||
"build/assets/pylib-android/email/errors.py": "afd6b5e8f8baa701baaae14e736ddca0",
|
||||
"build/assets/pylib-android/email/feedparser.py": "88d35aee820e997f40f6c28cf930979b",
|
||||
"build/assets/pylib-android/email/generator.py": "e0cc1d119427110da5de96a4e7b6bb5b",
|
||||
"build/assets/pylib-android/email/header.py": "f72b2b6140c11b89c0ae3f7b24b0a861",
|
||||
"build/assets/pylib-android/email/feedparser.py": "623788306ab3b5d75df1145484045edc",
|
||||
"build/assets/pylib-android/email/generator.py": "073bac3c4874c3ab74d4e6a9e9317fb2",
|
||||
"build/assets/pylib-android/email/header.py": "09923b7b77bf91bed41a71b6e3c6e4d9",
|
||||
"build/assets/pylib-android/email/headerregistry.py": "dfd48f9c41454d5bc2355cb1762fb869",
|
||||
"build/assets/pylib-android/email/iterators.py": "9b67a6ab50d2bdbdbc4588e10ea1c64a",
|
||||
"build/assets/pylib-android/email/iterators.py": "752ece28a18545e70fa67a7cf2fe3ef3",
|
||||
"build/assets/pylib-android/email/message.py": "5b198b0cf1095ba5a3faccdd28310f28",
|
||||
"build/assets/pylib-android/email/mime/__init__.py": "340c83beff7dcff8f5c7b87cd43cedaf",
|
||||
"build/assets/pylib-android/email/mime/application.py": "4ce678512f30cac9fd95993186d2eef7",
|
||||
"build/assets/pylib-android/email/mime/audio.py": "4073e45bda9524e3cbe29374951fdc16",
|
||||
"build/assets/pylib-android/email/mime/base.py": "e4ac5d17e69e73a2cb4cc873474991c2",
|
||||
"build/assets/pylib-android/email/mime/base.py": "3b9c795fe3b6e9d3f7b6dda3e1c8e1ea",
|
||||
"build/assets/pylib-android/email/mime/image.py": "6322b8269e8efe61d3ead57f2aa6cdef",
|
||||
"build/assets/pylib-android/email/mime/message.py": "72935a387c0c12840359c2b0b8f588ac",
|
||||
"build/assets/pylib-android/email/mime/multipart.py": "8157be08dbd84825bf2abaefa39dc3a0",
|
||||
"build/assets/pylib-android/email/mime/nonmultipart.py": "1187993d0366b808a3afea751cd37d81",
|
||||
"build/assets/pylib-android/email/mime/text.py": "eb387b8f3a686bc7587b860782761a52",
|
||||
"build/assets/pylib-android/email/parser.py": "19466563eaac6984c48f734a8f2cf3fc",
|
||||
"build/assets/pylib-android/email/mime/message.py": "0bf18b4f07a68b646e45b10d7e31c6c7",
|
||||
"build/assets/pylib-android/email/mime/multipart.py": "69577df977b7b36f5e175661dd7095bc",
|
||||
"build/assets/pylib-android/email/mime/nonmultipart.py": "a96d8d31156781a7511cec04e46a95f6",
|
||||
"build/assets/pylib-android/email/mime/text.py": "21928b3afec29cb55ae1ae7682b8fbe1",
|
||||
"build/assets/pylib-android/email/parser.py": "f0cdd5c8491cbff0948672784fca1e8f",
|
||||
"build/assets/pylib-android/email/policy.py": "69a5f116b77b6a70e7761309c5592557",
|
||||
"build/assets/pylib-android/email/quoprimime.py": "c5e54c3f0e70d55145517382d4455765",
|
||||
"build/assets/pylib-android/email/utils.py": "145a606aaa3cbad40c68054ebbf4efa6",
|
||||
@ -2844,7 +2844,7 @@
|
||||
"build/assets/pylib-android/encodings/utf_8_sig.py": "8f3542863ef311d8b970a37c0d66b0de",
|
||||
"build/assets/pylib-android/encodings/uu_codec.py": "4ef8a65413574c017a96b97fc1638ba6",
|
||||
"build/assets/pylib-android/encodings/zlib_codec.py": "1388fb103fdf395451bfc8a2d60933a9",
|
||||
"build/assets/pylib-android/enum.py": "62a341268ae3fef3c4affc625c2e68d2",
|
||||
"build/assets/pylib-android/enum.py": "73b214a43ceef88aff7098b83623ed09",
|
||||
"build/assets/pylib-android/filecmp.py": "7648fdc6d0fc8bae7429d5e4081cf353",
|
||||
"build/assets/pylib-android/fileinput.py": "c3def1041e6b12dd5f1906c9dbbd1101",
|
||||
"build/assets/pylib-android/fnmatch.py": "a1bc67633695d4defd4c0886428c5363",
|
||||
@ -2854,7 +2854,7 @@
|
||||
"build/assets/pylib-android/genericpath.py": "5e991b8dd73dd4a05571b73ac532988a",
|
||||
"build/assets/pylib-android/getopt.py": "d630bf22334ba037143a3dca69088ee1",
|
||||
"build/assets/pylib-android/getpass.py": "c19e383e949c147a30ecc554b8598e91",
|
||||
"build/assets/pylib-android/gettext.py": "6e24985f9e985660751c70436cfefa75",
|
||||
"build/assets/pylib-android/gettext.py": "245a4d4c7ba79febb5423a49ebdc019a",
|
||||
"build/assets/pylib-android/glob.py": "0607521b67b32c59f30a9e1b238d5c1a",
|
||||
"build/assets/pylib-android/graphlib.py": "156d50d67d92c1917cf910dfce9cecc9",
|
||||
"build/assets/pylib-android/gzip.py": "296ba9c497e9c0cc4a97b82dcb02d780",
|
||||
@ -2908,7 +2908,7 @@
|
||||
"build/assets/pylib-android/locale.py": "42f3f48fed6a16da350de46aa85b446a",
|
||||
"build/assets/pylib-android/logging/__init__.py": "6e5d6f80af880857f5eb29b038512c6d",
|
||||
"build/assets/pylib-android/logging/config.py": "f811372496ec5ae34e8047f0280686be",
|
||||
"build/assets/pylib-android/logging/handlers.py": "ab3881444783ab84f3859e022b356989",
|
||||
"build/assets/pylib-android/logging/handlers.py": "55d604de088570f8bd5edb62f64682fb",
|
||||
"build/assets/pylib-android/lzma.py": "d7388640aa6af4c64fdc821471930f57",
|
||||
"build/assets/pylib-android/mailbox.py": "d9db3c7510e38484ade3d88446b8f231",
|
||||
"build/assets/pylib-android/mailcap.py": "c61462a36d20d79a0f4e37717f957bf6",
|
||||
@ -2916,7 +2916,7 @@
|
||||
"build/assets/pylib-android/modulefinder.py": "3fc074c018de1dd15ab2e309be199dea",
|
||||
"build/assets/pylib-android/netrc.py": "9a869ca83b316ab5a19a0a2cf22efaf3",
|
||||
"build/assets/pylib-android/nntplib.py": "4926aa991bd4b96b9318d6242135abf9",
|
||||
"build/assets/pylib-android/ntpath.py": "57eacdf2824f306ae2b03d5818294c94",
|
||||
"build/assets/pylib-android/ntpath.py": "d53ff21dc0ef0cd939cc865ae1fb011e",
|
||||
"build/assets/pylib-android/nturl2path.py": "937624c4b6f213b652addea66296ccc4",
|
||||
"build/assets/pylib-android/numbers.py": "0cdcb42317422500d514ec67d496a06e",
|
||||
"build/assets/pylib-android/opcode.py": "18cba8b1d09ec6fcccfe20e5b13db980",
|
||||
@ -2939,7 +2939,7 @@
|
||||
"build/assets/pylib-android/pty.py": "c97b51147360cf7fd92c364ab8068a2b",
|
||||
"build/assets/pylib-android/py_compile.py": "772b429c589d2e005e8bd79b12f55a92",
|
||||
"build/assets/pylib-android/pyclbr.py": "bf1989a2c73108005e874a640760476a",
|
||||
"build/assets/pylib-android/pydoc.py": "0f8a4b2f4a9d23e429c01660a4290bd8",
|
||||
"build/assets/pylib-android/pydoc.py": "b17a6d227db749f91434253248fa6384",
|
||||
"build/assets/pylib-android/queue.py": "1e90a0b87965a2642946621db162f441",
|
||||
"build/assets/pylib-android/quopri.py": "5d58010dd1f96b37a167c6d305372881",
|
||||
"build/assets/pylib-android/random.py": "9ec8461bc4d5b072e3fc1f65aafccf2f",
|
||||
@ -2947,7 +2947,7 @@
|
||||
"build/assets/pylib-android/re/_casefix.py": "106514c6c6bb479fa2691423a61c8938",
|
||||
"build/assets/pylib-android/re/_compiler.py": "d38bbefe652b6bfff2bb30459436f112",
|
||||
"build/assets/pylib-android/re/_constants.py": "99b8d7dba7fb50be8fb435dcefcd2989",
|
||||
"build/assets/pylib-android/re/_parser.py": "df712815c6dba2e12c1875ca1bc02400",
|
||||
"build/assets/pylib-android/re/_parser.py": "1afe14ae4219eadb32ba0fd3ac1b921a",
|
||||
"build/assets/pylib-android/reprlib.py": "a129eeeaf66fbd9591d2da242ce23a1a",
|
||||
"build/assets/pylib-android/rlcompleter.py": "9e57bb7030b57c4ec82eba9e09852414",
|
||||
"build/assets/pylib-android/runpy.py": "3a2dd98314791c7e36b6bd3585f6ad82",
|
||||
@ -2956,7 +2956,7 @@
|
||||
"build/assets/pylib-android/selectors.py": "98e0d83849452cbc2cc1381555bd5024",
|
||||
"build/assets/pylib-android/shelve.py": "3e569c07c863ecbd7f35a6c382d1785a",
|
||||
"build/assets/pylib-android/shlex.py": "0873fac90a491702950816ead0e59dd0",
|
||||
"build/assets/pylib-android/shutil.py": "ed25b38eacc66c9059651e6666ec1869",
|
||||
"build/assets/pylib-android/shutil.py": "a5d0ee9f28244b42a06e682312d0e3fa",
|
||||
"build/assets/pylib-android/signal.py": "114ef47b1798fca6f56ac8a250974b3e",
|
||||
"build/assets/pylib-android/site.py": "2a99f7de2702aa8411d35acbb91fe926",
|
||||
"build/assets/pylib-android/smtpd.py": "0602b6a39c4e37133303bee16c3e28a4",
|
||||
@ -2970,18 +2970,18 @@
|
||||
"build/assets/pylib-android/sre_compile.py": "a1784e9ccbea7d9963cab75b536b40c8",
|
||||
"build/assets/pylib-android/sre_constants.py": "5c5be32a5334d9b0a848dad520746a63",
|
||||
"build/assets/pylib-android/sre_parse.py": "cca15b9ab31509e6642f9d2fd4fb9d91",
|
||||
"build/assets/pylib-android/ssl.py": "3c4c838c1c298d69871154e80f45cad1",
|
||||
"build/assets/pylib-android/ssl.py": "ed512664b82e23aa157fc69f97df9d01",
|
||||
"build/assets/pylib-android/stat.py": "185f17736cdb40bd3e7400ad8cedef84",
|
||||
"build/assets/pylib-android/statistics.py": "9807c60eb942bf320ee85a2016ba4516",
|
||||
"build/assets/pylib-android/string.py": "c072d3a2d0337386d3235ba72f292752",
|
||||
"build/assets/pylib-android/stringprep.py": "6a5635711a838f76fee7b52537bf8b45",
|
||||
"build/assets/pylib-android/struct.py": "4fd288bd6537effd1d5edbba9d44dde2",
|
||||
"build/assets/pylib-android/subprocess.py": "4d6522342cab21c558e60b2f50c5cedc",
|
||||
"build/assets/pylib-android/subprocess.py": "4932fae7e87da40d7661100b6871a005",
|
||||
"build/assets/pylib-android/sunau.py": "a034779289fef0b2221345f40e042680",
|
||||
"build/assets/pylib-android/symtable.py": "0cd4a624b2e3304664f43189ed9e3bf7",
|
||||
"build/assets/pylib-android/sysconfig.py": "9ffad6cfff49bc09fe36a33a5446c59d",
|
||||
"build/assets/pylib-android/tabnanny.py": "84614c63ead0ab71527cecdf3de68f1a",
|
||||
"build/assets/pylib-android/tarfile.py": "a6dfd478cf3917a29020944bff1a6f2d",
|
||||
"build/assets/pylib-android/tarfile.py": "e2fc4eca5c2d39b6f44b9e622a32f602",
|
||||
"build/assets/pylib-android/telnetlib.py": "1a746e1fc988b9f5c12b9fd5a97c00ea",
|
||||
"build/assets/pylib-android/tempfile.py": "436007fbe6821c864a53861bd73b4d43",
|
||||
"build/assets/pylib-android/textwrap.py": "3eb16a40553205dc96be5cb9039f3c8c",
|
||||
@ -2999,10 +2999,10 @@
|
||||
"build/assets/pylib-android/tracemalloc.py": "e4d10d2bee7773566e46797a939e5cbf",
|
||||
"build/assets/pylib-android/tty.py": "271c7d61005a0a3c2c0952efc60dcb6d",
|
||||
"build/assets/pylib-android/types.py": "78f8942c08dbfc9c582f1bb8d5206639",
|
||||
"build/assets/pylib-android/typing.py": "89e0654fda4fd2a09e93391179859cf0",
|
||||
"build/assets/pylib-android/typing.py": "17aaeea16cbfdb93cb4c5b87f535e341",
|
||||
"build/assets/pylib-android/urllib/__init__.py": "340c83beff7dcff8f5c7b87cd43cedaf",
|
||||
"build/assets/pylib-android/urllib/error.py": "b7dde0483ff647eb87162d6e19c04fa0",
|
||||
"build/assets/pylib-android/urllib/parse.py": "dc735bb3e0b069762ad988c1b55ce6e3",
|
||||
"build/assets/pylib-android/urllib/parse.py": "28e09ecc3b696bae8ac5589b9cd64f63",
|
||||
"build/assets/pylib-android/urllib/request.py": "09b8666fe8319542f7247bb9f8573806",
|
||||
"build/assets/pylib-android/urllib/response.py": "c8537707a4b1e493c0ec4489ab523c93",
|
||||
"build/assets/pylib-android/urllib/robotparser.py": "5a7616bdf398c166f953ad48c25506eb",
|
||||
@ -3039,7 +3039,7 @@
|
||||
"build/assets/pylib-android/xmlrpc/client.py": "8f2cad71c1c87031be073184e71aa405",
|
||||
"build/assets/pylib-android/xmlrpc/server.py": "3147663bd28b952eef0e1316b94bacc6",
|
||||
"build/assets/pylib-android/zipapp.py": "d92ea793f092af6383a6383678cf7b73",
|
||||
"build/assets/pylib-android/zipfile.py": "2cd1a57574daf0ec6456dc2d0858952d",
|
||||
"build/assets/pylib-android/zipfile.py": "00671f5cdb9a5ad667efa1dccf0129d3",
|
||||
"build/assets/pylib-android/zipimport.py": "6d3b32a7258f670eb71daf3a8492a4f1",
|
||||
"build/assets/pylib-android/zoneinfo/__init__.py": "0df5e8a66015e2fe2d77f2e4a5dea1ff",
|
||||
"build/assets/pylib-android/zoneinfo/_common.py": "5b52bdac4156dcbac96743fa99468bf2",
|
||||
@ -3060,45 +3060,45 @@
|
||||
"build/assets/pylib-apple/_pyio.py": "a6e88d66fbca88b13213cdd2177390b8",
|
||||
"build/assets/pylib-apple/_sitebuiltins.py": "8b5e3f6e73917962fa014ad2c4a55e61",
|
||||
"build/assets/pylib-apple/_strptime.py": "ff699c3f7647db7621bb88c43cc282d3",
|
||||
"build/assets/pylib-apple/_sysconfigdata__darwin_darwin.py": "1deb8b4ea385ac52e2fc30eb5b7486d9",
|
||||
"build/assets/pylib-apple/_sysconfigdata__darwin_darwin.py": "851eda9bce1b25dcba0ed272da9a25c1",
|
||||
"build/assets/pylib-apple/_sysconfigdata__ios_iphoneos.py": "5bfced73a12261ecc310bffce6786cd2",
|
||||
"build/assets/pylib-apple/_sysconfigdata__ios_iphoneos_arm64.py": "13cdaf0612cecdfdea79507be605b5fa",
|
||||
"build/assets/pylib-apple/_sysconfigdata__ios_iphoneos_arm64.py": "b323d9e0ce8d23039fe55a55a85a7f03",
|
||||
"build/assets/pylib-apple/_sysconfigdata__ios_iphonesimulator.py": "f9c955d9c5c9cf5a0a026d084a1f9519",
|
||||
"build/assets/pylib-apple/_sysconfigdata__ios_iphonesimulator_arm64.py": "1fd694958588a382f0e872584c66123e",
|
||||
"build/assets/pylib-apple/_sysconfigdata__ios_iphonesimulator_x86_64.py": "0be4ff9720b1366519a2acc44bde9564",
|
||||
"build/assets/pylib-apple/_sysconfigdata__ios_iphonesimulator_arm64.py": "a546cdaf5cd7c96b7494ea604ba7ce43",
|
||||
"build/assets/pylib-apple/_sysconfigdata__ios_iphonesimulator_x86_64.py": "56abcd261de3ab910cf340623328a7c0",
|
||||
"build/assets/pylib-apple/_sysconfigdata__tvos_appletvos.py": "6882eb86d192411b9e85c8b59252c719",
|
||||
"build/assets/pylib-apple/_sysconfigdata__tvos_appletvos_arm64.py": "798569299d9edde6167a23741c9239fb",
|
||||
"build/assets/pylib-apple/_sysconfigdata__tvos_appletvos_arm64.py": "aca63835009f6ddd207d25fac7af21f9",
|
||||
"build/assets/pylib-apple/_sysconfigdata__tvos_appletvsimulator.py": "a3c88367fb568e377ef2a72f0e9c2394",
|
||||
"build/assets/pylib-apple/_sysconfigdata__tvos_appletvsimulator_arm64.py": "bf5e3b80c0bd0f6e8d00372d4f6f1ae5",
|
||||
"build/assets/pylib-apple/_sysconfigdata__tvos_appletvsimulator_x86_64.py": "4828cee78f35df83a94a308919080918",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_darwin_darwin.py": "9eb91d9cd5328d59ceb9047d210beaba",
|
||||
"build/assets/pylib-apple/_sysconfigdata__tvos_appletvsimulator_arm64.py": "f3fbbf1e8541363be49ddfe5b7f42a5c",
|
||||
"build/assets/pylib-apple/_sysconfigdata__tvos_appletvsimulator_x86_64.py": "8af232f8b1f956a2ec0bad2dc44f1f59",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_darwin_darwin.py": "7b82990a773d8bfdc56a4d0587e767dc",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_ios_iphoneos.py": "5bfced73a12261ecc310bffce6786cd2",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_ios_iphoneos_arm64.py": "11622b9e1d51ef4a4225099acb1e8200",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_ios_iphoneos_arm64.py": "8d5c7003e7ebc454dc0919524c643b81",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_ios_iphonesimulator.py": "f9c955d9c5c9cf5a0a026d084a1f9519",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_ios_iphonesimulator_arm64.py": "54a8feabddfe2d0cc7a28db1d4ebd881",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_ios_iphonesimulator_x86_64.py": "f86a4410017799af3c0297cd8786058a",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_ios_iphonesimulator_arm64.py": "4fcbe87958cfa21d5bba4fc96dd8514e",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_ios_iphonesimulator_x86_64.py": "038f6c0ae9ebd4585ba3d71ac9a6f46b",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvos.py": "6882eb86d192411b9e85c8b59252c719",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvos_arm64.py": "72e93b38c02e8d9cae4fbf5fb66ebf3d",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvos_arm64.py": "370c439fe07fbf0d11a00654eee2cab0",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvsimulator.py": "a3c88367fb568e377ef2a72f0e9c2394",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvsimulator_arm64.py": "a395bfca36c03e6e77af0c0ca58c148d",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvsimulator_x86_64.py": "77074e38c080ebf0f969c62f5dab628e",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvsimulator_arm64.py": "35c66716d8e2d2c93a4fffd7fd6143e2",
|
||||
"build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvsimulator_x86_64.py": "3b59c71925adf541ceaccb165cd57067",
|
||||
"build/assets/pylib-apple/_threading_local.py": "4a9688e3987d7d692db46feb9214945e",
|
||||
"build/assets/pylib-apple/_weakrefset.py": "e4fa8532ace46dfbc35149c41ea497f7",
|
||||
"build/assets/pylib-apple/abc.py": "a9661fcfe6c12211ec1b16391247947c",
|
||||
"build/assets/pylib-apple/abc.py": "a0daa1ed187eee8690c1e8438b97da90",
|
||||
"build/assets/pylib-apple/aifc.py": "1b9134c72b1e542417bee5bf345a1d0a",
|
||||
"build/assets/pylib-apple/antigravity.py": "6d56bedf73be574cb6d7117caf5d334c",
|
||||
"build/assets/pylib-apple/argparse.py": "2dc7f53a0390532cfabb416e25e72035",
|
||||
"build/assets/pylib-apple/argparse.py": "e22cac9b12c09592929d57eb982fc554",
|
||||
"build/assets/pylib-apple/ast.py": "3aaa1b0e56b21b28155707c54bc225a8",
|
||||
"build/assets/pylib-apple/asynchat.py": "2ef3a0ce322332fabbf8fad4e133c6a3",
|
||||
"build/assets/pylib-apple/asyncio/__init__.py": "edf0e79e2b8b85c08f09fd14668e4822",
|
||||
"build/assets/pylib-apple/asyncio/__main__.py": "8e391b47f448ad922dc2614dbd93011e",
|
||||
"build/assets/pylib-apple/asyncio/base_events.py": "9f7758e7f013043a50c693e5e8d068b5",
|
||||
"build/assets/pylib-apple/asyncio/base_events.py": "8494c7bc5f5fe98fd64d882ed4cc4722",
|
||||
"build/assets/pylib-apple/asyncio/base_futures.py": "d2502e045d28ea562e1a82ddb162b4f0",
|
||||
"build/assets/pylib-apple/asyncio/base_subprocess.py": "8a805e04a2911b2d8e297f0029def4b1",
|
||||
"build/assets/pylib-apple/asyncio/base_tasks.py": "f4388c294f4cf805a6f1e4ed12a5a3aa",
|
||||
"build/assets/pylib-apple/asyncio/constants.py": "13f733940667d1f81cf83adc6e5b2a5b",
|
||||
"build/assets/pylib-apple/asyncio/coroutines.py": "fb3e431df7d09ed38d7fa76385e9bb52",
|
||||
"build/assets/pylib-apple/asyncio/events.py": "07c04d04b5e255fc5b79698715f4dc4e",
|
||||
"build/assets/pylib-apple/asyncio/events.py": "3063d6b0d1fcbb50f8142f8ce58531fb",
|
||||
"build/assets/pylib-apple/asyncio/exceptions.py": "db8d3794a37d50a433d13c1eacf0d333",
|
||||
"build/assets/pylib-apple/asyncio/format_helpers.py": "b0447581eff1bc759da16d512155c72a",
|
||||
"build/assets/pylib-apple/asyncio/futures.py": "297232981f201edac774ec3a49a0845b",
|
||||
@ -3109,26 +3109,26 @@
|
||||
"build/assets/pylib-apple/asyncio/protocols.py": "b8aa105b79d24f88c7a2c2cdbc8e7814",
|
||||
"build/assets/pylib-apple/asyncio/queues.py": "f63be54780730992e2377c51ac373126",
|
||||
"build/assets/pylib-apple/asyncio/runners.py": "f184754fba961e4ea6e77a9aec633afc",
|
||||
"build/assets/pylib-apple/asyncio/selector_events.py": "f7ee7809d8b807ccda22db7870f508ac",
|
||||
"build/assets/pylib-apple/asyncio/sslproto.py": "3a639532c92e12c9bf06fd131a6fc419",
|
||||
"build/assets/pylib-apple/asyncio/selector_events.py": "a108fbd3a49f967da245f39cebf7694e",
|
||||
"build/assets/pylib-apple/asyncio/sslproto.py": "2ec1b21e523055147d94c8c634154aab",
|
||||
"build/assets/pylib-apple/asyncio/staggered.py": "f5056f0a56b73b477a9fa65e71145366",
|
||||
"build/assets/pylib-apple/asyncio/streams.py": "e9c609b92b4e9bd3383cf4004c6186c6",
|
||||
"build/assets/pylib-apple/asyncio/subprocess.py": "a5ff69004c02e2f47d0077a77803c06b",
|
||||
"build/assets/pylib-apple/asyncio/streams.py": "f00ddd2b2fd74554ae1d3088bd9d2bfd",
|
||||
"build/assets/pylib-apple/asyncio/subprocess.py": "edb8d98278300b6c99f36cd08643c743",
|
||||
"build/assets/pylib-apple/asyncio/taskgroups.py": "5162e5b1806d9b647383d34ba1b21b56",
|
||||
"build/assets/pylib-apple/asyncio/tasks.py": "234550593cd4928e6ee2c9591b6928ca",
|
||||
"build/assets/pylib-apple/asyncio/threads.py": "7bbf81d424901524510e07b5d20e4a50",
|
||||
"build/assets/pylib-apple/asyncio/timeouts.py": "c7cb81c7ee938bc47ff75342befc872a",
|
||||
"build/assets/pylib-apple/asyncio/transports.py": "04598090d813bb363cea9bf714b97c3f",
|
||||
"build/assets/pylib-apple/asyncio/trsock.py": "305d016a93b3e5224cb45af43fdc52b9",
|
||||
"build/assets/pylib-apple/asyncio/unix_events.py": "9ce0da3a12b544df9c10fd3b3e0b2f37",
|
||||
"build/assets/pylib-apple/asyncio/unix_events.py": "cbb968f7c1e4f87f23b187d7140839f1",
|
||||
"build/assets/pylib-apple/asyncio/windows_events.py": "954637d8416216d656011178dbcedbb4",
|
||||
"build/assets/pylib-apple/asyncio/windows_utils.py": "4efbef16e6692c9424804d9bdc496761",
|
||||
"build/assets/pylib-apple/asyncore.py": "af21d495fa6ccc47b51ca8a8a382ea1c",
|
||||
"build/assets/pylib-apple/base64.py": "5f8bbbfda4b9145b1968cb9badf8325b",
|
||||
"build/assets/pylib-apple/bdb.py": "aecf5370ea25c5decdf8dfa07caf0bfc",
|
||||
"build/assets/pylib-apple/bdb.py": "1e26c626405bfc06b1e7231183eb928a",
|
||||
"build/assets/pylib-apple/bisect.py": "9b70437e327d5176da41192567ad0064",
|
||||
"build/assets/pylib-apple/bz2.py": "cd6a5f2491bc52afd8fc180097371473",
|
||||
"build/assets/pylib-apple/cProfile.py": "d5ef924a68c0f747ad727a6326ad8e5a",
|
||||
"build/assets/pylib-apple/cProfile.py": "9e9c07ac3b9e4195a62b74e4f2b9489f",
|
||||
"build/assets/pylib-apple/calendar.py": "4ef3d6d85d44e36212e5d784051c80b6",
|
||||
"build/assets/pylib-apple/cgi.py": "090c5cfc8b4b92a730beec975159bd2a",
|
||||
"build/assets/pylib-apple/cgitb.py": "2bcff1cec7f3a3a9c96de7a55ebb4ea3",
|
||||
@ -3137,16 +3137,16 @@
|
||||
"build/assets/pylib-apple/code.py": "5d47099984013b933c96b02ef16981b8",
|
||||
"build/assets/pylib-apple/codecs.py": "6fac5e2969e98ceaba92d3b8e42cb2ec",
|
||||
"build/assets/pylib-apple/codeop.py": "d375467fb29fccd43ab94d15a2e63085",
|
||||
"build/assets/pylib-apple/collections/__init__.py": "44999193e5c3d379e3feaa50ddf5147d",
|
||||
"build/assets/pylib-apple/collections/__init__.py": "dcffbb6ee2cadd0c05ad22f2ef41f89b",
|
||||
"build/assets/pylib-apple/collections/abc.py": "15f410d3821352033a90a04539c99060",
|
||||
"build/assets/pylib-apple/colorsys.py": "1452923f15188287bc677e7128cb6b31",
|
||||
"build/assets/pylib-apple/colorsys.py": "ca8f117785bf7606c3919ef0f4b828ae",
|
||||
"build/assets/pylib-apple/compileall.py": "eb3f6d92f020ebec3f3f5bffc8a4dd4b",
|
||||
"build/assets/pylib-apple/concurrent/__init__.py": "aa990702e8f3a7af205efb5ae23a7c85",
|
||||
"build/assets/pylib-apple/concurrent/futures/__init__.py": "3e46fadb9de9c995c37dca4311641d6a",
|
||||
"build/assets/pylib-apple/concurrent/futures/_base.py": "a1cd37aea6fe0efff1bc00a39543609e",
|
||||
"build/assets/pylib-apple/concurrent/futures/process.py": "4725abe3e780075ac264da12a1db5714",
|
||||
"build/assets/pylib-apple/concurrent/futures/process.py": "a44e8618e158f8f351dafcb566a02544",
|
||||
"build/assets/pylib-apple/concurrent/futures/thread.py": "e63753b8201f1392dbebc84a15054a13",
|
||||
"build/assets/pylib-apple/configparser.py": "a6b19c20d70861eea310e5504621e562",
|
||||
"build/assets/pylib-apple/configparser.py": "914afd2b2cec90bbca0b94fd176b5176",
|
||||
"build/assets/pylib-apple/contextlib.py": "6f52eac914e438ef54407760def8305f",
|
||||
"build/assets/pylib-apple/contextvars.py": "ddf2ae9be02601bd8fc9c2cb8a51c04e",
|
||||
"build/assets/pylib-apple/copy.py": "e7c43b1ec5f81ef36486ad8b49ed7f74",
|
||||
@ -3167,38 +3167,38 @@
|
||||
"build/assets/pylib-apple/curses/has_key.py": "c74b8d6db329fbbd872b7b91bfa94624",
|
||||
"build/assets/pylib-apple/curses/panel.py": "8f36fdade9588f8a4362d2cc057a6eff",
|
||||
"build/assets/pylib-apple/curses/textpad.py": "94aa9ebc47a6068d4461652346646dbb",
|
||||
"build/assets/pylib-apple/dataclasses.py": "1328e12f8255b856ced026e75a623671",
|
||||
"build/assets/pylib-apple/dataclasses.py": "febeea138bff21dbed88762be772514e",
|
||||
"build/assets/pylib-apple/datetime.py": "5dcfd7f3b1a4db8214c1442164ac999c",
|
||||
"build/assets/pylib-apple/decimal.py": "f57d255d45b5d1d7d8e13c41a283c3e4",
|
||||
"build/assets/pylib-apple/difflib.py": "6b3c8fd541b2b8d0320727025cd25275",
|
||||
"build/assets/pylib-apple/dis.py": "cecdc0c02aa3d70a7f550e60ebc9b3ba",
|
||||
"build/assets/pylib-apple/doctest.py": "eb60b2b39e0deb976ecbc69a8c2392ee",
|
||||
"build/assets/pylib-apple/email/__init__.py": "7ebfab5c51b6bc698aca92ad4903346c",
|
||||
"build/assets/pylib-apple/doctest.py": "8a18c35f3aa66130955a6a3bf1bfead4",
|
||||
"build/assets/pylib-apple/email/__init__.py": "4ff603eeeb4ce0302c8bd1b220fc5e13",
|
||||
"build/assets/pylib-apple/email/_encoded_words.py": "d7b77501689dd1ce32da789b46264a6a",
|
||||
"build/assets/pylib-apple/email/_header_value_parser.py": "982718787815084548747d4b078902e6",
|
||||
"build/assets/pylib-apple/email/_parseaddr.py": "a6d2999aeed17f060be8797e761a01aa",
|
||||
"build/assets/pylib-apple/email/_policybase.py": "09b0c21693ac080c52c52f5daab616aa",
|
||||
"build/assets/pylib-apple/email/base64mime.py": "a1ac31203212f2963b4c07629a3b919c",
|
||||
"build/assets/pylib-apple/email/charset.py": "7bb5baa9bbd627097d1f32f1a3b503c8",
|
||||
"build/assets/pylib-apple/email/base64mime.py": "d3e4fc07d04833487677dd2a888c3826",
|
||||
"build/assets/pylib-apple/email/charset.py": "1d101758464f75bf2b93fb17fec9542f",
|
||||
"build/assets/pylib-apple/email/contentmanager.py": "e88780ef1d37a11ff216060f740f2572",
|
||||
"build/assets/pylib-apple/email/encoders.py": "f1c581f5c146c31168f6ff4a2a6591f7",
|
||||
"build/assets/pylib-apple/email/encoders.py": "d401cf76e52f0205393dd8bb1ae28b46",
|
||||
"build/assets/pylib-apple/email/errors.py": "afd6b5e8f8baa701baaae14e736ddca0",
|
||||
"build/assets/pylib-apple/email/feedparser.py": "88d35aee820e997f40f6c28cf930979b",
|
||||
"build/assets/pylib-apple/email/generator.py": "e0cc1d119427110da5de96a4e7b6bb5b",
|
||||
"build/assets/pylib-apple/email/header.py": "f72b2b6140c11b89c0ae3f7b24b0a861",
|
||||
"build/assets/pylib-apple/email/feedparser.py": "623788306ab3b5d75df1145484045edc",
|
||||
"build/assets/pylib-apple/email/generator.py": "073bac3c4874c3ab74d4e6a9e9317fb2",
|
||||
"build/assets/pylib-apple/email/header.py": "09923b7b77bf91bed41a71b6e3c6e4d9",
|
||||
"build/assets/pylib-apple/email/headerregistry.py": "dfd48f9c41454d5bc2355cb1762fb869",
|
||||
"build/assets/pylib-apple/email/iterators.py": "9b67a6ab50d2bdbdbc4588e10ea1c64a",
|
||||
"build/assets/pylib-apple/email/iterators.py": "752ece28a18545e70fa67a7cf2fe3ef3",
|
||||
"build/assets/pylib-apple/email/message.py": "5b198b0cf1095ba5a3faccdd28310f28",
|
||||
"build/assets/pylib-apple/email/mime/__init__.py": "340c83beff7dcff8f5c7b87cd43cedaf",
|
||||
"build/assets/pylib-apple/email/mime/application.py": "4ce678512f30cac9fd95993186d2eef7",
|
||||
"build/assets/pylib-apple/email/mime/audio.py": "4073e45bda9524e3cbe29374951fdc16",
|
||||
"build/assets/pylib-apple/email/mime/base.py": "e4ac5d17e69e73a2cb4cc873474991c2",
|
||||
"build/assets/pylib-apple/email/mime/base.py": "3b9c795fe3b6e9d3f7b6dda3e1c8e1ea",
|
||||
"build/assets/pylib-apple/email/mime/image.py": "6322b8269e8efe61d3ead57f2aa6cdef",
|
||||
"build/assets/pylib-apple/email/mime/message.py": "72935a387c0c12840359c2b0b8f588ac",
|
||||
"build/assets/pylib-apple/email/mime/multipart.py": "8157be08dbd84825bf2abaefa39dc3a0",
|
||||
"build/assets/pylib-apple/email/mime/nonmultipart.py": "1187993d0366b808a3afea751cd37d81",
|
||||
"build/assets/pylib-apple/email/mime/text.py": "eb387b8f3a686bc7587b860782761a52",
|
||||
"build/assets/pylib-apple/email/parser.py": "19466563eaac6984c48f734a8f2cf3fc",
|
||||
"build/assets/pylib-apple/email/mime/message.py": "0bf18b4f07a68b646e45b10d7e31c6c7",
|
||||
"build/assets/pylib-apple/email/mime/multipart.py": "69577df977b7b36f5e175661dd7095bc",
|
||||
"build/assets/pylib-apple/email/mime/nonmultipart.py": "a96d8d31156781a7511cec04e46a95f6",
|
||||
"build/assets/pylib-apple/email/mime/text.py": "21928b3afec29cb55ae1ae7682b8fbe1",
|
||||
"build/assets/pylib-apple/email/parser.py": "f0cdd5c8491cbff0948672784fca1e8f",
|
||||
"build/assets/pylib-apple/email/policy.py": "69a5f116b77b6a70e7761309c5592557",
|
||||
"build/assets/pylib-apple/email/quoprimime.py": "c5e54c3f0e70d55145517382d4455765",
|
||||
"build/assets/pylib-apple/email/utils.py": "145a606aaa3cbad40c68054ebbf4efa6",
|
||||
@ -3324,7 +3324,7 @@
|
||||
"build/assets/pylib-apple/encodings/utf_8_sig.py": "8f3542863ef311d8b970a37c0d66b0de",
|
||||
"build/assets/pylib-apple/encodings/uu_codec.py": "4ef8a65413574c017a96b97fc1638ba6",
|
||||
"build/assets/pylib-apple/encodings/zlib_codec.py": "1388fb103fdf395451bfc8a2d60933a9",
|
||||
"build/assets/pylib-apple/enum.py": "93e4c39acfbbebdc9c4f3d204f17e496",
|
||||
"build/assets/pylib-apple/enum.py": "73b214a43ceef88aff7098b83623ed09",
|
||||
"build/assets/pylib-apple/filecmp.py": "7648fdc6d0fc8bae7429d5e4081cf353",
|
||||
"build/assets/pylib-apple/fileinput.py": "c3def1041e6b12dd5f1906c9dbbd1101",
|
||||
"build/assets/pylib-apple/fnmatch.py": "a1bc67633695d4defd4c0886428c5363",
|
||||
@ -3334,7 +3334,7 @@
|
||||
"build/assets/pylib-apple/genericpath.py": "5e991b8dd73dd4a05571b73ac532988a",
|
||||
"build/assets/pylib-apple/getopt.py": "d630bf22334ba037143a3dca69088ee1",
|
||||
"build/assets/pylib-apple/getpass.py": "c19e383e949c147a30ecc554b8598e91",
|
||||
"build/assets/pylib-apple/gettext.py": "6e24985f9e985660751c70436cfefa75",
|
||||
"build/assets/pylib-apple/gettext.py": "245a4d4c7ba79febb5423a49ebdc019a",
|
||||
"build/assets/pylib-apple/glob.py": "0607521b67b32c59f30a9e1b238d5c1a",
|
||||
"build/assets/pylib-apple/graphlib.py": "156d50d67d92c1917cf910dfce9cecc9",
|
||||
"build/assets/pylib-apple/gzip.py": "296ba9c497e9c0cc4a97b82dcb02d780",
|
||||
@ -3345,15 +3345,15 @@
|
||||
"build/assets/pylib-apple/html/entities.py": "8561b405414160a08f613bdfd89e161b",
|
||||
"build/assets/pylib-apple/html/parser.py": "c2ff6801a3ef6a2863d37b899615efb8",
|
||||
"build/assets/pylib-apple/http/__init__.py": "1dab578aab89ead7171ef10638e88a5d",
|
||||
"build/assets/pylib-apple/http/client.py": "d0b37013d5f9794a8311c3545ee5416d",
|
||||
"build/assets/pylib-apple/http/client.py": "a3f2cd21f8ce7a4ee1b47f0b19fb57f7",
|
||||
"build/assets/pylib-apple/http/cookiejar.py": "f324a21e7c17f40e4d5c78139875811c",
|
||||
"build/assets/pylib-apple/http/cookies.py": "9319b95b505a644b9a112b4c7a7678c3",
|
||||
"build/assets/pylib-apple/http/server.py": "a06b26669fc0eb0ef81b819fe8a6602d",
|
||||
"build/assets/pylib-apple/http/server.py": "4b286e2b5e6112af17e097539eadd9d7",
|
||||
"build/assets/pylib-apple/imghdr.py": "011d27a98acf3774279a584525614ba3",
|
||||
"build/assets/pylib-apple/imp.py": "34bd1d1620eb0d42f9ef9bbbb11cafae",
|
||||
"build/assets/pylib-apple/importlib/__init__.py": "2f6c1fb453d61417245cd196311a9b52",
|
||||
"build/assets/pylib-apple/importlib/_abc.py": "720f8056e5cd852156378b532ddbbb7c",
|
||||
"build/assets/pylib-apple/importlib/_bootstrap.py": "da9de7a6d6839a7185147f35f2040de7",
|
||||
"build/assets/pylib-apple/importlib/_bootstrap.py": "6f4819e9443e3fda3c28c62f15a8238c",
|
||||
"build/assets/pylib-apple/importlib/_bootstrap_external.py": "c22f4fa4086742713c2071db7de7726c",
|
||||
"build/assets/pylib-apple/importlib/abc.py": "c9697e928ff17089dc6aea96f5b33003",
|
||||
"build/assets/pylib-apple/importlib/machinery.py": "6a056c561b4ea8eb5457761c8a9fd704",
|
||||
@ -3375,7 +3375,7 @@
|
||||
"build/assets/pylib-apple/importlib/resources/simple.py": "ae95788edf31cbfffd53db748d76f0b9",
|
||||
"build/assets/pylib-apple/importlib/simple.py": "f34f28cd359ecaf9fd6cf18a4dca2c33",
|
||||
"build/assets/pylib-apple/importlib/util.py": "09c3a96d1265db211f32b73a5f76e1ac",
|
||||
"build/assets/pylib-apple/inspect.py": "5a321fd388139d2beff15f4306b1fb95",
|
||||
"build/assets/pylib-apple/inspect.py": "365d413e26b3a77118e51987cfd2eb1f",
|
||||
"build/assets/pylib-apple/io.py": "4a3ab68b3f38d3dcf9282f4839fe5d84",
|
||||
"build/assets/pylib-apple/ipaddress.py": "b9831cf9058885b35a2411b4cbada972",
|
||||
"build/assets/pylib-apple/json/__init__.py": "e8b000d2bf8c53b55a72bc3053800596",
|
||||
@ -3387,8 +3387,8 @@
|
||||
"build/assets/pylib-apple/linecache.py": "2712c31a3a6d7625d437029a6b7470c9",
|
||||
"build/assets/pylib-apple/locale.py": "42f3f48fed6a16da350de46aa85b446a",
|
||||
"build/assets/pylib-apple/logging/__init__.py": "6e5d6f80af880857f5eb29b038512c6d",
|
||||
"build/assets/pylib-apple/logging/config.py": "ff0697c60f90420c32c697a30bfdfe90",
|
||||
"build/assets/pylib-apple/logging/handlers.py": "ab3881444783ab84f3859e022b356989",
|
||||
"build/assets/pylib-apple/logging/config.py": "f811372496ec5ae34e8047f0280686be",
|
||||
"build/assets/pylib-apple/logging/handlers.py": "55d604de088570f8bd5edb62f64682fb",
|
||||
"build/assets/pylib-apple/lzma.py": "d7388640aa6af4c64fdc821471930f57",
|
||||
"build/assets/pylib-apple/mailbox.py": "d9db3c7510e38484ade3d88446b8f231",
|
||||
"build/assets/pylib-apple/mailcap.py": "c61462a36d20d79a0f4e37717f957bf6",
|
||||
@ -3396,30 +3396,30 @@
|
||||
"build/assets/pylib-apple/modulefinder.py": "3fc074c018de1dd15ab2e309be199dea",
|
||||
"build/assets/pylib-apple/netrc.py": "9a869ca83b316ab5a19a0a2cf22efaf3",
|
||||
"build/assets/pylib-apple/nntplib.py": "4926aa991bd4b96b9318d6242135abf9",
|
||||
"build/assets/pylib-apple/ntpath.py": "36557dc9fdcd9eeeab4d46c1a364bd5a",
|
||||
"build/assets/pylib-apple/ntpath.py": "d53ff21dc0ef0cd939cc865ae1fb011e",
|
||||
"build/assets/pylib-apple/nturl2path.py": "937624c4b6f213b652addea66296ccc4",
|
||||
"build/assets/pylib-apple/numbers.py": "0cdcb42317422500d514ec67d496a06e",
|
||||
"build/assets/pylib-apple/opcode.py": "18cba8b1d09ec6fcccfe20e5b13db980",
|
||||
"build/assets/pylib-apple/operator.py": "61e197bc43df97ec39ae3e5e59b11c19",
|
||||
"build/assets/pylib-apple/optparse.py": "5f65f891612b68c71a2846da86254285",
|
||||
"build/assets/pylib-apple/os.py": "36f9692131ffb9ba4db510de31afc651",
|
||||
"build/assets/pylib-apple/pathlib.py": "3e8b893cbe95729cdb6d0cc796e89e19",
|
||||
"build/assets/pylib-apple/pdb.py": "da4c484348d4b2009479dadd878f20b0",
|
||||
"build/assets/pylib-apple/pathlib.py": "095ec821fec243124d0a286b4de3848a",
|
||||
"build/assets/pylib-apple/pdb.py": "117b0d24ccb89edc5f183c94f6722f70",
|
||||
"build/assets/pylib-apple/pickle.py": "e6f9f53d29988454690ccde3279c7c38",
|
||||
"build/assets/pylib-apple/pickletools.py": "85b30fba86d32dfc4a588300dedf5f01",
|
||||
"build/assets/pylib-apple/pipes.py": "2dd796bdbb87982034234fec50d4526c",
|
||||
"build/assets/pylib-apple/pkgutil.py": "372a540a2f2f3a324d5ff8e137579aad",
|
||||
"build/assets/pylib-apple/pkgutil.py": "8e3fdfcb6c90dc50245aee89c49eb515",
|
||||
"build/assets/pylib-apple/platform.py": "ee86bbf8ce5fbe11cd285600ecf4aecd",
|
||||
"build/assets/pylib-apple/plistlib.py": "8aa9836b7a69628873b25811c4d5fffa",
|
||||
"build/assets/pylib-apple/poplib.py": "829dc4df5d8e082ad414d499ec4678bd",
|
||||
"build/assets/pylib-apple/posixpath.py": "2a6b3f940f89b0819ee002b6b82b0318",
|
||||
"build/assets/pylib-apple/pprint.py": "b4e9efe35d05b6126d41da36eda47754",
|
||||
"build/assets/pylib-apple/profile.py": "4c0816d9278d2a33e28835fcd291fb62",
|
||||
"build/assets/pylib-apple/profile.py": "a9f11f8aa6a2905706a5fc9273d6c981",
|
||||
"build/assets/pylib-apple/pstats.py": "c5884aaae199265ab0c3849d053bc996",
|
||||
"build/assets/pylib-apple/pty.py": "1de2d1bfbdc54a770de7b3010d322620",
|
||||
"build/assets/pylib-apple/pty.py": "c97b51147360cf7fd92c364ab8068a2b",
|
||||
"build/assets/pylib-apple/py_compile.py": "772b429c589d2e005e8bd79b12f55a92",
|
||||
"build/assets/pylib-apple/pyclbr.py": "bf1989a2c73108005e874a640760476a",
|
||||
"build/assets/pylib-apple/pydoc.py": "0f8a4b2f4a9d23e429c01660a4290bd8",
|
||||
"build/assets/pylib-apple/pydoc.py": "b17a6d227db749f91434253248fa6384",
|
||||
"build/assets/pylib-apple/queue.py": "1e90a0b87965a2642946621db162f441",
|
||||
"build/assets/pylib-apple/quopri.py": "5d58010dd1f96b37a167c6d305372881",
|
||||
"build/assets/pylib-apple/random.py": "9ec8461bc4d5b072e3fc1f65aafccf2f",
|
||||
@ -3427,7 +3427,7 @@
|
||||
"build/assets/pylib-apple/re/_casefix.py": "106514c6c6bb479fa2691423a61c8938",
|
||||
"build/assets/pylib-apple/re/_compiler.py": "d38bbefe652b6bfff2bb30459436f112",
|
||||
"build/assets/pylib-apple/re/_constants.py": "99b8d7dba7fb50be8fb435dcefcd2989",
|
||||
"build/assets/pylib-apple/re/_parser.py": "df712815c6dba2e12c1875ca1bc02400",
|
||||
"build/assets/pylib-apple/re/_parser.py": "1afe14ae4219eadb32ba0fd3ac1b921a",
|
||||
"build/assets/pylib-apple/reprlib.py": "a129eeeaf66fbd9591d2da242ce23a1a",
|
||||
"build/assets/pylib-apple/rlcompleter.py": "9e57bb7030b57c4ec82eba9e09852414",
|
||||
"build/assets/pylib-apple/runpy.py": "3a2dd98314791c7e36b6bd3585f6ad82",
|
||||
@ -3436,7 +3436,7 @@
|
||||
"build/assets/pylib-apple/selectors.py": "98e0d83849452cbc2cc1381555bd5024",
|
||||
"build/assets/pylib-apple/shelve.py": "3e569c07c863ecbd7f35a6c382d1785a",
|
||||
"build/assets/pylib-apple/shlex.py": "0873fac90a491702950816ead0e59dd0",
|
||||
"build/assets/pylib-apple/shutil.py": "651be1edc2110d483c96fbe26f40665d",
|
||||
"build/assets/pylib-apple/shutil.py": "a5d0ee9f28244b42a06e682312d0e3fa",
|
||||
"build/assets/pylib-apple/signal.py": "114ef47b1798fca6f56ac8a250974b3e",
|
||||
"build/assets/pylib-apple/site.py": "c2bb58a3e8fe69733a28b56d04b47e50",
|
||||
"build/assets/pylib-apple/smtpd.py": "0602b6a39c4e37133303bee16c3e28a4",
|
||||
@ -3450,18 +3450,18 @@
|
||||
"build/assets/pylib-apple/sre_compile.py": "a1784e9ccbea7d9963cab75b536b40c8",
|
||||
"build/assets/pylib-apple/sre_constants.py": "5c5be32a5334d9b0a848dad520746a63",
|
||||
"build/assets/pylib-apple/sre_parse.py": "cca15b9ab31509e6642f9d2fd4fb9d91",
|
||||
"build/assets/pylib-apple/ssl.py": "3c4c838c1c298d69871154e80f45cad1",
|
||||
"build/assets/pylib-apple/ssl.py": "ed512664b82e23aa157fc69f97df9d01",
|
||||
"build/assets/pylib-apple/stat.py": "185f17736cdb40bd3e7400ad8cedef84",
|
||||
"build/assets/pylib-apple/statistics.py": "9807c60eb942bf320ee85a2016ba4516",
|
||||
"build/assets/pylib-apple/string.py": "c072d3a2d0337386d3235ba72f292752",
|
||||
"build/assets/pylib-apple/stringprep.py": "6a5635711a838f76fee7b52537bf8b45",
|
||||
"build/assets/pylib-apple/struct.py": "4fd288bd6537effd1d5edbba9d44dde2",
|
||||
"build/assets/pylib-apple/subprocess.py": "c696ea6bad77404821e3643a5a8f1189",
|
||||
"build/assets/pylib-apple/subprocess.py": "71393ec8cfd7da74691d932dd1861992",
|
||||
"build/assets/pylib-apple/sunau.py": "a034779289fef0b2221345f40e042680",
|
||||
"build/assets/pylib-apple/symtable.py": "0cd4a624b2e3304664f43189ed9e3bf7",
|
||||
"build/assets/pylib-apple/sysconfig.py": "e14e3272debfcb60192898d131712bad",
|
||||
"build/assets/pylib-apple/tabnanny.py": "84614c63ead0ab71527cecdf3de68f1a",
|
||||
"build/assets/pylib-apple/tarfile.py": "76bf209364cd327ee75e9dac3211c882",
|
||||
"build/assets/pylib-apple/tarfile.py": "e2fc4eca5c2d39b6f44b9e622a32f602",
|
||||
"build/assets/pylib-apple/telnetlib.py": "1a746e1fc988b9f5c12b9fd5a97c00ea",
|
||||
"build/assets/pylib-apple/tempfile.py": "436007fbe6821c864a53861bd73b4d43",
|
||||
"build/assets/pylib-apple/textwrap.py": "3eb16a40553205dc96be5cb9039f3c8c",
|
||||
@ -3474,22 +3474,22 @@
|
||||
"build/assets/pylib-apple/tomllib/_parser.py": "f9a4dc92c44403f970e94c2e494a7358",
|
||||
"build/assets/pylib-apple/tomllib/_re.py": "0e509117e16c41c491615e06bb98861d",
|
||||
"build/assets/pylib-apple/tomllib/_types.py": "07be9616d6f5e401fd31fbeea619fc97",
|
||||
"build/assets/pylib-apple/trace.py": "c860164b4f4317299db04e29070a163d",
|
||||
"build/assets/pylib-apple/traceback.py": "bb2dc63a0bcd438697904573807bd392",
|
||||
"build/assets/pylib-apple/trace.py": "3d8698a2c3ec03dc0f394a2f48c2ffbc",
|
||||
"build/assets/pylib-apple/traceback.py": "91f67818e621e3b2f5bf583ed6863ef8",
|
||||
"build/assets/pylib-apple/tracemalloc.py": "e4d10d2bee7773566e46797a939e5cbf",
|
||||
"build/assets/pylib-apple/tty.py": "271c7d61005a0a3c2c0952efc60dcb6d",
|
||||
"build/assets/pylib-apple/types.py": "78f8942c08dbfc9c582f1bb8d5206639",
|
||||
"build/assets/pylib-apple/typing.py": "c07fa037183494716cd57a7c9ac05d78",
|
||||
"build/assets/pylib-apple/typing.py": "17aaeea16cbfdb93cb4c5b87f535e341",
|
||||
"build/assets/pylib-apple/urllib/__init__.py": "340c83beff7dcff8f5c7b87cd43cedaf",
|
||||
"build/assets/pylib-apple/urllib/error.py": "b7dde0483ff647eb87162d6e19c04fa0",
|
||||
"build/assets/pylib-apple/urllib/parse.py": "d47283907682d432b511b85dd1e32572",
|
||||
"build/assets/pylib-apple/urllib/request.py": "e89a853d76344f1ca197926d49b3b9e6",
|
||||
"build/assets/pylib-apple/urllib/parse.py": "28e09ecc3b696bae8ac5589b9cd64f63",
|
||||
"build/assets/pylib-apple/urllib/request.py": "09b8666fe8319542f7247bb9f8573806",
|
||||
"build/assets/pylib-apple/urllib/response.py": "c8537707a4b1e493c0ec4489ab523c93",
|
||||
"build/assets/pylib-apple/urllib/robotparser.py": "5a7616bdf398c166f953ad48c25506eb",
|
||||
"build/assets/pylib-apple/uu.py": "93268d78026ebde74a1ccd14024ae59f",
|
||||
"build/assets/pylib-apple/uu.py": "7cb795ca0c9e914550e6245dfe53c53e",
|
||||
"build/assets/pylib-apple/uuid.py": "755d75cad456d0c3ab0c67f0276cca32",
|
||||
"build/assets/pylib-apple/warnings.py": "e5f0b4cbc35aae8d4b89a856b189b626",
|
||||
"build/assets/pylib-apple/wave.py": "cb125197ba1b7955bbee4ebde9f385ce",
|
||||
"build/assets/pylib-apple/wave.py": "727a8dacad95625ea14554b7d655ce2e",
|
||||
"build/assets/pylib-apple/weakref.py": "dd14612f02ca8acd723f633b6fff0adf",
|
||||
"build/assets/pylib-apple/webbrowser.py": "7356fd255ec3bdfef98349a9c9d2b563",
|
||||
"build/assets/pylib-apple/xdrlib.py": "ee12e9067ab4904da935b8d2213426d8",
|
||||
@ -3519,7 +3519,7 @@
|
||||
"build/assets/pylib-apple/xmlrpc/client.py": "8f2cad71c1c87031be073184e71aa405",
|
||||
"build/assets/pylib-apple/xmlrpc/server.py": "3147663bd28b952eef0e1316b94bacc6",
|
||||
"build/assets/pylib-apple/zipapp.py": "d92ea793f092af6383a6383678cf7b73",
|
||||
"build/assets/pylib-apple/zipfile.py": "21cdb798a8f660aa3ec322ce59bddac9",
|
||||
"build/assets/pylib-apple/zipfile.py": "00671f5cdb9a5ad667efa1dccf0129d3",
|
||||
"build/assets/pylib-apple/zipimport.py": "6d3b32a7258f670eb71daf3a8492a4f1",
|
||||
"build/assets/pylib-apple/zoneinfo/__init__.py": "0df5e8a66015e2fe2d77f2e4a5dea1ff",
|
||||
"build/assets/pylib-apple/zoneinfo/_common.py": "5b52bdac4156dcbac96743fa99468bf2",
|
||||
@ -4064,26 +4064,26 @@
|
||||
"build/assets/windows/Win32/ucrtbased.dll": "2def5335207d41b21b9823f6805997f1",
|
||||
"build/assets/windows/Win32/vc_redist.x86.exe": "b08a55e2e77623fe657bea24f223a3ae",
|
||||
"build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599",
|
||||
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "ca001c9f2b4edf8d4918c1bcaf0cb561",
|
||||
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "fcb58aae4535a761be49420f4e4a7711",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "8f453b8193ba06a3cc59374cdd2a1c09",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "7c389cb83619516ce96118227668500e",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "2ffcc486e9ba8f0fd5279083a2e54aff",
|
||||
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "366bab5bff3ff9344e54bf7492f4d7c3",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "78277cc1bd40ba88fd1475f8755e0721",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "5f063e4d45e40ade22f1bad63658752e",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "f7114c78146f22e89143218c9930b43e",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "90c0ea0ce7a35d8f15b2a29bef704819",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "e1b4932fd7f359404c979604a1e33444",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "28ab454f71dfecd1986a245eb4a732e7",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "7b1a4db9c3f36fd428cdafbc1459bc1b",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "bc5a48ff49975901f212d18b1dbbb6f5",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "7742db7c9555907fc7b2d5c89d48dfd0",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "d81bc55d666f630a14de90f30be29fb4",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "5ab68bfee69a6fe07b5b8a68938220e6",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "59a2b3cb2c1dde98c6aedf72aa9fdbfb",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "2199e800eb102d56197e11782b7adf12",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "3193300cf9927276893960698d8246f6",
|
||||
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "2ceb16e09034aa4e3213e8fb69dd209b",
|
||||
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "7ecdc512653325abef8e66e9c3e0e479",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "70a1c3300cb0610a85449d08b3483a54",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "000738cc726938ff5282d211629739e3",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "e4d0b9fdcb16f2bef3891f28b950daac",
|
||||
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "9cc960c0de9e10dd300561dc9ae045e2",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "be453afedfb331abe39e4940755b34e7",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "d478af40d922a68e4deab6dd452b0e51",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "5fdb7d8752f9a8315a5f94a32b5db368",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "433dae3372f05c7faf75658c6f962be1",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "d66d0201decc90f677520f41ac227a71",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "37efebdbd1866b71ac324f5ca949151a",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "5ccfadd91168c07956328dd11b118b28",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "404d9db4de7089346264f3f62dbb6d88",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "ef3dda575b711a0fa515f93ebd0a7379",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "8ee2be9a35e12158c0ace56b04a3ea99",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "1c305bde639f5fc76e908a3a3fb9203f",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "e58ce9a499068e682295dd3d88a0801d",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "38a2c503c8d892d7e94cd53fb4da5b48",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "deea2cf3afb5598ed9eb6ce4798b1cef",
|
||||
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "a3607fd941915ab11503f82acfc392b5",
|
||||
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "b5a129d83796c9e7015ab5e319d2c22f",
|
||||
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "a3607fd941915ab11503f82acfc392b5",
|
||||
@ -4100,14 +4100,14 @@
|
||||
"build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "c5c40967e63471c9c4abd6dfbef892df",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "d34c0a142e7d391a109a33ea3cc77c08",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "c5c40967e63471c9c4abd6dfbef892df",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "13a3bb41dda8cfdb3ffdbc57a0390275",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "042ff1129bab0def6bf90250b5c08a32",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "699ab8e6fd3e8517acac76cd5b40dfbc",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "5b53317f8900cab59288be44b353dffc",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "978ea0ba60c026efd45729cd48c0feba",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "1fb524f11277090440cda18bfc3ee3a0",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "91452d47e879acd0d7fdd06a44fbcfed",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "7e9469f3cac9ab85c5e9d1256679604c",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "9d23a52a0c270710332bf35297db9f36",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "61d84134e4088e5138ceb200ba20960b",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "a7a9854fb6f114ac3f3f35c451170328",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "f5a2d196943141917b1ee0f3beb1f5eb",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "ec0052c95df6ea5cb3bdcaabcb1ea55c",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "d21984e95164c4e7df91b35a60828fc7",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "b613c7699c66c9a2a17bf9360015ade0",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "6f907f7940d2f5e44874e24f9a1856a0",
|
||||
"src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c",
|
||||
"src/assets/ba_data/python/babase/_mgen/enums.py": "f8cd3af311ac63147882590123b78318",
|
||||
"src/ballistica/base/mgen/pyembed/binding_base.inc": "ad347097a38e0d7ede9eb6dec6a80ee9",
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
### 1.7.28 (build 21303, api 8, 2023-09-01)
|
||||
### 1.7.28 (build 21306, api 8, 2023-09-06)
|
||||
|
||||
- Added some high level functionality for copying and deleting feature-sets to
|
||||
the `spinoff` tool. For example, to create your own `poo` feature-set based on
|
||||
@ -14,6 +14,8 @@
|
||||
prefab-server-release-build` you should see just a few file downloads
|
||||
happening instead of the hundreds that would happen before, which should be
|
||||
significantly faster & more efficient.
|
||||
- Updated internal Python builds for Apple & iOS to 3.11.5, and updated a few
|
||||
dependent libraries as well (OpenSSL bumped from 3.0.8 to 3.0.10, etc.).
|
||||
|
||||
### 1.7.27 (build 21282, api 8, 2023-08-30)
|
||||
|
||||
|
||||
81
Makefile
81
Makefile
@ -186,10 +186,10 @@ pcommandbatch_speed_test: prereqs
|
||||
|
||||
# Tell make which of these targets don't represent files.
|
||||
.PHONY: help prereqs prereqs-pre-update prereqs-clean assets assets-cmake \
|
||||
assets-cmake-scripts assets-windows assets-windows-Win32 assets-windows-x64 \
|
||||
assets-mac assets-ios assets-android assets-clean resources resources-clean \
|
||||
meta meta-clean clean clean-list dummymodules docs docs-pdoc \
|
||||
pcommandbatch_speed_test
|
||||
assets-cmake-scripts assets-windows assets-windows-Win32 \
|
||||
assets-windows-x64 assets-mac assets-ios assets-android assets-clean \
|
||||
resources resources-clean meta meta-clean clean clean-list \
|
||||
dummymodules docs docs-pdoc pcommandbatch_speed_test
|
||||
|
||||
|
||||
################################################################################
|
||||
@ -585,31 +585,35 @@ build/prefab/lib/windows/Release_%/BallisticaKitHeadlessPlus.pdb: .efrocachemap
|
||||
@$(PCOMMANDBATCH) efrocache_get $@
|
||||
|
||||
# Tell make which of these targets don't represent files.
|
||||
.PHONY: prefab-gui-debug prefab-gui-release prefab-gui-debug-build \
|
||||
prefab-gui-release-build prefab-server-debug prefab-server-release \
|
||||
prefab-server-debug-build prefab-server-release-build prefab-clean \
|
||||
_cmake_prefab_gui_binary _cmake_prefab_server_binary \
|
||||
prefab-mac-x86-64-gui-debug prefab-mac-arm64-gui-debug \
|
||||
prefab-mac-x86-64-gui-debug-build prefab-mac-arm64-gui-debug-build \
|
||||
prefab-mac-x86-64-gui-release prefab-mac-arm64-gui-release \
|
||||
prefab-mac-x86-64-gui-release-build prefab-mac-arm64-gui-release-build \
|
||||
prefab-mac-x86-64-server-debug prefab-mac-arm64-server-debug \
|
||||
prefab-mac-x86-64-server-debug-build prefab-mac-arm64-server-debug-build \
|
||||
prefab-mac-x86-64-server-release prefab-mac-arm64-server-release \
|
||||
prefab-mac-x86-64-server-release-build prefab-mac-arm64-server-release-build \
|
||||
prefab-linux-x86-64-gui-debug prefab-linux-arm64-gui-debug \
|
||||
prefab-linux-x86-64-gui-debug-build prefab-linux-arm64-gui-debug-build \
|
||||
prefab-linux-x86-64-gui-release prefab-linux-arm64-gui-release \
|
||||
prefab-linux-x86-64-gui-release-build prefab-linux-arm64-gui-release-build \
|
||||
prefab-linux-x86-64-server-debug prefab-linux-arm64-server-debug \
|
||||
prefab-linux-x86-64-server-debug-build prefab-linux-arm64-server-debug-build \
|
||||
prefab-linux-x86-64-server-release prefab-linux-arm64-server-release \
|
||||
prefab-linux-x86-64-server-release-build \
|
||||
prefab-linux-arm64-server-release-build \
|
||||
prefab-windows-x86-gui-debug prefab-windows-x86-gui-debug-build \
|
||||
prefab-windows-x86-gui-release prefab-windows-x86-gui-release-build \
|
||||
prefab-windows-x86-server-debug prefab-windows-x86-server-debug-build \
|
||||
prefab-windows-x86-server-release prefab-windows-x86-server-release-build
|
||||
.PHONY: prefab-gui-debug prefab-gui-release prefab-gui-debug-build \
|
||||
prefab-gui-release-build prefab-server-debug prefab-server-release \
|
||||
prefab-server-debug-build prefab-server-release-build prefab-clean \
|
||||
_cmake_prefab_gui_binary _cmake_prefab_server_binary \
|
||||
prefab-mac-x86-64-gui-debug prefab-mac-arm64-gui-debug \
|
||||
prefab-mac-x86-64-gui-debug-build prefab-mac-arm64-gui-debug-build \
|
||||
prefab-mac-x86-64-gui-release prefab-mac-arm64-gui-release \
|
||||
prefab-mac-x86-64-gui-release-build \
|
||||
prefab-mac-arm64-gui-release-build prefab-mac-x86-64-server-debug \
|
||||
prefab-mac-arm64-server-debug prefab-mac-x86-64-server-debug-build \
|
||||
prefab-mac-arm64-server-debug-build prefab-mac-x86-64-server-release \
|
||||
prefab-mac-arm64-server-release \
|
||||
prefab-mac-x86-64-server-release-build \
|
||||
prefab-mac-arm64-server-release-build prefab-linux-x86-64-gui-debug \
|
||||
prefab-linux-arm64-gui-debug prefab-linux-x86-64-gui-debug-build \
|
||||
prefab-linux-arm64-gui-debug-build prefab-linux-x86-64-gui-release \
|
||||
prefab-linux-arm64-gui-release prefab-linux-x86-64-gui-release-build \
|
||||
prefab-linux-arm64-gui-release-build prefab-linux-x86-64-server-debug \
|
||||
prefab-linux-arm64-server-debug \
|
||||
prefab-linux-x86-64-server-debug-build \
|
||||
prefab-linux-arm64-server-debug-build \
|
||||
prefab-linux-x86-64-server-release prefab-linux-arm64-server-release \
|
||||
prefab-linux-x86-64-server-release-build \
|
||||
prefab-linux-arm64-server-release-build prefab-windows-x86-gui-debug \
|
||||
prefab-windows-x86-gui-debug-build prefab-windows-x86-gui-release \
|
||||
prefab-windows-x86-gui-release-build prefab-windows-x86-server-debug \
|
||||
prefab-windows-x86-server-debug-build \
|
||||
prefab-windows-x86-server-release \
|
||||
prefab-windows-x86-server-release-build
|
||||
|
||||
|
||||
################################################################################
|
||||
@ -751,8 +755,8 @@ format-scripts-full: prereqs
|
||||
format-makefile: prereqs
|
||||
@$(PCOMMAND) formatmakefile
|
||||
|
||||
.PHONY: format format-full format-code format-code-full format-scripts \
|
||||
format-scripts-full
|
||||
.PHONY: format format-full format-code format-code-full format-scripts \
|
||||
format-scripts-full
|
||||
|
||||
|
||||
################################################################################
|
||||
@ -841,9 +845,9 @@ pycharm-full: py_check_prereqs
|
||||
py_check_prereqs: dummymodules
|
||||
|
||||
# Tell make which of these targets don't represent files.
|
||||
.PHONY: check check-full check2 check2-full \
|
||||
cpplint cpplint-full pylint pylint-full mypy \
|
||||
mypy-full dmypy dmypy-stop pycharm pycharm-full py_check_prereqs
|
||||
.PHONY: check check-full check2 check2-full cpplint cpplint-full pylint \
|
||||
pylint-full mypy mypy-full dmypy dmypy-stop pycharm pycharm-full \
|
||||
py_check_prereqs
|
||||
|
||||
|
||||
################################################################################
|
||||
@ -1137,10 +1141,11 @@ clion-staging: assets-cmake resources meta
|
||||
$(STAGE_BUILD) -cmake -release build/clion_release
|
||||
|
||||
# Tell make which of these targets don't represent files.
|
||||
.PHONY: cmake cmake-build cmake-clean cmake-server cmake-server-build \
|
||||
cmake-server-clean cmake-modular-build cmake-modular cmake-modular-binary \
|
||||
cmake-modular-clean cmake-modular-server cmake-modular-server-build \
|
||||
cmake-modular-server-binary cmake-modular-server-clean clion-staging
|
||||
.PHONY: cmake cmake-build cmake-clean cmake-server cmake-server-build \
|
||||
cmake-server-clean cmake-modular-build cmake-modular \
|
||||
cmake-modular-binary cmake-modular-clean cmake-modular-server \
|
||||
cmake-modular-server-build cmake-modular-server-binary \
|
||||
cmake-modular-server-clean clion-staging
|
||||
|
||||
|
||||
################################################################################
|
||||
|
||||
@ -18,6 +18,10 @@
|
||||
"src/ballistica/base/platform/oculus/main_rift.cc",
|
||||
"src/ballistica/core/platform/android/android_gl3.c"
|
||||
],
|
||||
"default_app_modes": [
|
||||
"bascenev1.SceneV1AppMode",
|
||||
"babase.EmptyAppMode"
|
||||
],
|
||||
"efrocache_repository_url": "https://files.ballistica.net/cache/ba1",
|
||||
"name": "BallisticaKit",
|
||||
"public": true,
|
||||
|
||||
@ -97,19 +97,16 @@ class App:
|
||||
SHUTTING_DOWN = 6
|
||||
|
||||
class DefaultAppModeSelector(AppModeSelector):
|
||||
"""Decides which app modes to use to handle intents.
|
||||
"""Decides which AppModes to use to handle AppIntents.
|
||||
|
||||
The behavior here is generated by the project updater based on
|
||||
the feature-sets present in the project. Spinoff projects can
|
||||
also inject their own behavior by replacing the text
|
||||
'__GOOD_PLACE_FOR_CUSTOM_SPINOFF_LOGIC__' with their own code
|
||||
through spinoff filtering.
|
||||
This default version is generated by the project updater based
|
||||
on the 'default_app_modes' value in the projectconfig.
|
||||
|
||||
It is also possible to modify mode selection behavior by writing
|
||||
a custom AppModeSelector class and replacing app.mode_selector
|
||||
with an instance of it. This is a good way to go if you are
|
||||
modifying app behavior with a plugin instead of in a spinoff
|
||||
project.
|
||||
It is also possible to modify app mode selection behavior by
|
||||
setting app.mode_selector to an instance of a custom
|
||||
AppModeSelector subclass. This is a good way to go if you are
|
||||
modifying app behavior dynamically via a plugin instead of
|
||||
statically in a spinoff project.
|
||||
"""
|
||||
|
||||
def app_mode_for_intent(
|
||||
@ -117,16 +114,12 @@ class App:
|
||||
) -> type[AppMode] | None:
|
||||
# pylint: disable=cyclic-import
|
||||
|
||||
# __GOOD_PLACE_FOR_CUSTOM_SPINOFF_LOGIC__
|
||||
|
||||
# __DEFAULT_APP_MODE_SELECTION_BEGIN__
|
||||
# This section generated by batools.appmodule; do not edit.
|
||||
|
||||
# Hmm; need to think about how we auto-construct this; how
|
||||
# should we determine which app modes to check and in what
|
||||
# order?
|
||||
# Ask our default app modes to handle it.
|
||||
# (based on 'default_app_modes' in projectconfig).
|
||||
import bascenev1
|
||||
|
||||
import babase
|
||||
|
||||
if bascenev1.SceneV1AppMode.can_handle_intent(intent):
|
||||
@ -135,7 +128,7 @@ class App:
|
||||
if babase.EmptyAppMode.can_handle_intent(intent):
|
||||
return babase.EmptyAppMode
|
||||
|
||||
raise RuntimeError(f'No handler found for intent {type(intent)}.')
|
||||
return None
|
||||
|
||||
# __DEFAULT_APP_MODE_SELECTION_END__
|
||||
|
||||
@ -246,12 +239,6 @@ class App:
|
||||
|
||||
@mode_selector.setter
|
||||
def mode_selector(self, selector: babase.AppModeSelector) -> None:
|
||||
# Don't allow overriding this until after we've initially set it.
|
||||
if self._mode_selector is None:
|
||||
raise RuntimeError(
|
||||
'mode_selector cannot be used until the app reaches'
|
||||
' the running state.'
|
||||
)
|
||||
self._mode_selector = selector
|
||||
|
||||
# __FEATURESET_APP_SUBSYSTEM_PROPERTIES_BEGIN__
|
||||
@ -332,10 +319,13 @@ class App:
|
||||
_babase.run_app()
|
||||
|
||||
def threadpool_submit_no_wait(self, call: Callable[[], Any]) -> None:
|
||||
"""Submit work to our threadpool and log any errors.
|
||||
"""Submit a call to the app threadpool where result is not needed.
|
||||
|
||||
Use this when you want to run something asynchronously but don't
|
||||
intend to call result() on it to handle errors/etc.
|
||||
Normally, doing work in a thread-pool involves creating a future
|
||||
and waiting for its result, which is an important step because it
|
||||
propagates any Exceptions raised by the submitted work. When the
|
||||
result in not important, however, this call can be used. The app
|
||||
will log any exceptions that occur.
|
||||
"""
|
||||
fut = self.threadpool.submit(call)
|
||||
fut.add_done_callback(self._threadpool_no_wait_done)
|
||||
@ -635,9 +625,10 @@ class App:
|
||||
# Let our native layer know.
|
||||
_babase.on_app_running()
|
||||
|
||||
# Set a default app-mode-selector. Plugins can then override
|
||||
# this if they want in the on_app_running callback below.
|
||||
self._mode_selector = self.DefaultAppModeSelector()
|
||||
# Set a default app-mode-selector if none has been set yet
|
||||
# by a plugin or whatnot.
|
||||
if self._mode_selector is None:
|
||||
self._mode_selector = self.DefaultAppModeSelector()
|
||||
|
||||
# Inform all app subsystems in the same order they were
|
||||
# registered. Operate on a copy here because subsystems can
|
||||
|
||||
@ -52,7 +52,7 @@ if TYPE_CHECKING:
|
||||
|
||||
# Build number and version of the ballistica binary we expect to be
|
||||
# using.
|
||||
TARGET_BALLISTICA_BUILD = 21303
|
||||
TARGET_BALLISTICA_BUILD = 21306
|
||||
TARGET_BALLISTICA_VERSION = '1.7.28'
|
||||
|
||||
|
||||
|
||||
@ -718,7 +718,10 @@ auto BaseFeatureSet::IsAppStarted() const -> bool { return app_started_; }
|
||||
|
||||
auto BaseFeatureSet::ShutdownSuppressBegin() -> bool {
|
||||
std::scoped_lock lock(shutdown_suppress_lock_);
|
||||
if (!shutdown_suppress_disallowed_) {
|
||||
|
||||
// Once shutdown has begun, we no longer allow things that would
|
||||
// suppress it. Tell the caller to abort what they're trying to do.
|
||||
if (shutdown_suppress_disallowed_) {
|
||||
return false;
|
||||
}
|
||||
shutdown_suppress_count_++;
|
||||
|
||||
@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int {
|
||||
namespace ballistica {
|
||||
|
||||
// These are set automatically via script; don't modify them here.
|
||||
const int kEngineBuildNumber = 21303;
|
||||
const int kEngineBuildNumber = 21306;
|
||||
const char* kEngineVersion = "1.7.28";
|
||||
const int kEngineApiVersion = 8;
|
||||
|
||||
|
||||
@ -21,6 +21,7 @@ def generate_app_module(
|
||||
|
||||
# pylint: disable=too-many-locals
|
||||
# pylint: disable=too-many-branches
|
||||
# pylint: disable=too-many-statements
|
||||
import textwrap
|
||||
|
||||
from efrotools import replace_section
|
||||
@ -154,15 +155,21 @@ def generate_app_module(
|
||||
)
|
||||
|
||||
# Generate default app-mode-selection logic.
|
||||
# TODO - make this customizable via project settings or whatnot.
|
||||
contents = (
|
||||
'# Hmm; need to think about how we auto-construct this; how\n'
|
||||
'# should we determine which app modes to check and in what\n'
|
||||
'# order?\n'
|
||||
'# Ask our default app modes to handle it.\n'
|
||||
"# (based on 'default_app_modes' in projectconfig).\n"
|
||||
)
|
||||
imports: list[str] = []
|
||||
if 'scene_v1' in fsets:
|
||||
contents += 'import bascenev1\n\n'
|
||||
imports.append('bascenev1')
|
||||
if 'base' in fsets:
|
||||
contents += 'import babase\n\n'
|
||||
imports.append('babase')
|
||||
|
||||
for imp in imports:
|
||||
contents += f'import {imp}\n'
|
||||
|
||||
contents += '\n'
|
||||
|
||||
if 'scene_v1' in fsets:
|
||||
contents += (
|
||||
@ -174,10 +181,7 @@ def generate_app_module(
|
||||
'if babase.EmptyAppMode.can_handle_intent(intent):\n'
|
||||
' return babase.EmptyAppMode\n\n'
|
||||
)
|
||||
contents += (
|
||||
"raise RuntimeError(f'No handler found for"
|
||||
" intent {type(intent)}.')\n"
|
||||
)
|
||||
contents += 'return None\n'
|
||||
|
||||
indent = ' '
|
||||
out = replace_section(
|
||||
|
||||
@ -563,58 +563,59 @@ def _print_available_commands() -> None:
|
||||
print(
|
||||
(
|
||||
'Available commands:\n'
|
||||
f' {bgn}status{end} '
|
||||
f' {bgn}status{end} '
|
||||
'Print list of files update would affect.\n'
|
||||
f' {bgn}diff{end} '
|
||||
f' {bgn}diff{end} '
|
||||
'Print diffs for what update would do.\n'
|
||||
f' {bgn}update{end} '
|
||||
f' {bgn}update{end} '
|
||||
'Sync all spinoff files from src project.\n'
|
||||
f' {bgn}check{end} '
|
||||
f' {bgn}check{end} '
|
||||
'Make sure everything is kosher.\n'
|
||||
f' {bgn}clean{end} '
|
||||
f' {bgn}clean{end} '
|
||||
'Remove all spinoff files'
|
||||
' (minus a few exceptions such\n'
|
||||
' as .gitignore).\n'
|
||||
f' {bgn}cleanlist{end} '
|
||||
' as .gitignore).\n'
|
||||
f' {bgn}cleanlist{end} '
|
||||
'Shows what clean would do.\n'
|
||||
f' {bgn}override [file...]{end} '
|
||||
f' {bgn}override [file...]{end} '
|
||||
'Remove files from spinoff, leaving local copies in place.\n'
|
||||
f' {bgn}backport [file]{end} '
|
||||
f' {bgn}backport [file]{end} '
|
||||
'Help get changes to spinoff dst files back to src.\n'
|
||||
f' {bgn}create [name, path]{end} '
|
||||
f' {bgn}create [name, path]{end} '
|
||||
'Create a new spinoff project based on this src one.\n'
|
||||
' Name should be passed in CamelCase form.\n'
|
||||
' By default, includes all feature-sets from'
|
||||
' Name should be passed in CamelCase form.\n'
|
||||
' By default, includes all feature-sets from'
|
||||
' src.\n'
|
||||
' Pass --featuresets a,b to specify included'
|
||||
' Pass --featuresets a,b to specify included'
|
||||
' feature-sets.\n'
|
||||
" Use 'none' or an empty string for no"
|
||||
" Use 'none' or an empty string for no"
|
||||
' featuresets.\n'
|
||||
' Pass --noninteractive to suppress help'
|
||||
' Pass --noninteractive to suppress help'
|
||||
' messages.\n'
|
||||
' By default, the spinoff project will'
|
||||
' By default, the spinoff project will'
|
||||
' directly access this\n'
|
||||
' parent project via a local symlink. To'
|
||||
' parent project via a local symlink. To'
|
||||
' instead set up a\n'
|
||||
' git submodule at \'submodules/ballistica\''
|
||||
' git submodule at \'submodules/ballistica\''
|
||||
' in the spinoff\n'
|
||||
' project, pass --submodule-parent.\n'
|
||||
f' {bgn}add-submodule-parent{end} Adds a git submodule parent'
|
||||
' project, pass --submodule-parent.\n'
|
||||
f' {bgn}add-submodule-parent{end} Adds a git submodule parent'
|
||||
' to an already existing dst\n'
|
||||
' project in the current directory.'
|
||||
' project in the current directory.'
|
||||
' The same can be\n'
|
||||
' achieved by passing --submodule-parent to'
|
||||
' achieved by passing --submodule-parent to'
|
||||
' the \'create\'\n'
|
||||
' command.\n'
|
||||
f' {bgn}fset-list{end} '
|
||||
' command.\n'
|
||||
f' {bgn}fset-list{end} '
|
||||
'List featuresets present in the current project.\n'
|
||||
f' {bgn}fset-copy [src, dst]{end} Copy feature-set src to dst'
|
||||
f' {bgn}fset-copy [src, dst]{end} Copy feature-set src to dst'
|
||||
' in the current project.\n'
|
||||
' Replaces variations of src feature-set'
|
||||
' name with equivalent from dst, though may need\n'
|
||||
' some manual correction afterwards to be'
|
||||
' Replaces variations of src feature-set'
|
||||
' name with\n'
|
||||
' equivalent from dst, though may need\n'
|
||||
' some manual correction afterwards to be'
|
||||
' functional.\n'
|
||||
f' {bgn}fset-delete [name]{end} Delete a feature-set from the'
|
||||
f' {bgn}fset-delete [name]{end} Delete a feature-set from the'
|
||||
' current project.'
|
||||
),
|
||||
file=sys.stderr,
|
||||
|
||||
@ -183,13 +183,13 @@ def get_public_license(style: str) -> str:
|
||||
|
||||
|
||||
def readfile(path: str | Path) -> str:
|
||||
"""Read a text file and return a str."""
|
||||
"""Read a utf-8 text file into a string."""
|
||||
with open(path, encoding='utf-8') as infile:
|
||||
return infile.read()
|
||||
|
||||
|
||||
def writefile(path: str | Path, txt: str) -> None:
|
||||
"""Write a string to a file."""
|
||||
"""Write a string to a utf-8 text file."""
|
||||
with open(path, 'w', encoding='utf-8') as outfile:
|
||||
outfile.write(txt)
|
||||
|
||||
|
||||
@ -9,35 +9,55 @@ import os
|
||||
import subprocess
|
||||
from enum import Enum
|
||||
from dataclasses import dataclass
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from efrotools import readfile, writefile, replace_exact
|
||||
|
||||
if TYPE_CHECKING:
|
||||
pass
|
||||
|
||||
# Python version we build here (not necessarily same as we use in repo).
|
||||
PY_VER_ANDROID = '3.11'
|
||||
PY_VER_EXACT_ANDROID = '3.11.4'
|
||||
PY_VER_EXACT_ANDROID = '3.11.5'
|
||||
PY_VER_APPLE = '3.11'
|
||||
PY_VER_EXACT_APPLE = '3.11.3'
|
||||
PY_VER_EXACT_APPLE = '3.11.5'
|
||||
|
||||
# Can bump these up to whatever the min we need is. Though perhaps
|
||||
# leaving them at what the repo uses would lead to fewer build issues.
|
||||
VERSION_MIN_MACOS = '10.15'
|
||||
VERSION_MIN_IOS = '12.0'
|
||||
VERSION_MIN_TVOS = '9.0'
|
||||
|
||||
# I occasionally run into openssl problems (particularly on arm systems)
|
||||
# so keeping exact control of the versions we're building here to try
|
||||
# and minimize it.
|
||||
#
|
||||
# Earlier I ran into an issue with android builds testing while OpenSSL
|
||||
# was probing for ARMV7_TICK instruction presence (see android_patch_ssl here),
|
||||
# and more recently I'm seeing a similar thing in 3.1.0 with arm_v8_sve_probe
|
||||
# on mac. Ugh.
|
||||
# was probing for ARMV7_TICK instruction presence (see android_patch_ssl
|
||||
# here), and more recently I'm seeing a similar thing in 3.1.0 with
|
||||
# arm_v8_sve_probe on mac. Ugh.
|
||||
#
|
||||
# See https://stackoverflow.com/questions/74059978/
|
||||
# why-is-lldb-generating-exc-bad-instruction-with-user-compiled-library-on-macos
|
||||
OPENSSL_VER_APPLE = '3.0.8'
|
||||
OPENSSL_VER_ANDROID = '3.0.8'
|
||||
#
|
||||
# For now will try to ride out this LTS version as long as possible.
|
||||
OPENSSL_VER_APPLE = '3.0.10'
|
||||
OPENSSL_VER_ANDROID = '3.0.10'
|
||||
|
||||
LIBFFI_VER_APPLE = '3.4.4'
|
||||
BZIP2_VER_APPLE = '1.0.8'
|
||||
XZ_VER_APPLE = '5.4.4'
|
||||
|
||||
# Android repo doesn't seem to be getting updated much so manually
|
||||
# bumping various versions to keep things up to date.
|
||||
ZLIB_VER_ANDROID = '1.3'
|
||||
XZ_VER_ANDROID = '5.4.4'
|
||||
BZIP2_VER_ANDROID = '1.0.8'
|
||||
GDBM_VER_ANDROID = '1.23'
|
||||
LIBFFI_VER_ANDROID = '3.4.4'
|
||||
LIBUUID_VER_ANDROID = ('2.38', '2.38.1')
|
||||
NCURSES_VER_ANDROID = '6.3'
|
||||
READLINE_VER_ANDROID = '8.2'
|
||||
SQLITE_VER_ANDROID = ('2023', '3430000')
|
||||
|
||||
# Filenames we prune from Python lib dirs in source repo to cut down on size.
|
||||
# Filenames we prune from Python lib dirs in source repo to cut down on
|
||||
# size.
|
||||
PRUNE_LIB_NAMES = [
|
||||
'msilib',
|
||||
'__phello__',
|
||||
@ -75,12 +95,13 @@ def build_apple(arch: str, debug: bool = False) -> None:
|
||||
import platform
|
||||
from efro.error import CleanError
|
||||
|
||||
# IMPORTANT; seems we currently wind up building against /usr/local gettext
|
||||
# stuff. Hopefully the maintainer fixes this, but for now I need to
|
||||
# remind myself to blow it away while building.
|
||||
# (via brew remove gettext --ignore-dependencies)
|
||||
# NOTE: Should check to see if this is still necessary on Apple silicon
|
||||
# since homebrew stuff is no longer in /usr/local there.
|
||||
# IMPORTANT; seems we currently wind up building against /usr/local
|
||||
# gettext stuff. Hopefully the maintainer fixes this, but for now I
|
||||
# need to remind myself to blow it away while building. (via brew
|
||||
# remove gettext --ignore-dependencies)
|
||||
#
|
||||
# NOTE: Should check to see if this is still necessary on Apple
|
||||
# silicon since homebrew stuff is no longer in /usr/local there.
|
||||
if bool(False):
|
||||
if (
|
||||
'MacBook-Fro' in platform.node()
|
||||
@ -96,7 +117,7 @@ def build_apple(arch: str, debug: bool = False) -> None:
|
||||
'NEED TO TEMP-KILL GETTEXT (or set SKIP_GETTEXT_WARNING=1)'
|
||||
)
|
||||
|
||||
builddir = 'build/python_apple_' + arch + ('_debug' if debug else '')
|
||||
builddir = f'build/python_apple_{arch}' + ('_debug' if debug else '')
|
||||
subprocess.run(['rm', '-rf', builddir], check=True)
|
||||
subprocess.run(['mkdir', '-p', 'build'], check=True)
|
||||
subprocess.run(
|
||||
@ -110,10 +131,11 @@ def build_apple(arch: str, debug: bool = False) -> None:
|
||||
)
|
||||
os.chdir(builddir)
|
||||
|
||||
# TEMP: Check out a particular commit while the branch head is broken.
|
||||
# We can actually fix this to use the current one, but something
|
||||
# broke in the underlying build even on old commits so keeping it
|
||||
# locked for now...
|
||||
# TEMP: Check out a particular commit while the branch head is
|
||||
# broken. We can actually fix this to use the current one, but
|
||||
# something broke in the underlying build even on old commits so
|
||||
# keeping it locked for now...
|
||||
#
|
||||
# run('git checkout bf1ed73d0d5ff46862ba69dd5eb2ffaeff6f19b6')
|
||||
|
||||
# Grab the branch corresponding to our target python version.
|
||||
@ -121,30 +143,55 @@ def build_apple(arch: str, debug: bool = False) -> None:
|
||||
|
||||
txt = readfile('Makefile')
|
||||
|
||||
# Turn doc strings on; looks like it only adds a few hundred k.
|
||||
# txt = replace_exact(
|
||||
# txt, '--without-doc-strings', '--with-doc-strings', count=2
|
||||
# )
|
||||
# Sanity check; we don't actually change Python version for these
|
||||
# builds but we need to make sure exactly what version the repo is
|
||||
# building (for path purposes and whatnot).
|
||||
if f'\nPYTHON_VERSION={PY_VER_EXACT_APPLE}\n' not in txt:
|
||||
raise RuntimeError(
|
||||
'Does not look like our PY_VER_EXACT_APPLE matches the repo;'
|
||||
f' please update it in {__name__}.'
|
||||
)
|
||||
|
||||
# Customize our minimum version requirements
|
||||
# Same for ffi version.
|
||||
if f'\nLIBFFI_VERSION={LIBFFI_VER_APPLE}\n' not in txt:
|
||||
raise RuntimeError(
|
||||
'Does not look like our LIBFFI_VER_APPLE matches the repo;'
|
||||
f' please update it in {__name__}.'
|
||||
)
|
||||
|
||||
# Same for bzip2 version.
|
||||
if f'\nBZIP2_VERSION={BZIP2_VER_APPLE}\n' not in txt:
|
||||
raise RuntimeError(
|
||||
'Does not look like our BZIP2_VERSION matches the repo;'
|
||||
f' please update it in {__name__}.'
|
||||
)
|
||||
|
||||
# Same for xz version.
|
||||
if f'\nXZ_VERSION={XZ_VER_APPLE}\n' not in txt:
|
||||
raise RuntimeError(
|
||||
'Does not look like our XZ_VER_APPLE matches the repo;'
|
||||
f' please update it in {__name__}.'
|
||||
)
|
||||
|
||||
# Customize our minimum OS version requirements.
|
||||
txt = replace_exact(
|
||||
txt,
|
||||
'VERSION_MIN-macOS=10.15\n',
|
||||
'VERSION_MIN-macOS=10.15\n',
|
||||
f'VERSION_MIN-macOS={VERSION_MIN_MACOS}\n',
|
||||
)
|
||||
txt = replace_exact(
|
||||
txt,
|
||||
'VERSION_MIN-iOS=12.0\n',
|
||||
'VERSION_MIN-iOS=12.0\n',
|
||||
f'VERSION_MIN-iOS={VERSION_MIN_IOS}\n',
|
||||
)
|
||||
txt = replace_exact(
|
||||
txt,
|
||||
'VERSION_MIN-tvOS=9.0\n',
|
||||
'VERSION_MIN-tvOS=9.0\n',
|
||||
f'VERSION_MIN-tvOS={VERSION_MIN_TVOS}\n',
|
||||
)
|
||||
txt = replace_exact(
|
||||
txt,
|
||||
'OPENSSL_VERSION=3.1.0\n',
|
||||
'OPENSSL_VERSION=3.1.2\n',
|
||||
f'OPENSSL_VERSION={OPENSSL_VER_APPLE}\n',
|
||||
)
|
||||
|
||||
@ -227,9 +274,10 @@ def build_apple(arch: str, debug: bool = False) -> None:
|
||||
writefile('Makefile', txt)
|
||||
|
||||
# Ok; let 'er rip.
|
||||
# (we run these in parallel so limit to 1 job a piece;
|
||||
# otherwise they inherit the -j12 or whatever from the top level)
|
||||
# (also this build seems to fail with multiple threads)
|
||||
#
|
||||
# (we run these in parallel so limit to 1 job a piece; otherwise
|
||||
# they inherit the -j12 or whatever from the top level) (also this
|
||||
# build seems to fail with multiple threads)
|
||||
subprocess.run(
|
||||
[
|
||||
'make',
|
||||
@ -249,7 +297,7 @@ def build_android(rootdir: str, arch: str, debug: bool = False) -> None:
|
||||
(can be arm, arm64, x86, or x86_64)
|
||||
"""
|
||||
|
||||
builddir = 'build/python_android_' + arch + ('_debug' if debug else '')
|
||||
builddir = f'build/python_android_{arch}' + ('_debug' if debug else '')
|
||||
subprocess.run(['rm', '-rf', builddir], check=True)
|
||||
subprocess.run(['mkdir', '-p', 'build'], check=True)
|
||||
subprocess.run(
|
||||
@ -310,6 +358,72 @@ def build_android(rootdir: str, arch: str, debug: bool = False) -> None:
|
||||
count=1,
|
||||
)
|
||||
|
||||
# Set specific BZip2 version.
|
||||
ftxt = replace_exact(
|
||||
ftxt,
|
||||
"source = 'https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz'",
|
||||
f'source = '
|
||||
f"'https://sourceware.org/pub/bzip2/bzip2-{BZIP2_VER_ANDROID}.tar.gz'",
|
||||
count=1,
|
||||
)
|
||||
|
||||
# Set specific GDBM version.
|
||||
ftxt = replace_exact(
|
||||
ftxt,
|
||||
"source = 'https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz'",
|
||||
"source = 'https://ftp.gnu.org/"
|
||||
f"gnu/gdbm/gdbm-{GDBM_VER_ANDROID}.tar.gz'",
|
||||
count=1,
|
||||
)
|
||||
|
||||
# Set specific libffi version.
|
||||
ftxt = replace_exact(
|
||||
ftxt,
|
||||
"source = 'https://github.com/libffi/libffi/releases/"
|
||||
"download/v3.4.4/libffi-3.4.4.tar.gz'",
|
||||
"source = 'https://github.com/libffi/libffi/releases/"
|
||||
f"download/v{LIBFFI_VER_ANDROID}/libffi-{LIBFFI_VER_ANDROID}.tar.gz'",
|
||||
)
|
||||
|
||||
# Set specific LibUUID version.
|
||||
ftxt = replace_exact(
|
||||
ftxt,
|
||||
"source = 'https://mirrors.edge.kernel.org/pub/linux/utils/"
|
||||
"util-linux/v2.38/util-linux-2.38.1.tar.xz'",
|
||||
"source = 'https://mirrors.edge.kernel.org/pub/linux/utils/"
|
||||
f'util-linux/v{LIBUUID_VER_ANDROID[0]}/'
|
||||
f"util-linux-{LIBUUID_VER_ANDROID[1]}.tar.xz'",
|
||||
count=1,
|
||||
)
|
||||
|
||||
# Set specific NCurses version.
|
||||
ftxt = replace_exact(
|
||||
ftxt,
|
||||
"source = 'https://ftp.gnu.org/gnu/ncurses/ncurses-6.3.tar.gz'",
|
||||
"source = 'https://ftp.gnu.org/gnu/ncurses/"
|
||||
f"ncurses-{NCURSES_VER_ANDROID}.tar.gz'",
|
||||
count=1,
|
||||
)
|
||||
|
||||
# Set specific ReadLine version.
|
||||
ftxt = replace_exact(
|
||||
ftxt,
|
||||
"source = 'https://ftp.gnu.org/gnu/readline/readline-8.2.tar.gz'",
|
||||
"source = 'https://ftp.gnu.org/gnu/readline/"
|
||||
f"readline-{READLINE_VER_ANDROID}.tar.gz'",
|
||||
count=1,
|
||||
)
|
||||
|
||||
# Set specific SQLite version.
|
||||
ftxt = replace_exact(
|
||||
ftxt,
|
||||
"source = 'https://sqlite.org/2022/sqlite-autoconf-3390400.tar.gz'",
|
||||
"source = 'https://sqlite.org/"
|
||||
f'{SQLITE_VER_ANDROID[0]}/'
|
||||
f"sqlite-autoconf-{SQLITE_VER_ANDROID[1]}.tar.gz'",
|
||||
count=1,
|
||||
)
|
||||
|
||||
# Give ourselves a handle to patch the OpenSSL build.
|
||||
ftxt = replace_exact(
|
||||
ftxt,
|
||||
@ -358,11 +472,11 @@ def patch_modules_setup(python_dir: str, baseplatform: str) -> None:
|
||||
|
||||
assert ' ' not in python_dir
|
||||
|
||||
# Use the shiny new Setup.stdlib setup (Sounds like this will be default
|
||||
# in the future?). It looks like by mucking with Setup.stdlib.in we can
|
||||
# make pretty minimal changes to get the results we want without having
|
||||
# to inject platform-specific linker flags and whatnot like we had to
|
||||
# previously.
|
||||
# Use the shiny new Setup.stdlib setup (Sounds like this will be
|
||||
# default in the future?). It looks like by mucking with
|
||||
# Setup.stdlib.in we can make pretty minimal changes to get the
|
||||
# results we want without having to inject platform-specific linker
|
||||
# flags and whatnot like we had to previously.
|
||||
subprocess.run(
|
||||
f'cd {python_dir}/Modules && ln -sf ./Setup.stdlib ./Setup.local',
|
||||
shell=True,
|
||||
@ -384,6 +498,7 @@ def patch_modules_setup(python_dir: str, baseplatform: str) -> None:
|
||||
# This list should contain all possible compiled modules to start.
|
||||
# If any .so files are coming out of builds or anything unrecognized
|
||||
# is showing up in the final Setup.local or the build, add it here.
|
||||
#
|
||||
# TODO(ericf): could automate a warning for at least the last part
|
||||
# of that.
|
||||
cmodules = {
|
||||
@ -515,9 +630,9 @@ def patch_modules_setup(python_dir: str, baseplatform: str) -> None:
|
||||
should_enable = cmodule in enables
|
||||
|
||||
if not should_enable:
|
||||
# If something is enabled but we don't want it, comment it out.
|
||||
# Also stick all disabled stuff in a *disabled* section at the
|
||||
# bottom so it won't get built even as shared.
|
||||
# If something is enabled but we don't want it, comment it
|
||||
# out. Also stick all disabled stuff in a *disabled* section
|
||||
# at the bottom so it won't get built even as shared.
|
||||
if is_enabled:
|
||||
lines[indices[0]] = f'#{line}'
|
||||
disable_at_end.add(cmodule)
|
||||
@ -525,8 +640,9 @@ def patch_modules_setup(python_dir: str, baseplatform: str) -> None:
|
||||
# Ok; its enabled and shouldn't be. What to do...
|
||||
if bool(False):
|
||||
# Uncomment the line to enable it.
|
||||
# UPDATE: Seems this doesn't work; will have to figure out
|
||||
# the right way to get things like _ctypes compiling
|
||||
#
|
||||
# UPDATE: Seems this doesn't work; will have to figure
|
||||
# out the right way to get things like _ctypes compiling
|
||||
# statically.
|
||||
lines[indices[0]] = replace_exact(
|
||||
line, f'#{linebegin}', linebegin, count=1
|
||||
@ -548,20 +664,23 @@ def patch_modules_setup(python_dir: str, baseplatform: str) -> None:
|
||||
# '#*static*\n',
|
||||
# )
|
||||
|
||||
# Now for the one remaining ULTRA-HACKY bit: getting _ctypes building
|
||||
# statically.
|
||||
# Now for the one remaining ULTRA-HACKY bit: getting _ctypes
|
||||
# building statically.
|
||||
#
|
||||
# It seems that as of 3.11 it is not possible to do this through
|
||||
# Setup.stdlib.in like we do with our other stuff, as the line is
|
||||
# commented out and we get errors if we change that. Looks like
|
||||
# its not commented out anymore in 3.12 so we'll have to revisit
|
||||
# this next year, but for now... hacks!
|
||||
# commented out and we get errors if we change that. Looks like its
|
||||
# not commented out anymore in 3.12 so we'll have to revisit this
|
||||
# next year, but for now... hacks!
|
||||
|
||||
# To get this working for now we can dump an exact set of build flags
|
||||
# for _ctypes into the Setup.stdlib.in. We just need to provide those
|
||||
# per-platform. So, to get those:
|
||||
# To get this working for now we can dump an exact set of build
|
||||
# flags for _ctypes into the Setup.stdlib.in. We just need to
|
||||
# provide those per-platform. So, to get those:
|
||||
#
|
||||
# - Run 'vanilla' ios/android/etc Python builds which generate .so versions
|
||||
# - Look for the flags in the compiler command lines for those .c files
|
||||
# - Stuff those flags in here for the associated platform.
|
||||
#
|
||||
if baseplatform == 'android':
|
||||
ftxt = replace_exact(
|
||||
ftxt,
|
||||
@ -620,9 +739,9 @@ def patch_modules_setup(python_dir: str, baseplatform: str) -> None:
|
||||
' _ctypes/malloc_closure.c'
|
||||
' -I_ctypes/darwin'
|
||||
f' -I$(srcdir)/../../../../merge/{archos}'
|
||||
f'/{archbase}/libffi-3.4.2/include'
|
||||
f'/{archbase}/libffi-{LIBFFI_VER_APPLE}/include'
|
||||
f' -L$(srcdir)/../../../../merge/{archos}'
|
||||
f'/{archbase}/libffi-3.4.2/lib'
|
||||
f'/{archbase}/libffi-{LIBFFI_VER_APPLE}/lib'
|
||||
' -DUSING_MALLOC_CLOSURE_DOT_C'
|
||||
' -DHAVE_FFI_PREP_CIF_VAR=1'
|
||||
' -DHAVE_FFI_PREP_CLOSURE_LOC=1 -DHAVE_FFI_CLOSURE_ALLOC=1'
|
||||
@ -636,6 +755,7 @@ def patch_modules_setup(python_dir: str, baseplatform: str) -> None:
|
||||
# Seems makesetup still has a bug where *any* line containing an equals
|
||||
# gets interpreted as a global DEF instead of a target, which means our
|
||||
# custom _ctypes lines above get ignored. Ugh.
|
||||
#
|
||||
# To fix it we need to revert the *=* case to what it apparently used to
|
||||
# be: [A-Z]*=*. I wonder why this got changed and how has it not broken
|
||||
# tons of stuff? Maybe I'm missing something.
|
||||
@ -1093,11 +1213,13 @@ def gather(do_android: bool, do_apple: bool) -> None:
|
||||
),
|
||||
f'{bases2[base]}/openssl-{OPENSSL_VER_APPLE}/lib/libssl.a',
|
||||
f'{bases2[base]}/openssl-{OPENSSL_VER_APPLE}/lib/libcrypto.a',
|
||||
f'{bases2[base]}/xz-5.4.2/lib/liblzma.a',
|
||||
f'{bases2[base]}/bzip2-1.0.8/lib/libbz2.a',
|
||||
f'{bases2[base]}/xz-{XZ_VER_APPLE}/lib/liblzma.a',
|
||||
f'{bases2[base]}/bzip2-{BZIP2_VER_APPLE}/lib/libbz2.a',
|
||||
]
|
||||
if base != 'mac':
|
||||
out.append(f'{bases2[base]}/libffi-3.4.2/lib/libffi.a')
|
||||
out.append(
|
||||
f'{bases2[base]}/libffi-{LIBFFI_VER_APPLE}/lib/libffi.a'
|
||||
)
|
||||
return out
|
||||
|
||||
def _android_libs(base: str) -> list[str]:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user