{
  "backend_release_date": "2026-09-12",
  "bytes": 244550,
  "entry_count": 86,
  "file": "sky-degrees-qizheng-source.zip",
  "release_date": "2026-09-16",
  "schema": 1,
  "sha256": "812d76b767786c7f8d032f291183f5a645cae267e430c82c46aba73e20e0d60b",
  "source_inputs": [
    {
      "path": "api/qizheng.py",
      "sha256": "6e0a157f3f9d246d8f5dc5a687067c974ca233cf6ff1e6980a71189af84def14"
    },
    {
      "path": "calculation/__init__.py",
      "sha256": "d8a02f0d2001c969ed7729a0875242de044c3c090bed02407fad12382be7c362"
    },
    {
      "path": "calculation/astronomy.py",
      "sha256": "2af5aa13413ea335cc00c9ca9efb82a737676cfb524b0a5a31fafe6c22fcd14f"
    },
    {
      "path": "calculation/clock.py",
      "sha256": "14d96f297ba5cb436c1312e4ffcb916d9d1f5d41c175ed2ed6971cb4554fb9e2"
    },
    {
      "path": "calculation/data/CircularNatal-Unlicense.txt",
      "sha256": "0bdebfeda07d45dada625ae1317c6f833186e798b171d0db640bcf32e92a8240"
    },
    {
      "path": "calculation/data/DE440-COMMENTS.txt",
      "sha256": "e8123d2cd6daba62459661ad355b54f1431e56d2703ba42380dba46e7581eedc"
    },
    {
      "path": "calculation/data/NOTICE.md",
      "sha256": "51c66d005ad2d7248fff8fde6c52fc4932e6eafa0a46c39b33636cc1b3c29a8f"
    },
    {
      "path": "calculation/data/manifest.json",
      "sha256": "ed38d0fb970e3642174fab51346299808c1c97647f8da2c12625c26adbd890bd"
    },
    {
      "path": "calculation/data_access.py",
      "sha256": "a747a06cf92a150847b4c34e796ff2b2b2b79c14b87431ccdf4085a92f027a8e"
    },
    {
      "path": "calculation/engine.py",
      "sha256": "d0f3c310f2b87b7e959474af85c0f9459b7a6154788939cb7291a4828fc149ac"
    },
    {
      "path": "calculation/ephemeris.py",
      "sha256": "61d7e6e3ca5ef6f9659e0b078cce820944f7f4efc1b5ca215a711aaa12256237"
    },
    {
      "path": "calculation/errors.py",
      "sha256": "dd4d0a9a53f02366df17db9618c82bb922d7710b8dd4378905443483069c4bc0"
    },
    {
      "path": "calculation/houses.py",
      "sha256": "ee3617c92898cedc847a25a7464af57883296206491efb6700575f2a49351714"
    },
    {
      "path": "calculation/sidereal.py",
      "sha256": "ae45028e9710926edbf41a432feb790a1e3f67ba83414464c6810587ec7cdffd"
    },
    {
      "path": "licenses/dmsans-OFL.txt",
      "sha256": "9af36190332437f5ecd09974de43c1f7c77a310a996cdd8ceb25628b458840e1"
    },
    {
      "path": "licenses/geonames-CC-BY-4.0.txt",
      "sha256": "110fe468a47c732380a7ce0a647807b02ed8187dccfdc2dba571a1f1b5fdf3b2"
    },
    {
      "path": "licenses/newsreader-OFL.txt",
      "sha256": "fdfad38143ec470553cae82a1e45320bdd1b9ec70415d37bd0171051d8a4ded8"
    },
    {
      "path": "licenses/sistine-MIT.txt",
      "sha256": "f47e27743d6239cdce552d17ff00f3b8258a7ac0d2c3f759e8a5b9d6143e81e4"
    },
    {
      "path": "qizheng/LICENSE",
      "sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986"
    },
    {
      "path": "qizheng/NOTICE.md",
      "sha256": "00f83ba6dbbbff519682f9a04b8dd95a453dc18ae6de43b5d6a4bde4dfa6aa47"
    },
    {
      "path": "qizheng/__init__.py",
      "sha256": "6a93980f724bbaa194f39d9f0c7c1b02f993ed6734978d5f37a58fcf11b64c23"
    },
    {
      "path": "qizheng/astronomy.py",
      "sha256": "4f06f718fd693da5419cddbcecb1e7d1a19e86b509f9729d83f85667b6487be9"
    },
    {
      "path": "qizheng/candidate.py",
      "sha256": "fa55b70e127042e48f8975efc5f88233b1b8a3cb7f81b2a3c5653180393cfb66"
    },
    {
      "path": "qizheng/engine.py",
      "sha256": "940380c15a5bb6f8343db1436abe23540c5da76354aa569adad02c236edf9afb"
    },
    {
      "path": "qizheng/lunar_nodes.py",
      "sha256": "9f1f05fed5de13ceee31242cc426a9ef6139168642f39016a3302c829cb4ae23"
    },
    {
      "path": "qizheng/mean_apogee-SDSS-LICENSE.txt",
      "sha256": "535856d8cf91c05ec84b157c04258f4ca0d8d5a08a86ff5f9ecc12d6f3fe4cde"
    },
    {
      "path": "qizheng/mean_apogee.py",
      "sha256": "595a3faa1c2b295c8ef46101677d04f7674143039f16ae443afe9ccf950e98a7"
    },
    {
      "path": "qizheng/natal.py",
      "sha256": "95b419723d8b20f3d9f363a25220e379c557858bce3be10f9ab40f65a800df44"
    },
    {
      "path": "qizheng/purple_qi.py",
      "sha256": "202dfe59166ee4176d6ed9bae67a1f20c189b9a11ec0f1aba3701b4c9045317f"
    },
    {
      "path": "qizheng/solar_times.py",
      "sha256": "f9ec828f7bbfd04ae1975d72bcd0120cbcd723403ef5e477d0e55f187c6d48a1"
    },
    {
      "path": "qizheng/traditional_rules.py",
      "sha256": "a675589a6b8be536abdfc2ae8d4ac369632a464bbb06582db492d40c84d073dc"
    },
    {
      "path": "requirements.txt",
      "sha256": "702e5a0c97fbc83357978d10f9b83a01c4d0b6717e6bfc2b1ff9961f606f61aa"
    },
    {
      "path": "app/CN/qizheng/page.tsx",
      "sha256": "c92aeab12beaef84973f393945526841d5543ae46eed3e4e15ea1c8c637efe89"
    },
    {
      "path": "app/CN/qizheng/sources/page.tsx",
      "sha256": "5b9a8a49d126edaf1d7d975021c8a881c36741b93fee378455f3aa9c5d9af516"
    },
    {
      "path": "app/qizheng/page.tsx",
      "sha256": "3feaec30f8ff5a3bbe7499f306bb7a37081eb60bfeefdc636c739b243f05ee20"
    },
    {
      "path": "app/qizheng/qizheng.css",
      "sha256": "5118b041a09aede174ec600742305d430a85d4cd953c8a042de6442d51dfd788"
    },
    {
      "path": "app/qizheng/sources/page.tsx",
      "sha256": "4fa6a84cd95e3e808e6243ef7cf19a3470ce759632b9427e328b5ccbddda9b77"
    },
    {
      "path": "components/qizheng/page.tsx",
      "sha256": "8a303156a8903605d8885d801f886019fd1e8b26edf36762fc613aa7b317ca05"
    },
    {
      "path": "components/qizheng/sources.tsx",
      "sha256": "15b0d8994fe23661f4bb80a7f050001f4cf164523d110d7b79a079ab0d301aa2"
    },
    {
      "path": "components/qizheng/wheel.tsx",
      "sha256": "cb65f408451e00328f13ea9a9c339ae5b945e809fa60cbd2030628d60e2c4054"
    },
    {
      "path": "lib/qizheng/display.ts",
      "sha256": "afe5659e2a06cd412f215ed00a3b8c3ed40066a318e9d7a9a920115615c198d9"
    },
    {
      "path": "lib/qizheng/types.ts",
      "sha256": "2209d9f3d88c0149971c37993cbe04427d3bf093d1fc3403d280e3e367a51ac4"
    }
  ],
  "source_manifest": {
    "backend_release_date": "2026-09-12",
    "files": [
      {
        "bytes": 35149,
        "path": "LICENSE",
        "sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986"
      },
      {
        "bytes": 3509,
        "path": "NOTICE.md",
        "sha256": "4c92156b83c9076a750ec71ef065c2c47c8b3d5eff148bdcc3faf36ee913d74b"
      },
      {
        "bytes": 5345,
        "path": "README.md",
        "sha256": "d02359ff35529eeb140d1793d62f31bc2d3dc838a00c58c625acbff682b6b88b"
      },
      {
        "bytes": 65,
        "path": "api/__init__.py",
        "sha256": "9b2901baecd40ed28fbc6ac4775b4fe198dd8d1501c6863ac56dd1a29c34ee89"
      },
      {
        "bytes": 3406,
        "path": "api/qizheng.py",
        "sha256": "6e0a157f3f9d246d8f5dc5a687067c974ca233cf6ff1e6980a71189af84def14"
      },
      {
        "bytes": 226,
        "path": "calculation/__init__.py",
        "sha256": "d8a02f0d2001c969ed7729a0875242de044c3c090bed02407fad12382be7c362"
      },
      {
        "bytes": 5940,
        "path": "calculation/astronomy.py",
        "sha256": "2af5aa13413ea335cc00c9ca9efb82a737676cfb524b0a5a31fafe6c22fcd14f"
      },
      {
        "bytes": 4825,
        "path": "calculation/clock.py",
        "sha256": "14d96f297ba5cb436c1312e4ffcb916d9d1f5d41c175ed2ed6971cb4554fb9e2"
      },
      {
        "bytes": 1211,
        "path": "calculation/data/CircularNatal-Unlicense.txt",
        "sha256": "0bdebfeda07d45dada625ae1317c6f833186e798b171d0db640bcf32e92a8240"
      },
      {
        "bytes": 59312,
        "path": "calculation/data/DE440-COMMENTS.txt",
        "sha256": "e8123d2cd6daba62459661ad355b54f1431e56d2703ba42380dba46e7581eedc"
      },
      {
        "bytes": 3691,
        "path": "calculation/data/NOTICE.md",
        "sha256": "51c66d005ad2d7248fff8fde6c52fc4932e6eafa0a46c39b33636cc1b3c29a8f"
      },
      {
        "bytes": 4926,
        "path": "calculation/data/manifest.json",
        "sha256": "ed38d0fb970e3642174fab51346299808c1c97647f8da2c12625c26adbd890bd"
      },
      {
        "bytes": 2190,
        "path": "calculation/data_access.py",
        "sha256": "a747a06cf92a150847b4c34e796ff2b2b2b79c14b87431ccdf4085a92f027a8e"
      },
      {
        "bytes": 18083,
        "path": "calculation/engine.py",
        "sha256": "d0f3c310f2b87b7e959474af85c0f9459b7a6154788939cb7291a4828fc149ac"
      },
      {
        "bytes": 5523,
        "path": "calculation/ephemeris.py",
        "sha256": "61d7e6e3ca5ef6f9659e0b078cce820944f7f4efc1b5ca215a711aaa12256237"
      },
      {
        "bytes": 415,
        "path": "calculation/errors.py",
        "sha256": "dd4d0a9a53f02366df17db9618c82bb922d7710b8dd4378905443483069c4bc0"
      },
      {
        "bytes": 8613,
        "path": "calculation/houses.py",
        "sha256": "ee3617c92898cedc847a25a7464af57883296206491efb6700575f2a49351714"
      },
      {
        "bytes": 4682,
        "path": "calculation/sidereal.py",
        "sha256": "ae45028e9710926edbf41a432feb790a1e3f67ba83414464c6810587ec7cdffd"
      },
      {
        "bytes": 163,
        "path": "examples/request.json",
        "sha256": "b07eeafef1687f3de1e76921d0c26af8264eff6c381207940f1e28d1f0674e3e"
      },
      {
        "bytes": 4482,
        "path": "licenses/site/dmsans-OFL.txt",
        "sha256": "9af36190332437f5ecd09974de43c1f7c77a310a996cdd8ceb25628b458840e1"
      },
      {
        "bytes": 1018,
        "path": "licenses/site/geonames-CC-BY-4.0.txt",
        "sha256": "110fe468a47c732380a7ce0a647807b02ed8187dccfdc2dba571a1f1b5fdf3b2"
      },
      {
        "bytes": 4394,
        "path": "licenses/site/newsreader-OFL.txt",
        "sha256": "fdfad38143ec470553cae82a1e45320bdd1b9ec70415d37bd0171051d8a4ded8"
      },
      {
        "bytes": 1081,
        "path": "licenses/site/sistine-MIT.txt",
        "sha256": "f47e27743d6239cdce552d17ff00f3b8258a7ac0d2c3f759e8a5b9d6143e81e4"
      },
      {
        "bytes": 2651,
        "path": "licenses/upstream/ERFA-LICENSE.txt",
        "sha256": "b1858f9a263f22c438a455a32945da51a31a0ae25a21055da13bb7ed57cc3b51"
      },
      {
        "bytes": 35149,
        "path": "licenses/upstream/GPL-3.0.txt",
        "sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986"
      },
      {
        "bytes": 1813,
        "path": "licenses/upstream/MOIRA-RULES-NOTICE.txt",
        "sha256": "9c078a13b85ec2301bed0a061c8d4501d1c4eddb0e809772e25376be2d6f5279"
      },
      {
        "bytes": 1896,
        "path": "licenses/upstream/SDSS-BSD-3-Clause.txt",
        "sha256": "535856d8cf91c05ec84b157c04258f4ca0d8d5a08a86ff5f9ecc12d6f3fe4cde"
      },
      {
        "bytes": 1211,
        "path": "licenses/upstream/data/CircularNatal-Unlicense.txt",
        "sha256": "0bdebfeda07d45dada625ae1317c6f833186e798b171d0db640bcf32e92a8240"
      },
      {
        "bytes": 59312,
        "path": "licenses/upstream/data/DE440-COMMENTS.txt",
        "sha256": "e8123d2cd6daba62459661ad355b54f1431e56d2703ba42380dba46e7581eedc"
      },
      {
        "bytes": 11537,
        "path": "licenses/upstream/data/NAIF-rules-snapshot.txt",
        "sha256": "4f1ea56e376d4a0a2f5c391b3351e70efa8df9252be9ccbca3f1130a839dc7f2"
      },
      {
        "bytes": 3691,
        "path": "licenses/upstream/data/NOTICE.md",
        "sha256": "51c66d005ad2d7248fff8fde6c52fc4932e6eafa0a46c39b33636cc1b3c29a8f"
      },
      {
        "bytes": 989,
        "path": "licenses/upstream/dependencies/certifi/certifi-2026.7.22.dist-info__licenses__LICENSE",
        "sha256": "e93716da6b9c0d5a4a1df60fe695b370f0695603d21f6f83f053e42cfc10caf7"
      },
      {
        "bytes": 1084,
        "path": "licenses/upstream/dependencies/jplephem/jplephem-2.24.dist-info__licenses__LICENSE.txt",
        "sha256": "31bbf940baa5da362ef4e16ccda663cf09a096673b9eac30413f899c1055981d"
      },
      {
        "bytes": 46826,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__LICENSE.txt",
        "sha256": "649a589ab31076e79e9ce62ba24eae9959598124176640dbc95f87bd10f34fcf"
      },
      {
        "bytes": 1018,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy___core__include__numpy__libdivide__LICENSE.txt",
        "sha256": "fbc539f47d0cf83bc61378080fb873d5c14630126cacbfe754035c3926daa5ec"
      },
      {
        "bytes": 690,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy___core__src__common__pythoncapi-compat__COPYING",
        "sha256": "3f2c1ffa76383a55ae0aac01c9737cd70050dff63e1f026694fbe9d662573c98"
      },
      {
        "bytes": 20785,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy___core__src__highway__LICENSE",
        "sha256": "e340270d4f64384569a91d546acb5b094d69ce47f0c015db77abb74dc6f815af"
      },
      {
        "bytes": 1414,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy___core__src__multiarray__dragon4_LICENSE.txt",
        "sha256": "f7b14309e5f54e5022b26448eefd419988ada2aec01d3c1162d84a0ea8f21f2c"
      },
      {
        "bytes": 1514,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy___core__src__npysort__x86-simd-sort__LICENSE.md",
        "sha256": "211e7d737d6179a08f791ebb0a99897ce7cd2457410c542876d125576edfe910"
      },
      {
        "bytes": 1543,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy___core__src__umath__svml__LICENSE",
        "sha256": "c17011467b4fe6e20fbfbeda4df09e58c2bca5480a063e55735a4000a379aad9"
      },
      {
        "bytes": 1498,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__fft__pocketfft__LICENSE.md",
        "sha256": "a85ca13fdf90160b64a0698215868c13b74d835ad0a4e2ba44713b8c5058a056"
      },
      {
        "bytes": 2266,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__linalg__lapack_lite__LICENSE.txt",
        "sha256": "a14cc25e10d40a3aa705b7de2fb764a6535d8ee9b2db4e1724900585457dfd55"
      },
      {
        "bytes": 1593,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__ma__LICENSE",
        "sha256": "05f3b88351988ecfad10abe92c0c50e5875c6452d5009a0084cc291551ffcca6"
      },
      {
        "bytes": 3511,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__random__LICENSE.md",
        "sha256": "103166b62b80443afb9eb3488e052ea06be0cff566b908f199e561fde49af19f"
      },
      {
        "bytes": 2745,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__random__src__distributions__LICENSE.md",
        "sha256": "469778be8f33d54e1bcaab28c281cc472916d2d273f835e55bc487d30503face"
      },
      {
        "bytes": 2926,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__random__src__mt19937__LICENSE.md",
        "sha256": "0e111337b25494a773106695f0e799f642b8567aaacca4f116a74a8177179156"
      },
      {
        "bytes": 1154,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__random__src__pcg64__LICENSE.md",
        "sha256": "e7d4f4fb20358f314210a892ae17351e04993813646f697ec387385ca2a36918"
      },
      {
        "bytes": 1509,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__random__src__philox__LICENSE.md",
        "sha256": "6f5828a57223d4cc7f8ea505a2623e7b978b242752c1515e355f46ba2cec1800"
      },
      {
        "bytes": 1226,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__random__src__sfc64__LICENSE.md",
        "sha256": "9d4098846018319cd68e228ee6220361787f73bccbf00237a85e4fc9621b998f"
      },
      {
        "bytes": 332,
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__random__src__splitmix64__LICENSE.md",
        "sha256": "268b0ca06759d31ea3ca68dd35f20e877916e927b1c2a835e4592a3c4354b1f9"
      },
      {
        "bytes": 1018,
        "path": "licenses/upstream/dependencies/numpy/numpy___core__include__numpy__random__LICENSE.txt",
        "sha256": "fbc539f47d0cf83bc61378080fb873d5c14630126cacbfe754035c3926daa5ec"
      },
      {
        "bytes": 1593,
        "path": "licenses/upstream/dependencies/numpy/numpy__ma__LICENSE",
        "sha256": "05f3b88351988ecfad10abe92c0c50e5875c6452d5009a0084cc291551ffcca6"
      },
      {
        "bytes": 3511,
        "path": "licenses/upstream/dependencies/numpy/numpy__random__LICENSE.md",
        "sha256": "103166b62b80443afb9eb3488e052ea06be0cff566b908f199e561fde49af19f"
      },
      {
        "bytes": 1494,
        "path": "licenses/upstream/dependencies/pyerfa/pyerfa-2.0.1.5.dist-info__LICENSE.rst",
        "sha256": "0d404371a5d7d1478307ab142962091ec258b92a71f8cab3736fdb46b03cc716"
      },
      {
        "bytes": 1086,
        "path": "licenses/upstream/dependencies/sgp4/sgp4-2.27.dist-info__licenses__LICENSE",
        "sha256": "4474ea9eccbb829c6bc3652381bfe78b1c815de021d4a284a2a5b383a374d030"
      },
      {
        "bytes": 1101,
        "path": "licenses/upstream/dependencies/skyfield/skyfield-1.55.dist-info__LICENSE",
        "sha256": "4b3cad9301fc389f9545079b43384659b908e94d6ab271474b3f6da2bd20d65a"
      },
      {
        "bytes": 625,
        "path": "licenses/upstream/dependencies/tzdata/tzdata-2026.3.dist-info__licenses__LICENSE",
        "sha256": "df58f69ea88683035d720b5375bcef0cf5aeaa98a1d098d572e0992c378deb46"
      },
      {
        "bytes": 11357,
        "path": "licenses/upstream/dependencies/tzdata/tzdata-2026.3.dist-info__licenses__licenses__LICENSE_APACHE",
        "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4"
      },
      {
        "bytes": 35149,
        "path": "qizheng/LICENSE",
        "sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986"
      },
      {
        "bytes": 1871,
        "path": "qizheng/NOTICE.md",
        "sha256": "00f83ba6dbbbff519682f9a04b8dd95a453dc18ae6de43b5d6a4bde4dfa6aa47"
      },
      {
        "bytes": 253,
        "path": "qizheng/__init__.py",
        "sha256": "6a93980f724bbaa194f39d9f0c7c1b02f993ed6734978d5f37a58fcf11b64c23"
      },
      {
        "bytes": 10878,
        "path": "qizheng/astronomy.py",
        "sha256": "4f06f718fd693da5419cddbcecb1e7d1a19e86b509f9729d83f85667b6487be9"
      },
      {
        "bytes": 2939,
        "path": "qizheng/candidate.py",
        "sha256": "fa55b70e127042e48f8975efc5f88233b1b8a3cb7f81b2a3c5653180393cfb66"
      },
      {
        "bytes": 7405,
        "path": "qizheng/engine.py",
        "sha256": "940380c15a5bb6f8343db1436abe23540c5da76354aa569adad02c236edf9afb"
      },
      {
        "bytes": 7947,
        "path": "qizheng/lunar_nodes.py",
        "sha256": "9f1f05fed5de13ceee31242cc426a9ef6139168642f39016a3302c829cb4ae23"
      },
      {
        "bytes": 1896,
        "path": "qizheng/mean_apogee-SDSS-LICENSE.txt",
        "sha256": "535856d8cf91c05ec84b157c04258f4ca0d8d5a08a86ff5f9ecc12d6f3fe4cde"
      },
      {
        "bytes": 10720,
        "path": "qizheng/mean_apogee.py",
        "sha256": "595a3faa1c2b295c8ef46101677d04f7674143039f16ae443afe9ccf950e98a7"
      },
      {
        "bytes": 2681,
        "path": "qizheng/natal.py",
        "sha256": "95b419723d8b20f3d9f363a25220e379c557858bce3be10f9ab40f65a800df44"
      },
      {
        "bytes": 6035,
        "path": "qizheng/purple_qi.py",
        "sha256": "202dfe59166ee4176d6ed9bae67a1f20c189b9a11ec0f1aba3701b4c9045317f"
      },
      {
        "bytes": 11002,
        "path": "qizheng/solar_times.py",
        "sha256": "f9ec828f7bbfd04ae1975d72bcd0120cbcd723403ef5e477d0e55f187c6d48a1"
      },
      {
        "bytes": 11572,
        "path": "qizheng/traditional_rules.py",
        "sha256": "a675589a6b8be536abdfc2ae8d4ac369632a464bbb06582db492d40c84d073dc"
      },
      {
        "bytes": 104,
        "path": "requirements.txt",
        "sha256": "702e5a0c97fbc83357978d10f9b83a01c4d0b6717e6bfc2b1ff9961f606f61aa"
      },
      {
        "bytes": 1044,
        "path": "source/frontend/README.md",
        "sha256": "74ec6172ec329e3e6895dc79c28a79c5aa0193c1969b3e725f86bac14ca18507"
      },
      {
        "bytes": 634,
        "path": "source/frontend/app/CN/qizheng/page.tsx",
        "sha256": "c92aeab12beaef84973f393945526841d5543ae46eed3e4e15ea1c8c637efe89"
      },
      {
        "bytes": 572,
        "path": "source/frontend/app/CN/qizheng/sources/page.tsx",
        "sha256": "5b9a8a49d126edaf1d7d975021c8a881c36741b93fee378455f3aa9c5d9af516"
      },
      {
        "bytes": 667,
        "path": "source/frontend/app/qizheng/page.tsx",
        "sha256": "3feaec30f8ff5a3bbe7499f306bb7a37081eb60bfeefdc636c739b243f05ee20"
      },
      {
        "bytes": 14800,
        "path": "source/frontend/app/qizheng/qizheng.css",
        "sha256": "5118b041a09aede174ec600742305d430a85d4cd953c8a042de6442d51dfd788"
      },
      {
        "bytes": 568,
        "path": "source/frontend/app/qizheng/sources/page.tsx",
        "sha256": "4fa6a84cd95e3e808e6243ef7cf19a3470ce759632b9427e328b5ccbddda9b77"
      },
      {
        "bytes": 18724,
        "path": "source/frontend/components/qizheng/page.tsx",
        "sha256": "8a303156a8903605d8885d801f886019fd1e8b26edf36762fc613aa7b317ca05"
      },
      {
        "bytes": 4145,
        "path": "source/frontend/components/qizheng/sources.tsx",
        "sha256": "15b0d8994fe23661f4bb80a7f050001f4cf164523d110d7b79a079ab0d301aa2"
      },
      {
        "bytes": 4501,
        "path": "source/frontend/components/qizheng/wheel.tsx",
        "sha256": "cb65f408451e00328f13ea9a9c339ae5b945e809fa60cbd2030628d60e2c4054"
      },
      {
        "bytes": 18164,
        "path": "source/frontend/lib/qizheng/display.ts",
        "sha256": "afe5659e2a06cd412f215ed00a3b8c3ed40066a318e9d7a9a920115615c198d9"
      },
      {
        "bytes": 2099,
        "path": "source/frontend/lib/qizheng/types.ts",
        "sha256": "2209d9f3d88c0149971c37993cbe04427d3bf093d1fc3403d280e3e367a51ac4"
      },
      {
        "bytes": 3973,
        "path": "tools/prepare_data.py",
        "sha256": "a073bff9388ed34502ee153482b7c0681af1bd7fb08318c4ef9700f09b007dcc"
      },
      {
        "bytes": 1644,
        "path": "tools/rebuild_archive.py",
        "sha256": "ef76828a86cdc956213e77751ae9147d63233a69d9f6a09896a85fc4a033f5df"
      }
    ],
    "license": "GPL-3.0-or-later",
    "release_date": "2026-09-16",
    "schema": 1,
    "scientific_data_binaries_included": false,
    "scope": "Standalone historical basic Python engine with English and hidden Chinese basic interface source; no detailed-edition additions"
  }
}
