From dfa913e69c580c3d9b5b934635e7b37c53688a20 Mon Sep 17 00:00:00 2001 From: Absinthe Date: Mon, 13 Jul 2026 15:53:39 +0800 Subject: [PATCH] Restructure Flutter data as generic SDK details Replace the Flutter-specific flutter_hash system with a generalized sdk-details framework that can support multiple SDKs. This refactoring introduces: - Schema-driven validation with JSON schemas (catalog-v1, definition-v1) - Generic SDK provider interface with update() and validate() functions - Centralized catalog.json indexing all SDK definitions - Reorganized Flutter data under sdk-details/sdks/flutter/ - Generic tools for managing, testing, and validating SDK definitions The system now supports adding new SDKs by implementing provider.py with the standard interface, making it extensible beyond Flutter. --- .../workflows/fetch_flutter_snapshot_hash.yml | 57 ---- .github/workflows/update_sdk_details.yml | 66 +++++ .gitignore | 2 + sdk-details/README.md | 29 +++ sdk-details/catalog.json | 12 + sdk-details/schemas/catalog-v1.schema.json | 42 +++ sdk-details/schemas/definition-v1.schema.json | 235 +++++++++++++++++ .../sdks/flutter}/README.md | 13 +- ...316565ad77281a75305515e4682e6c4c6f7ca.json | 0 ...747ed404590aa25490e48b15db10a75e16cba.json | 0 ...c82b02c83c20e57a67d86a8d3b7677d983556.json | 0 ...17c99c9fd4956f27505204f7e344335810aed.json | 0 ...3c6557c02879191a558320ed8ec81f8b2b619.json | 0 ...f31d115eceda8cbff1b3481fcde4330c4ae12.json | 0 ...5f8705df301877d787107bac1a6e9fc9ee1ad.json | 0 ...e4e6d8ff6de39c29441c53e949bfb0bf17972.json | 0 ...680e202af9a92461070cb2d9982acad46c83c.json | 0 ...2dbb27547cd03d8f8e816b7995cace854f7e6.json | 0 ...c2cc550a0b0d37aa48d40b5f1bb8984b7439a.json | 0 ...b3a72fcbe76296ce19b02f58c03ba0cbb0dcf.json | 0 ...b3cf8f093d44ec4bae1319cbfdc4f8b4753b6.json | 0 ...7363b0cfd4092fe06eb80f829b5fbc94fd32a.json | 0 ...fdfe54ebef9168a90ca00a6721c2d36e6aafa.json | 0 ...ea14e5800c35a4fc4dd10cc31b997f1be81e9.json | 0 ...263e39d1d12313c9622ac3788cc9f2b01f582.json | 0 ...1eed46b9d9b58df78566e9b8b2e42e80d3380.json | 0 ...2520d5d8f837da439317adab4ecd7bff2f72d.json | 0 ...c4b82c71ce2f34c72caeaf061f7ad82cb25e4.json | 0 ...282e33bbb0f7c7cbb9eb2fd1af06ecb636ea9.json | 0 ...a7c2bcaaf8f2edd1994d2830e0b4a291e7342.json | 0 ...c3b3c7b388944417b41b6d6852677c57d1387.json | 0 ...c1fc45e505118e96afedd7ba365e593369697.json | 0 ...05a38912a3c1a906e95099cac9a7e14fae85f.json | 0 ...1520e8b9585d133faf1eccced9357670c6d11.json | 0 ...f488c1306b9d5042a78cffbfef1fa4428b64e.json | 0 ...28a3140015137a1c5eb81b486afe279ddd981.json | 0 ...9be379a17d0e22d1f4fc1e562dbc9e6978832.json | 0 ...f78c952552819753a2676b318e181004ba746.json | 0 ...3a2ecd1bb78f8e1f0ed9719ff3751cdfdd064.json | 0 ...86cda19d55aba8b719231c11306eeaca4b798.json | 0 ...c8feeeb47618ffa468bcbc7f3bd2ceb93ad6d.json | 0 ...59063c487ee70787e58b4b011cbb3c2f53fd6.json | 0 ...0e6546bf302bda9b1e8213a004ed5c16d13c4.json | 0 ...b562ac8068ce3dda6b69aca3f355f4d1d2718.json | 0 ...150893958777c8f2215f6cfd3e89e984e8dea.json | 0 ...d33d3caa24d260f15529e1f3f50783cbccd9a.json | 0 ...f95fd49b7456f08a1274078c4b55e675ad018.json | 0 ...8adb442192ce155630eeb6806b74db07dd15e.json | 0 ...658725ddaa270601426d1485636157e38c34c.json | 0 ...5e5e9ec5eeb4f225c401d8db69b860e0fde9a.json | 0 ...7ae0ec577a4ef50e65f6fefcfc1326707d9bf.json | 0 ...137647e372c59e8dcb78f670ab7686a0d1031.json | 0 ...b2e98c036a8f8c355fd475dbe0db4f4bc886c.json | 0 ...f56329631173cec8e6b1ca6c72f34b2e9a4ed.json | 0 ...711a7765a198264b20d8c4983f2f6f1271271.json | 0 ...7b5be5f0f1376a1ccf383950e83a80177fb4e.json | 0 ...18009497c581ede5d8a3b8b833b81d00cebb7.json | 0 ...71d647a292a980abb405ac7d16fe1f0b20434.json | 0 ...5d409c7a1438a34d21b60bf30a6fd5db59314.json | 0 ...611c64eadbd93c5f5aba5494b8fc3b35ee952.json | 0 ...f081343530dbaa8bec378fe1ce26b4897c23f.json | 0 ...c20e7c3dd48c66f400a24d48ea806b4ab312a.json | 0 ...4b2d280f5705c7901c10676eae8bdb3142631.json | 0 ...2d82d9cb54876f58044aa52198d53ec841c3d.json | 0 ...5cccf5e47d19947a669000a53a26cabb5af5e.json | 0 ...21d89d8d98f27be4e0ff84d5c6b72dbdc91ca.json | 0 ...37824d6d29bf9967172d32450ef0671097cef.json | 0 ...2160fdb2f5a1d20f1dccb761a2caa96804c22.json | 0 ...a811bf8e70466596bcf0ea3a8b5adb5f17f7f.json | 0 ...25ca7b7e3e3e8047df050bba4174074c9b336.json | 0 ...953183580250aac2e15d36007664118bda5ab.json | 0 ...af549695193a9920ca37752eca4f141bbef31.json | 0 ...c420a2c06e5266a60a768b3fd0b660551cc9c.json | 0 ...bf5938752e0030b491565af1910c137b83dd8.json | 0 ...a8bb99e9a20563d9a7d39afeba8e5c811a7eb.json | 0 ...9072724fff78f9b07f0619796a666e00f69a0.json | 0 ...600f240548c1cf6f5d3f9ae65a5c9e51bc443.json | 0 ...aca678a2fb70ff2659870186f97c32f8894f4.json | 0 ...db911ba279722f5e685f38b0ed30fa7e8570a.json | 0 ...c87ad800beeab545ab867354d4683d5bfb6ce.json | 0 ...290d6d50a1bf1a6a246544347c03acda867a5.json | 0 ...cc9b86c45acb7e32b4097bc8a5059b91c888e.json | 0 ...02fa5ee681840cdc842c22f4cb4bdd5ec3115.json | 0 ...f8ebd8621713a6936df783dad5019f52bc85e.json | 0 ...da4808277ef1c7de0bdd7f0689fe05c7ec79c.json | 0 ...9785b5c5eaad64d1da3403048e61d8f230c48.json | 0 ...68225b5ec8c172422f0d9757c75828c11cdd1.json | 0 ...070c17a6956de1a03dbe09cda56f0c485f41b.json | 0 ...217e6c3d487bb3c0cbf8a7edb378952a51d33.json | 0 ...e592194da983137fc023d4bfafae3839b2bc2.json | 0 ...4f7e1e682039464cb25e31a78b86a3c59b695.json | 0 ...e852cb92f27c16c9bee98c4ff3a5dc5b4dfae.json | 0 ...2f674ca2312e34a3ef796701c297dc3be1ae6.json | 0 ...401c9bbb5a9a9aec74d4f735d18a9dd3ebf2d.json | 0 ...e69c6081888f28217d8dece4fde2f5490fbab.json | 0 ...f3dbe25894d7614587f494a25b40fdb344f4a.json | 0 ...456fd7fd03d7348f9fa0952493030c85f15ae.json | 0 ...e4f0ae4304d8c6d4ed7d5d0a54bc4010f2196.json | 0 ...27d6c7e70e2f51bca1a46f1174b250f84c5da.json | 0 ...56a31c0a3d350827aee6c56bb63337c5b4e6e.json | 0 ...2c74a348d98d2fd372a91953c104e58f185cd.json | 0 ...e47073a378673f6ca095e91b8065544c3a881.json | 0 ...6da3df9cb370795f49747fdfd295b8168c133.json | 0 ...63b27805be1bd178ad909f9947fe9d85c6010.json | 0 ...a9e192d3d8f4f8aa96ca283947f4125bf836c.json | 0 ...ba9c6fb499ccd4e81420543783cc7267ae406.json | 0 ...e96fad1ada324adca718d13410a98d9bb1036.json | 0 ...67fc4c57d53e565532f4e188c947fe48cd57d.json | 0 ...af3715217a0c2ada72c717d4ed9178d68f6ed.json | 0 ...9e38160a301f4070a8be25dcb66120e4548ac.json | 0 ...972dbc0d1446c761c6856717cc5a00dfec2d0.json | 0 ...a3910d398ee48a3411108688ebd5ccc101e8a.json | 0 ...a517184276f9526eb6026e55cfcbde1e5ad1f.json | 0 ...6903c8923608d3c1ccf8058a29c31a2bfbc53.json | 0 ...f6365a64bd66fdf9c1ada3ed0a91d9533b9c7.json | 0 ...4875c7aa0079ae11a4850e2d06bd83d001960.json | 0 ...d2dfca22a282e53eb449d8a3be93b8365c1bc.json | 0 ...ed814500baca0480a02f8555aa84a9afe32bf.json | 0 ...6dd8728419ad3534e3f6112aa6291f587078a.json | 0 ...d6757e88311f4fb9d341918894e2bc30e3b20.json | 0 ...2367950154e7f8daf9ce9992a450016289a5f.json | 0 ...2d735bd38224ef2db85ca763d862d6326b17f.json | 0 ...9eb24361807fb186953a864cf890fa8e9d26a.json | 0 ...40cfbfd369544cbee9d19f212fbbe06e739c2.json | 0 ...3c00c801c49c78a0d4e7ceafbe278c9c26f1e.json | 0 ...35019a8eab588c3c2ea783c618d90505be233.json | 0 ...cd02c9412d0c1e6acbe0fbcb3dd03cda038df.json | 0 ...7390fa4b00d2d261bfdf5182d2e87c9113ff9.json | 0 ...ad6a64b08aa26005e3f82aed26de2e290b572.json | 0 ...79318019c397471751fe67ba0fefcd0d720d7.json | 0 ...be0028d370607f76215a9be322e5514b263e0.json | 0 ...0a43379fa3a7474427a671c794fa29e555c10.json | 0 ...646e14cc25f5a56a989c6a5787bf74e0ea386.json | 0 ...c5f30a7026e870619c2e8e8c99c070d74036f.json | 0 ...19d01dcac654bbb941b771cc06efd4ed4a93f.json | 0 ...0c6140a3f1cb295364b0446627bd3a1736915.json | 0 ...3c3ccd15a54a0718700aa11ead664b264b7dd.json | 0 ...deba30fcb592f17dfb31b4e9e31e17fbfae9a.json | 0 ...46dea4b7347a252218aaff5caac5dc2fec8cd.json | 0 ...6dc9bdd3ba2bc387e6e14b72fce5f46abfcae.json | 0 ...6d6e699e51b2874210e14cddf1a22fb9524b2.json | 0 ...f707d5a9b17388b60ff10b9f65b0c6a3c4134.json | 0 ...3d073c8bedb678d82ee78daf05037b3a7a85e.json | 0 ...69d7be3a7231aab5525db322fc699f098315f.json | 0 ...196591bc312b38399a598f8c9e5d752de56e2.json | 0 ...1a7bfff776e9e3011384f4ff09c13a697c6b6.json | 0 ...0d92b2bbb29fc932868ee025959748285657b.json | 0 ...80092e270846373ee9739406bf471050c02c6.json | 0 ...e6f5c54db7a705e6d50f7f3bddfa2ac0d6612.json | 0 ...4f90f1af3b4b9846fba24a1cace62ddf7f77a.json | 0 ...df03e73dd352873fc5a7e1c0de04e52863b3a.json | 0 ...e560236539b7e2702f5ac790b2a4691b32d49.json | 0 ...2888b3bcf7adb9bc8d7be01f717a0c15b6618.json | 0 ...337ebb893380101d1fa9cc435ce9b6cfeb22c.json | 0 ...41def692f444660a11e20fac37af9050245ab.json | 0 ...99c595137e4b2f5b2efa8ff343ea23c1e16b8.json | 0 ...cfb54d01a9472b3e81d9e76fd63a4a44cfbcb.json | 0 ...8d4c681baf87d2f2829ed3728eee4fe2bc3fe.json | 0 ...3d75a56efe1a2e9902f52dc8006099c45d937.json | 0 ...a21816e61b8ede0a884470f99f8b6f4307fd0.json | 0 ...4a39c7d545ed47186b2f4d98cd09c8366e720.json | 0 ...cd5a1e1b3ef5d98953a6f4cf1b30df582d0ca.json | 0 ...4c9cb6c9f1859c1807cff415cd716bb9612ff.json | 0 ...5b38ee83a1282981a30abc08ffcf6cd0e44bd.json | 0 ...411bcf3961fef3e6caa57a04e7fc3e9faa037.json | 0 ...dd7174cc6555e3e9eb5f006c86e6ec221a0d2.json | 0 ...12dd2f120092ca3c78d0098b12f0079fd966d.json | 0 ...5586f2a9583d9511b742703529a92bf8f9db5.json | 0 ...6e009110df4f34ec2cf99f63cf73b71b7a420.json | 0 ...4fc6cf6416daae78eac2c211ad84c46e21625.json | 0 ...7fc5cd89b8f0136e927b00f2e159444b95a73.json | 0 ...7b066524201e86d6bc5c110104c390899f264.json | 0 ...f4a749e532b865d5d24990d865f7d902b8fb3.json | 0 ...bf6df86d056e47d05a3d5404f3d78939b3dae.json | 0 ...9b71d6a1b1473911970428b16ac02397d930b.json | 0 ...1c5b2e7e66cb7abc858b4e0203ce7d39f6ff1.json | 0 ...91e065313d26bbc2ddc9805fb7ed27edae174.json | 0 ...984f99cfe01e3b69d962ec4847f70c4317694.json | 0 ...66e17cb02da06e9e256a278cb9779f2abb245.json | 0 ...85b79294e830fa89c24924d58a27cc8fbf406.json | 0 ...71b2e0265428fc144c5ce6c1234680631d83e.json | 0 ...b4afd6492499b72bdc59c3a633c7721708087.json | 0 ...25dac5ebe5971c5708ef73558ed8edcf4a362.json | 0 ...c31f591882b3c668992d2e9da761118899f38.json | 0 ...be45033ef2788512932fd75d51c84036c204a.json | 0 ...196caa1ce854e0b3f97587e4220e14aa2c335.json | 0 ...4bc93ca9aaf2156fb06266c9fe509e8599a5f.json | 0 ...8bb4dcb99d7e0d94aeff2ffa74e6ddef301cd.json | 0 ...679cadc3804a16abfe00f51146f4291f9384c.json | 0 ...4a1dd944497bd1ec0f2acca22ff9fbd8b377a.json | 0 ...0ea89b5273778e84f18ad3952f2049d1c017a.json | 0 ...509c2bd0d7788feb675e38321cc5711c8d2d6.json | 0 ...226569f331edf2831a7543f55d953c3d50637.json | 0 ...7a1e849a170be4b2b2fe34142ca2c0a6fea1f.json | 0 ...c75c62467e72200ab5cd54cee48b8313f6d86.json | 0 ...27e519d33b4e13b01a8710b38a3591d6ca6f1.json | 0 ...786dd51f112885a89792d678296b95e6622e5.json | 0 ...7145303f0dd9d0f93424a2e124eb4abef5091.json | 0 ...d777fd29b031b87c7a68a6637fb48c0932862.json | 0 ...06841525fba0dcb7fdf417bf021e96093459d.json | 0 ...ae6864b296dd9f43b2cc7577ec256e5c32a8d.json | 0 ...6e86a6f442dc6f4158ae7010ab13d72a0b356.json | 0 ...64c26474b70c7bc4d4c8785097499775d59e0.json | 0 ...3bac3dd5cb5b0e464ab70e7bc8a0d8cf083ab.json | 0 ...c18f873b8ab57330422bce09047420d9c7f42.json | 0 ...1894a1cd798de2f9a206f157a90d45944028b.json | 0 ...dd53f9083412fa7da893f53c1ca1c93500532.json | 0 ...ff77ef2f808306f0f8d4e46d910b6210bae46.json | 0 ...4867cabdb934ef9fea0dccb865cb1acef51b5.json | 0 ...a584fdf100e6c78c785d8a5b565d1de4b48ab.json | 0 ...79d0d64c915c6ba04099206e3fed5b9d5a4a1.json | 0 ...30ef0c70b76c5d5b5465b0ad4f08d5433684f.json | 0 ...f3119480996ca014ec0f8d26d74db617b5852.json | 0 ...1c6d615c395d70f7032763aa8e89f16fb2bdd.json | 0 ...bba6c4d25fa237bbf755ab85c9a0c50b3c6ec.json | 0 ...147450db52b81232c138b9f9a65a8f9c61862.json | 0 ...61944948efff4217b5f1fe1d04d23de39d54c.json | 0 ...84c26ebc4a0a8897305d3c6bef70ced91090d.json | 0 ...f24aa5cbdbe3c5d41b2b261873d26f4077c79.json | 0 ...477eab415fbcc3d58624b07f0a768f8208f98.json | 0 ...bf811b3072390933d69f3e289a4bb673636c4.json | 0 ...e0e0aa8be4ff69facadd706b713f0bb54d5b3.json | 0 ...7eb753b28adbc1ca4914d9c27993027885aa7.json | 0 ...269d898cbe0be27e9b9ba9d21eae97b887ab6.json | 0 ...8f03ef5fae3ef620264595021609ed9ea3a5c.json | 0 ...938024315e205f26ed72ff0f0647775fa6a71.json | 0 ...0adbfb1f9f63cdc6179b9b78634add1e4f2e3.json | 0 ...49eb0fd982b27adc218364805913380af7411.json | 0 ...e313f998a27ae82a876e1c6c1374afae6f843.json | 0 ...a99584a1aef79722b2a7c6414570b54416bab.json | 0 ...4647f5210a968d186901cc511153ec442e897.json | 0 ...d9553df45256ed2aa388aae7ed5a1a4f51bae.json | 0 ...44068899635154addec16005167113b9c1e9d.json | 0 ...6b4a7552bec81f12788cd02a6c986e64479af.json | 0 ...1b4dae791e458db94775d675fec1fb5efb15f.json | 0 ...5b06cedb2425f4363f10642c9b0e63e496af0.json | 0 ...3cb229b99e6771c6c6c2b884ae006d8160a0f.json | 0 ...0e5550702bb81458a1987f3054085aeb8353d.json | 0 ...856380fa4f66469552ce986edf59f65f7cd68.json | 0 ...2af10bb05c88a2731482cedf2cfd11cf5af0b.json | 0 ...433c6b6b5b98dcf4cc11aff31cdee90849f32.json | 0 ...311f1d62cc5a0136456748de9d20c6bd589fd.json | 0 ...baaebf70e0148f485f27d5616b3d3382da7bf.json | 0 ...ade9fa2b555899530a31cc8cbd1dff3bf5eea.json | 0 ...6e67f04d8b8cf16c64b466a4e7a04c497f271.json | 0 ...ea58a5ccbefcfadc2d4b7b8045fc6c20ab812.json | 0 ...deceb3802049388e167e3b14fda5843ad16e6.json | 0 ...748490d1772d72274bf8b9efb72c5c2160237.json | 0 ...2b72cc229e05d36716c3d7739885d3ffa72e6.json | 0 ...ab3fda05004ee5f6035f2a0bf099fca39a129.json | 0 ...57a67d0f9b10e8442d6db6d711bf00185ea66.json | 0 ...83b64196cb5df16eb4d1a782da08f320a8014.json | 0 ...65c6827a566e626bde75a4289609fb65ac657.json | 0 ...86c39ea3669ef26d4d7d7cd0c44f513fcd117.json | 0 ...7a7567228cdaf8b7aa4a9e3d212ef9d4cc0ed.json | 0 ...e26e314f471012ee4ee60b5cf1831c0ed6a45.json | 0 ...2b18bb094f92f62a3113a8075240ebb59affa.json | 0 ...5a0f414bde4bc941e623482221db2fc8c4ab5.json | 0 ...89ca7c5a20cbddde69ab1a6dff8fe3ecbfd70.json | 0 ...c1ccd62aec198da4aefde1dae20b1167b131d.json | 0 ...25aed323d04f2add0410e84038d250f51b616.json | 0 ...62ab695238af0e7402f41c4bf9ad862bd37d2.json | 0 ...74b10ea6764e373ca2bcb420fdb4a6f6b5918.json | 0 ...16627b940bb15e50891f82cad6c3e3465bd6d.json | 0 ...e6b5afd8d7c3f7c66efa1a2a384e15267f9be.json | 0 ...87dbc147d1cee8164f5d61582eab8ba1e5058.json | 0 ...d3dba259be0ac7196dcc5d94b66901942d1e5.json | 0 ...ef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d.json | 0 ...d8c75e898091b925519803830fc2721658d07.json | 0 ...efd2034d50af73e2876d703213601df384e88.json | 0 ...2e94772b6eb43759e34ed1ad7da4674e19cab.json | 0 ...c3012e45889657f72359b005af7beac47ba3d.json | 0 ...877827ec9656af74d596d8528f5276e0fa99d.json | 0 ...c4505f6a7a1aa758d62b58150dce43cfa473f.json | 0 ...7e3625dd1db5f4f517a129707cb299c48207a.json | 0 ...f8ca02c276dce02f8dd42a44e776ac03fa9bc.json | 0 ...b430d740b9a7ae4d9a6d44357d83561e1124d.json | 0 ...906637ffd2b4cfde561f40a6f4eaab6bade13.json | 0 ...dde78a7d174dc0bf0be77102b205e844c7998.json | 0 ...c6d9c1a5c1ce5303a5694bc9f49819c772f5f.json | 0 ...0779bb66f2c63444ee41b61c2d9a1c7b389ca.json | 0 ...0a6e35e5c1a4e541fb53538bc527daa41ba7c.json | 0 ...8097cc1d35da8ced4b771d191b6d44c5d9fef.json | 0 ...9884ab00eb0b63f7793ce8664ae55af484eb1.json | 0 ...a5cd1c5cca97929a7c8ea4381441447a36f26.json | 0 ...594f1f4a6674010a6f1603c07a919b4d7ebd7.json | 0 ...27ab0cc0e7974beee760eb042827a44dd12f3.json | 0 ...727bf3f8f7a9d23ee8e65a5209944c80fde58.json | 0 ...6a91bca11b83c16fba8f8fd407e937a2ac89c.json | 0 ...ffd1241e67f7e514b5fcc9eab4902721ae575.json | 0 ...d5b7209295a5b7ff8cae0df96e7870171e3a5.json | 0 ...cdacc6f955f080734109900a1658ae7e0d248.json | 0 ...75ed27633283e7fc296c8bca22e841224c096.json | 0 ...64b7233d58809062846391422571f94f0f9d8.json | 0 ...acfc52569459a4a654727cad2546820cb0d6a.json | 0 ...c29f42a614420b2205c178f22d30b43a8b0bb.json | 0 ...bd6b74c5eb56151bfafe91e7fa6a82b6fee25.json | 0 ...a01442b5d5a6b9b16ff3cf15d529a92d9d75c.json | 0 ...e39d2595de3a2a2cee84372bf925d774d3a6f.json | 0 ...e640e7edb592a4022fa41e794a10e292955d4.json | 0 ...f65ac1bf129edb222c3293a636ff4b67534a6.json | 0 ...970cbc98718dbee8f0a34374fa2b1a1db2248.json | 0 ...a5fca2e34db413be624fc83aeea8e61d42ce6.json | 0 ...e64a8ef09f1f1af207725b40022d8d7a9dcd7.json | 0 ...a299ed52d4ef9521ccd65c6c52d563129d8af.json | 0 ...9b0feaf9715af490612f00954c6a76374a907.json | 0 ...19e509d6bece8ccd74aef027c4ca947363095.json | 0 ...3a4cde2075a4f5458fd0eb199627f5124508d.json | 0 ...19b1c76f69f7b50e4195f41dfb1cb49a9fe66.json | 0 ...9edbd7aaadf3c101281d43579d617b859e2fe.json | 0 ...221fbef28b478debb78dd233f5250b220ca99.json | 0 ...c571db50d5eb3b10eaa4d3c43c99321032223.json | 0 ...4459a8b0dcd32877107f6002cc429a71659d1.json | 0 ...d6f8148178b5cfe80ab21b3dc36ab7d49f6ac.json | 0 ...a3ae28fe6ddaee1af2c120f01e50201c1401b.json | 0 ...63d6a44c56ca13baadccedc46fd66b001fdbc.json | 0 ...9fc8fe011352879e3bb6660966eafc0847233.json | 0 ...de06da08323f25bd4bcc4a1832862f2b58c08.json | 0 ...d51e05c68efdbddf642735f164fc914358cff.json | 0 ...687f0e7ff0cddcbd05c98fd3ca12db9c45ac8.json | 0 ...e191c17a53144bf4d62f3863c110be08e3fd3.json | 0 ...d32791f07d59fefc62ddc8e34a6a73f56cc4c.json | 0 ...e2945c75c817f594e2e737bdd7bf68cba6bc0.json | 0 ...50907b70f4f3b328b6c1600df21fac1a1889a.json | 0 ...a8aa5752e5774ffcd342a6f987d61bd5d84a5.json | 0 ...22348c8d5cba471418dc94f9e384e384e796f.json | 0 ...8a8bf3fe26ba43a8aecf7e8eb1033ac285808.json | 0 ...9d47a2736e75470985949137241c48457bf50.json | 0 ...20f0a7716715df150f6adc5edd3444a088196.json | 0 ...cdb6cd409a30ebf91a33841575a1c7fd1bb1d.json | 0 ...0fb5500710471c031cb86f899bfc3f4a6bafd.json | 0 ...2b3a2455511c3fd37521d9b00972c5345b75b.json | 0 ...3f7a9c246f1ebedc6eefd867cde250b370380.json | 0 ...8c3bcf40ce64fee61e807ee3e1395fd6bd954.json | 0 ...7816315095c86410527932918c718cb35e7d6.json | 0 ...10ef702e76585ea498bdfb2b40181017623ad.json | 0 ...82c5a1a79ae02477db13e721c8365f31a4840.json | 0 ...472da99dd27fd1cd817ae47cd2e3328d1049b.json | 0 ...97b3b51228d5009b47a09cc7c8e9774877f5e.json | 0 ...17f475ba1282b619477bde8e708d6a34287cf.json | 0 ...b21729ff53dbf8eadd8bc97e0e30d77abec95.json | 0 ...15e64659ea966eba58bada2b51112b07d284c.json | 0 ...314d348f9b5521e3c66856324d7a9c4a928c9.json | 0 ...341a2b869ade738bdce64d13075d4fe4a5677.json | 0 ...f8e8bc0f3d08ec0c0ca24b01226441bcaf03a.json | 0 ...05af402ac9b9e54b33ad900da60845ab77961.json | 0 ...89b1a543d3db982744179d846fb8e8397e889.json | 0 ...d8ac38de835021c8d2f920dbf50a920ccc030.json | 0 ...3e75c6082da3a08f229b9c565e64b5b24a8a3.json | 0 ...40ca392ca23e874a105c5f3248b495bd0e247.json | 0 ...df97ca57a249df5d8d68cd0820600223ce262.json | 0 ...b1ea55dedf3ce992cae0fbc1012b22b373290.json | 0 ...2ec09b74cca0f8d8d3450566bf77c77f81e8d.json | 0 ...df2c9280033c93a7ed089c294566dabfbf693.json | 0 ...e257c68517c1410f4b48ac9852ab5642a3f8d.json | 0 ...f2c53d84ca78702bc3be6c7ef0788ffca01d3.json | 0 ...24f538d05aaf66f7972fb23959d8cafb9f95a.json | 0 ...b96369ef86c7e85abf5d662a1ca5d89775053.json | 0 ...ef4cb4fde6a486818467d806b912f938e57f5.json | 0 ...5b36a9b8133090a73112cb03b09fb58a5c506.json | 0 ...792536ca236a971d0efbcfd7af4efb8f6c119.json | 0 ...d3f1de158bb61090e0c8053df93a10cb548e1.json | 0 ...1393804dcc8655c3361c1faf256c9291bf26b.json | 0 ...e3b80f9c1ffb30bbe736c5a42e4a815a79197.json | 0 ...4cf2681c6c9fe7b260e0e84de96298dc9c18b.json | 0 ...b37d35acd8afd82be3f567a4b7231d5bdb928.json | 0 ...ed0e5e3b9cd2b5e2f07ef31c72f43c55e93b7.json | 0 ...0016454f6d33da64d03dbd1ea71fd0fac299f.json | 0 ...e74cf06f7a7f5f3a52a9d6c1e8f62ef1253dc.json | 0 ...7f6fed68e1b961f76ec0fece9e7c684679e75.json | 0 ...fdfc394deaed5c57bd45a64ac4294dc976a72.json | 0 ...0b89b1c82aa657708eece3e690bf39cf0ead5.json | 0 ...88a4d182bdae23e3a4989abfb7ea25954aad1.json | 0 ...fcbb65283bfd8ab37475043ae2ac8fe8671f4.json | 0 ...4aba1d5564df418f0e87f6772916c80a9a00a.json | 0 ...6186b246f5a36bd1f3f295d14a43abb1e2f38.json | 0 ...aabc6dc88e20dd0fe290a2d3dfcac03b2706f.json | 0 ...c83dd5ff1ddfae2f642401f67db550428aee3.json | 0 ...391978e7c0693b75a82c219e059b6ffee35c4.json | 0 ...5267aef5175b3f6c3387d502070c68f588ad5.json | 0 ...4574949f5cd0b5eddfd7bc4fd54bb56e00c72.json | 0 ...d868e0d174f5a8447b011bd714d18a5f2abec.json | 0 ...363ee93b17cfe31587b5102679885cb40837e.json | 0 ...70c12d363f9b7c6ace259891b783b0fab64dc.json | 0 ...e6d9f46990b9585dc1fb5b8aabe491c08aaf3.json | 0 ...0085a8437c0ae94d6b5ad2741739ebc742cb4.json | 0 ...4338413c3ed73316350f64248a152433073b6.json | 0 ...f0d559c8a87d912a20971bbd84afc80a54b0f.json | 0 ...2b6dc95bd9f719e43c4e9f29a00640f0f0bba.json | 0 ...1afceb8886cc11e25047523c4e0c7e1f5d408.json | 0 ...955656c87de0d80d259792e3a0e4a23b7c260.json | 0 ...f014e9658da6647361e7e416d1a159d34192d.json | 0 ...19d6ce1d23a5ca766ecc08199df1e27028d43.json | 0 ...b0d9e9b44393efeb735f664672a74732cdc8b.json | 0 ...183e04096094bcc37d9cde2a4b96f5cc684cf.json | 0 ...591ed328a2d4ce6505819e2f5898a78132f7f.json | 0 ...7090e310ab697b55c84373da954674f653b37.json | 0 ...deb3f0f1683f3e0562f491b5e316240dfbc2c.json | 0 ...8dc58fbcec7b235a40f550445c8d6877342e1.json | 0 ...f521a050e6ef076778bcaf16e27b2521df8f8.json | 0 ...fd459865a8d636f26aca0d330ae297c006c3c.json | 0 ...b11214dd2dda6ce012dd98ea498e9e8b91262.json | 0 ...90e5ccc5e325fd24f0746e7d6689bbebc7c65.json | 0 ...df57426107e7a8eebf469a017833e01389438.json | 0 ...54fd60631a3828c2e2c9b079b5d1d2d8c8c37.json | 0 ...4eabc98fb5dc75d90b8b5fca440ce8aac4c44.json | 0 ...f509e0bb80f3e5988d36df34d4841cf344fa4.json | 0 ...ad1ad30cca8d303b4bcb2bbd77573e4d66122.json | 0 ...1c718295a896918dc93cb1ff14f2f895a1b90.json | 0 ...3200c37df4ed378042de11c4e9ff34e4e58c9.json | 0 ...52bbfff0419c8bf616b602bc59fd28f6a3d1b.json | 0 ...00d88be4866db1b15f8b954ab2573bba9960f.json | 0 ...35810e91ab8fc39ba5e7a41bff6f697e8e3a8.json | 0 ...c76ab94207adc619e02b061f864e967983c22.json | 0 ...fb03275c7cf04906cb5b94faa60005561fc83.json | 0 ...e2500d9e57389c8b873fbbd016852c8ed8d0a.json | 0 ...0c5466638e963479ba5e64e601e42d1a43447.json | 0 ...a2b2437d739a455ecafb66a22a46d31b233ed.json | 0 ...bee146508eb837aadb52388069f1fb4037a55.json | 0 ...1ab513932694fccaed8c2d40e2e66630fdc88.json | 0 ...2b7f12cada3d1359e353c416568b4c3f6df69.json | 0 ...90c0310ed240f5781b55b6eb6d5b9f0e2955f.json | 0 ...39267b42051b0da3d16ffa8f48949dce8aa8f.json | 0 ...86c5ed20a62dc34b7718c50abc782beae4c33.json | 0 ...9708d235e582483d299642ad8682826ebb90d.json | 0 ...73ea196127383f356d39be466e2f3bd163083.json | 0 ...8a7ec48f6b980a778d19eeda613635c3897c9.json | 0 ...77896ff0fc190301436ff32a592f3bab75e6b.json | 0 ...d7d5efc9aa6eb3c30cfb3be6dc09bca5e7631.json | 0 ...6f6a6e665b8b5f66038819f15701dbfe2f0da.json | 0 ...e647ca4226fcb38a5af178a97ce8ba9129184.json | 0 ...efb9231a49e6a2fb21c87bc1289e6aeee71a9.json | 0 ...322b685a81c11c16bddd22282925b7d0272e8.json | 0 ...977f72b68da673ec493ab5df0beacacc7a88b.json | 0 ...690f0d751898a0ed5eab4c5242a9e182b54b0.json | 0 ...809135135e262a912cf583b2c90deb9ded610.json | 0 ...76b3c7183f479717bffed3f640fb92afbd3dc.json | 0 ...6acfeb8126e097f758c664aaa3da929e27da0.json | 0 ...29bfbbae455ad69c967be19aee3fadd6486e1.json | 0 ...739ba53ce7c0d6d6f5c9ab90a832302c0b623.json | 0 ...d48e186460b32d44585ce3c103271ab676355.json | 0 ...14a00716fa616b69d51bab957aee483bdc9c2.json | 0 ...af749fe75db788dba8def502c46c094435605.json | 0 ...3b2a6a04ffe81308cdd8916c062725a8ed1e1.json | 0 ...d1cf9c9ba8c7d8546f24c1248433bdf827153.json | 0 ...9894d089554620134408b3cb6ea515489dc14.json | 0 ...9725521c0dff7712d54f26322ac3463572394.json | 0 ...c7257fc89546563dc92a0764cc96c4445b2b2.json | 0 ...ac6347b7e88a562ebc826a5ee9a07c7b4cab7.json | 0 ...3b9485386425213e2973126d6f57e7ed83c54.json | 0 ...3c217a1a8206cdebdab1703b52ec6180edf37.json | 0 ...06cb8e93e5e8879152ff5c948b175abb5b997.json | 0 ...9d5780da342eb3f0f5e439a7db06f7d112575.json | 0 ...1a7c57bada458fa7f5c0d3f36bc1af4ccbc79.json | 0 ...afc5604ee9172293eb84a381be6aadd660317.json | 0 ...cda5721a78a7884db92f13c5e89f7643d52dd.json | 0 ...376c5dedb71cec7a88b8a8904acc5dd6c6ba1.json | 0 ...67e31a54207dc987aca5bb0941c4d2e3fd9ed.json | 0 ...b5fff73850b2e42bd4de7cb9a4310a78ac40d.json | 0 ...15500b9cb2b27d59627f202e6cd6bb87f49fc.json | 0 ...8fa45dbf4c55bc23cecea17fb90f43bccf588.json | 0 ...eda788a293fa29665dc3fa3d6e63bd221cb0d.json | 0 ...6914b326edb0ccb123ffdc60f00060bd513fa.json | 0 ...a9d0800f2a5da166dbe0eb9fb2476018269b1.json | 0 ...4bcd4d619fc3574761d63d7cf7b7291332c79.json | 0 ...c84e7af9081ea95cc4563559fd53e119e6038.json | 0 ...9a6938ad77326ac3a94d92bbc77933ed829ed.json | 0 ...c06f032f9d6c148ea6b96b48261d6f545004f.json | 0 ...ac77d5a4edb64901341253fe9e756cb94dc34.json | 0 ...7dc18bf272f7f2be1c9094307fa0462787ff2.json | 0 ...13632a4578ee4d0b8b1c4a69888c8a0672c4b.json | 0 ...2e93510ad6cfc3d62a90d903b7056e4da8264.json | 0 ...69fec751d6d11f62019c863b2cba4ce575bfe.json | 0 ...c21221e299b56e6ecb297e7710c63e7b7ba87.json | 0 ...bbff47055bc3f1cddfb768881b395c4ac19c2.json | 0 ...45dcf251823c1769909cd43698d126db38deb.json | 0 ...a636dc5d16b56819f3266241e1f708979c233.json | 0 ...53f601890ec682bbf8f5659b70f15cce1d67d.json | 0 ...b5a94c976fbb65815374f61ab5392a220b084.json | 0 ...085141c2f201b1c534e6926eb39bb52d9db3e.json | 0 ...4883216fd1c1dfc17d41418a960c002cfff57.json | 0 ...dde01dd672ba4f6819d85218beb01142dca27.json | 0 ...a099de7c700e7ce44f4ddeb0fc1a078bd0067.json | 0 ...e1499c27a156a797d9f1539ffb7892855c1d0.json | 0 ...00b8b09b09d299f12ff0709438896153082a6.json | 0 ...c7e8064d93a8d8bdd418103ec48cfafbc4841.json | 0 ...56bc5ef1a76d727745d21fd1cf195340c1020.json | 0 ...dd85f25cf4a3e15465a59594f4125b7f48d39.json | 0 ...f962ca21a104b08836f34814eb6b267937511.json | 0 ...cbb2145c227cdac34b7a6a866e274f06e6e12.json | 0 ...73eb85a06eb3d706af362a45d42d0972f4b46.json | 0 ...9896cf25ceabc44096d5f088d86414e05a7aa.json | 0 ...b5eb89da31cddc2abc91aa5b30bcc6d66e70c.json | 0 ...be2fd83710de8392fb554927a5d495684a13e.json | 0 ...f46c485192f4506035088c9065b9f5dbba9ab.json | 0 ...3de6fb1776398bf586cbd477deade1391c7e4.json | 0 ...ac024d165c373396e1f125666848d1539a38d.json | 0 ...47dd3ff96dbde6d9c614db0d7f019d7c7a2b7.json | 0 ...c7a53f21cd0d2dd1cce9ea000e7f6a5398c2f.json | 0 ...e1adf9730aad8e531690d2b3752b663ebbdaa.json | 0 ...409804a77c9fc71d894d8c818682c744c78b6.json | 0 ...a8be2b10650dad50dfee9324ed8d16eeec13f.json | 0 ...57e59c24175e1f7181db7524c6df605e50031.json | 0 ...9e5c51517a73e61647286ab21252074512c63.json | 0 ...66925dcfaced89a892b75a695b2d05a676c5e.json | 0 ...3da723c603eb43c5bf03aeb27e79c06a50e0c.json | 0 ...6d637a87379658ee8f326c4e7875315d1f926.json | 0 ...db68a86199a9fa5fd9628d8e290aafc0f6917.json | 0 ...6ced81d029258d449bdec2ba3cddca9c2ca0c.json | 0 ...c867c30dfa24461a9fab356ff57a4bb22650e.json | 0 ...d26e3054ef005ec273fbedbaad257d5d393cf.json | 0 ...59935720ea88dfcdf9079c394ffdb5146ceab.json | 0 ...87f70c7ece72000b32ee1b3c02755ba5361ac.json | 0 ...72232c2d24c174beac7ef03dff63907cdda46.json | 0 ...301f23f324d1685678bcbb1682643e22b3a67.json | 0 ...cd55fc452ba5524147280c451fb3ace350ec4.json | 0 ...8dca3f1b4ede4c30371002441c88c12187ed6.json | 0 ...bb9ac3a3fd789754e2e54220bcfc27076a857.json | 0 ...2b006cb34c921db85b8e2f482ed3144a4574b.json | 0 ...f6de01fee738eb15f24efb0ec549587009f1a.json | 0 ...c956498841e1ab458577d3892003e553e4f3c.json | 0 ...39e091e2c995db93e8febd2814e9235225925.json | 0 ...9ef6aa0b9040102d1b3c9a6ae934df746ef94.json | 0 ...ea0e79c6d894c120cda4ee8ee10fe6745e187.json | 0 ...13aa012c915c6a290d2a85950af67303e75f9.json | 0 ...6be13c51448f89107d082ec81e2b6731671fa.json | 0 ...4fda4a7ae5bc3e795bd17190fa7a9bc694b03.json | 0 ...ae9a1af77400d02c498f0ad943f2858845398.json | 0 ...57b5d0f56ea3288c7206f56717ca19ffe5358.json | 0 ...227f118077d1f2b57842a32abaf105b573b8a.json | 0 ...39936eb2c17694aba3fd922adfe8a85c5e8df.json | 0 ...11470b571c35156723a163fdcacd1f58b1809.json | 0 ...75089acb540fc60752606a3d3ba809dd1528b.json | 0 ...74c966d1433bf4f5e233a4aad17dfe8ce1bdd.json | 0 ...5e8f01efe6e778cdc65a1858ba3c5ce629786.json | 0 ...8546116457bdf1c5bdfb13ecb9463d2bb5ed4.json | 0 ...6268252c22f5c11e82a7b87423ca3982e51a7.json | 0 ...c6a58958587203f624528ff46b1d4b2b0f2fa.json | 0 ...74e5c92313f01a28dfbeb78d96e81231edab7.json | 0 ...cd000916d64fa0c5d09cc809fa7ad244a5767.json | 0 ...215ceb2884ddf520d321bcd822d1461330876.json | 0 ...b529ecec86cbcad2ced2a567cb14ab20b10d5.json | 0 ...1ea29f1b9664d928acfddbbd9c76a942e2238.json | 0 ...26da7ef2d301eb8f4ead91aaf026aa2b52881.json | 0 ...f824b57476e369b5e656f53d4c431c5b04b9a.json | 0 ...e757d5d68c164d084b61d84e3b7cd14eacba9.json | 0 ...19bba8f0089490962316867bd222727510ac5.json | 0 ...bc65bee49e1ac33d7bab178d1e4b4dd346881.json | 0 ...61ba8d01fc6213db44b702c3c38bfdc5c887a.json | 0 ...b73f8a4d5bc2bf50b21e3c0fb478b8f282486.json | 0 ...e976bedff57e69e1b3d89a7c2a3c617a03dad.json | 0 ...bd5c131fd7baae97c31896004d45f85bde6a7.json | 0 ...51df193a7966f9ed4da43d555eee0913d84d1.json | 0 ...c0b9270de3b2fc3e2785dfa7355e70a0b5fc7.json | 0 ...e678e7fa9f1249253f06c8c0797ddc67a9df2.json | 0 ...3b678245991e74839f201ecd3f22b75465813.json | 0 ...44b75dcf861d8bf1f1322780b8811f982e31a.json | 0 ...f1f20ba92a819401d66ae4b2179b0775b0e12.json | 0 ...bfc4522dd0bc87bbcdb4bb3088082755c5e87.json | 0 ...3b5b9b936872bc6c84b4395286ce684e3b431.json | 0 ...c42e8a273548af89f8b005179bf2b4b1bb2f1.json | 0 ...f6b62b6db2a8725cafa75360ec960d581a809.json | 0 ...4546eb44556ea40efdf4b108cb11477266a5e.json | 0 ...1b23c42b96197a097fe42d37171f32459fecb.json | 0 ...b91428b4401fee584934f4c7ffc90ff84581b.json | 0 ...b7e22bd6d594a16c487cc138970fbd2a77d40.json | 0 ...b44c901ceb37d3f98715b2b9d857ca64e4db6.json | 0 ...e2c8b2f0891c80e1f0f794bc7c26dd50f2949.json | 0 ...31c385ee2a2d0484c49ed859911798e4e177b.json | 0 ...69f60bfc6fffba5ca9598761361d1f5ed6105.json | 0 ...427241b7790a1ad86794725b311245ed3b470.json | 0 ...4e03236ca03f4c98056fbccd66e89b5281e15.json | 0 ...001c93f25a1e7258e762781a7361f122d29f5.json | 0 ...6f9e5333472a1931d00f521252901d60e0c76.json | 0 ...bcdc00941188ba27123a4857b443e3c9392bb.json | 0 ...7b86a1e5b5cb63c8385ae1adc759e372ee8f4.json | 0 sdk-details/sdks/flutter/definition.json | 111 ++++++++ .../sdks/flutter/provider.py | 43 +-- .../sdks/flutter/tests/test_provider.py | 18 +- sdk-details/tools/test.py | 30 +++ sdk-details/tools/tests/test_validate.py | 32 +++ sdk-details/tools/update.py | 65 +++++ sdk-details/tools/validate.py | 244 ++++++++++++++++++ 583 files changed, 910 insertions(+), 89 deletions(-) delete mode 100644 .github/workflows/fetch_flutter_snapshot_hash.yml create mode 100644 .github/workflows/update_sdk_details.yml create mode 100644 sdk-details/README.md create mode 100644 sdk-details/catalog.json create mode 100644 sdk-details/schemas/catalog-v1.schema.json create mode 100644 sdk-details/schemas/definition-v1.schema.json rename {flutter_hash => sdk-details/sdks/flutter}/README.md (77%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/035316565ad77281a75305515e4682e6c4c6f7ca.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/040747ed404590aa25490e48b15db10a75e16cba.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/042c82b02c83c20e57a67d86a8d3b7677d983556.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/04817c99c9fd4956f27505204f7e344335810aed.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/04f3c6557c02879191a558320ed8ec81f8b2b619.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/052f31d115eceda8cbff1b3481fcde4330c4ae12.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/0545f8705df301877d787107bac1a6e9fc9ee1ad.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/059e4e6d8ff6de39c29441c53e949bfb0bf17972.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/05e680e202af9a92461070cb2d9982acad46c83c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/0602dbb27547cd03d8f8e816b7995cace854f7e6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/060c2cc550a0b0d37aa48d40b5f1bb8984b7439a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/062b3a72fcbe76296ce19b02f58c03ba0cbb0dcf.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/069b3cf8f093d44ec4bae1319cbfdc4f8b4753b6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/06a7363b0cfd4092fe06eb80f829b5fbc94fd32a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/06afdfe54ebef9168a90ca00a6721c2d36e6aafa.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/06fea14e5800c35a4fc4dd10cc31b997f1be81e9.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/073263e39d1d12313c9622ac3788cc9f2b01f582.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/07c1eed46b9d9b58df78566e9b8b2e42e80d3380.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/07e2520d5d8f837da439317adab4ecd7bff2f72d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/07ec4b82c71ce2f34c72caeaf061f7ad82cb25e4.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/083282e33bbb0f7c7cbb9eb2fd1af06ecb636ea9.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/083a7c2bcaaf8f2edd1994d2830e0b4a291e7342.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/091c3b3c7b388944417b41b6d6852677c57d1387.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/09bc1fc45e505118e96afedd7ba365e593369697.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/09d05a38912a3c1a906e95099cac9a7e14fae85f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/09f1520e8b9585d133faf1eccced9357670c6d11.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/0a9f488c1306b9d5042a78cffbfef1fa4428b64e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/0b728a3140015137a1c5eb81b486afe279ddd981.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/0bd9be379a17d0e22d1f4fc1e562dbc9e6978832.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/0d4f78c952552819753a2676b318e181004ba746.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/0d83a2ecd1bb78f8e1f0ed9719ff3751cdfdd064.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/0dc86cda19d55aba8b719231c11306eeaca4b798.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/0e2c8feeeb47618ffa468bcbc7f3bd2ceb93ad6d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/0f359063c487ee70787e58b4b011cbb3c2f53fd6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/0f90e6546bf302bda9b1e8213a004ed5c16d13c4.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/0fdb562ac8068ce3dda6b69aca3f355f4d1d2718.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/109150893958777c8f2215f6cfd3e89e984e8dea.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/114d33d3caa24d260f15529e1f3f50783cbccd9a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/12bf95fd49b7456f08a1274078c4b55e675ad018.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1388adb442192ce155630eeb6806b74db07dd15e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/13e658725ddaa270601426d1485636157e38c34c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1425e5e9ec5eeb4f225c401d8db69b860e0fde9a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1527ae0ec577a4ef50e65f6fefcfc1326707d9bf.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/15d137647e372c59e8dcb78f670ab7686a0d1031.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/162b2e98c036a8f8c355fd475dbe0db4f4bc886c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/176f56329631173cec8e6b1ca6c72f34b2e9a4ed.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/17a711a7765a198264b20d8c4983f2f6f1271271.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1837b5be5f0f1376a1ccf383950e83a80177fb4e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/18818009497c581ede5d8a3b8b833b81d00cebb7.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/18b71d647a292a980abb405ac7d16fe1f0b20434.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1a65d409c7a1438a34d21b60bf30a6fd5db59314.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1ac611c64eadbd93c5f5aba5494b8fc3b35ee952.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1baf081343530dbaa8bec378fe1ce26b4897c23f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1c9c20e7c3dd48c66f400a24d48ea806b4ab312a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1cc4b2d280f5705c7901c10676eae8bdb3142631.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1d12d82d9cb54876f58044aa52198d53ec841c3d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1d35cccf5e47d19947a669000a53a26cabb5af5e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1d521d89d8d98f27be4e0ff84d5c6b72dbdc91ca.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1d537824d6d29bf9967172d32450ef0671097cef.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1d62160fdb2f5a1d20f1dccb761a2caa96804c22.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1e9a811bf8e70466596bcf0ea3a8b5adb5f17f7f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/1ed25ca7b7e3e3e8047df050bba4174074c9b336.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/20a953183580250aac2e15d36007664118bda5ab.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/20caf549695193a9920ca37752eca4f141bbef31.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/216c420a2c06e5266a60a768b3fd0b660551cc9c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/219bf5938752e0030b491565af1910c137b83dd8.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/21fa8bb99e9a20563d9a7d39afeba8e5c811a7eb.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2289072724fff78f9b07f0619796a666e00f69a0.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/22b600f240548c1cf6f5d3f9ae65a5c9e51bc443.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/234aca678a2fb70ff2659870186f97c32f8894f4.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/235db911ba279722f5e685f38b0ed30fa7e8570a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/241c87ad800beeab545ab867354d4683d5bfb6ce.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/248290d6d50a1bf1a6a246544347c03acda867a5.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/249cc9b86c45acb7e32b4097bc8a5059b91c888e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/24a02fa5ee681840cdc842c22f4cb4bdd5ec3115.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/24cf8ebd8621713a6936df783dad5019f52bc85e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/252da4808277ef1c7de0bdd7f0689fe05c7ec79c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2589785b5c5eaad64d1da3403048e61d8f230c48.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/26368225b5ec8c172422f0d9757c75828c11cdd1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/267070c17a6956de1a03dbe09cda56f0c485f41b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/26e217e6c3d487bb3c0cbf8a7edb378952a51d33.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/286e592194da983137fc023d4bfafae3839b2bc2.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2994f7e1e682039464cb25e31a78b86a3c59b695.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/299e852cb92f27c16c9bee98c4ff3a5dc5b4dfae.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/29a2f674ca2312e34a3ef796701c297dc3be1ae6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2a3401c9bbb5a9a9aec74d4f735d18a9dd3ebf2d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2abe69c6081888f28217d8dece4fde2f5490fbab.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2b1f3dbe25894d7614587f494a25b40fdb344f4a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2ba456fd7fd03d7348f9fa0952493030c85f15ae.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2bde4f0ae4304d8c6d4ed7d5d0a54bc4010f2196.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2c527d6c7e70e2f51bca1a46f1174b250f84c5da.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2c956a31c0a3d350827aee6c56bb63337c5b4e6e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2d42c74a348d98d2fd372a91953c104e58f185cd.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2dce47073a378673f6ca095e91b8065544c3a881.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2e06da3df9cb370795f49747fdfd295b8168c133.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2e163b27805be1bd178ad909f9947fe9d85c6010.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2e2a9e192d3d8f4f8aa96ca283947f4125bf836c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2e4ba9c6fb499ccd4e81420543783cc7267ae406.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2e8e96fad1ada324adca718d13410a98d9bb1036.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2f067fc4c57d53e565532f4e188c947fe48cd57d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2f0af3715217a0c2ada72c717d4ed9178d68f6ed.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/2f69e38160a301f4070a8be25dcb66120e4548ac.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/300972dbc0d1446c761c6856717cc5a00dfec2d0.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/303a3910d398ee48a3411108688ebd5ccc101e8a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/308a517184276f9526eb6026e55cfcbde1e5ad1f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3096903c8923608d3c1ccf8058a29c31a2bfbc53.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/316f6365a64bd66fdf9c1ada3ed0a91d9533b9c7.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/31c4875c7aa0079ae11a4850e2d06bd83d001960.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/31cd2dfca22a282e53eb449d8a3be93b8365c1bc.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/327ed814500baca0480a02f8555aa84a9afe32bf.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3316dd8728419ad3534e3f6112aa6291f587078a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/33ad6757e88311f4fb9d341918894e2bc30e3b20.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/33d2367950154e7f8daf9ce9992a450016289a5f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3452d735bd38224ef2db85ca763d862d6326b17f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3459eb24361807fb186953a864cf890fa8e9d26a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/34a40cfbfd369544cbee9d19f212fbbe06e739c2.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3543c00c801c49c78a0d4e7ceafbe278c9c26f1e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/36335019a8eab588c3c2ea783c618d90505be233.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/36acd02c9412d0c1e6acbe0fbcb3dd03cda038df.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3757390fa4b00d2d261bfdf5182d2e87c9113ff9.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/376ad6a64b08aa26005e3f82aed26de2e290b572.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/37779318019c397471751fe67ba0fefcd0d720d7.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/382be0028d370607f76215a9be322e5514b263e0.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3860a43379fa3a7474427a671c794fa29e555c10.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/38a646e14cc25f5a56a989c6a5787bf74e0ea386.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/38ac5f30a7026e870619c2e8e8c99c070d74036f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/38e19d01dcac654bbb941b771cc06efd4ed4a93f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3950c6140a3f1cb295364b0446627bd3a1736915.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3953c3ccd15a54a0718700aa11ead664b264b7dd.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/397deba30fcb592f17dfb31b4e9e31e17fbfae9a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/39c46dea4b7347a252218aaff5caac5dc2fec8cd.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/39c6dc9bdd3ba2bc387e6e14b72fce5f46abfcae.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/39d6d6e699e51b2874210e14cddf1a22fb9524b2.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3a3f707d5a9b17388b60ff10b9f65b0c6a3c4134.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3a73d073c8bedb678d82ee78daf05037b3a7a85e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3ad69d7be3a7231aab5525db322fc699f098315f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3bf196591bc312b38399a598f8c9e5d752de56e2.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3c51a7bfff776e9e3011384f4ff09c13a697c6b6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3e10d92b2bbb29fc932868ee025959748285657b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3e380092e270846373ee9739406bf471050c02c6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3e4e6f5c54db7a705e6d50f7f3bddfa2ac0d6612.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3e54f90f1af3b4b9846fba24a1cace62ddf7f77a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3efdf03e73dd352873fc5a7e1c0de04e52863b3a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3f3e560236539b7e2702f5ac790b2a4691b32d49.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/3f52888b3bcf7adb9bc8d7be01f717a0c15b6618.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/403337ebb893380101d1fa9cc435ce9b6cfeb22c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/40441def692f444660a11e20fac37af9050245ab.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/40a99c595137e4b2f5b2efa8ff343ea23c1e16b8.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/425cfb54d01a9472b3e81d9e76fd63a4a44cfbcb.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/42a8d4c681baf87d2f2829ed3728eee4fe2bc3fe.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/42d3d75a56efe1a2e9902f52dc8006099c45d937.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/439a21816e61b8ede0a884470f99f8b6f4307fd0.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4434a39c7d545ed47186b2f4d98cd09c8366e720.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/443cd5a1e1b3ef5d98953a6f4cf1b30df582d0ca.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4444c9cb6c9f1859c1807cff415cd716bb9612ff.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/44e5b38ee83a1282981a30abc08ffcf6cd0e44bd.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/453411bcf3961fef3e6caa57a04e7fc3e9faa037.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/453dd7174cc6555e3e9eb5f006c86e6ec221a0d2.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/45712dd2f120092ca3c78d0098b12f0079fd966d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/45c5586f2a9583d9511b742703529a92bf8f9db5.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/45f6e009110df4f34ec2cf99f63cf73b71b7a420.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4654fc6cf6416daae78eac2c211ad84c46e21625.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4737fc5cd89b8f0136e927b00f2e159444b95a73.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4797b066524201e86d6bc5c110104c390899f264.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/486f4a749e532b865d5d24990d865f7d902b8fb3.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/492bf6df86d056e47d05a3d5404f3d78939b3dae.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4959b71d6a1b1473911970428b16ac02397d930b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4971c5b2e7e66cb7abc858b4e0203ce7d39f6ff1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/49891e065313d26bbc2ddc9805fb7ed27edae174.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/499984f99cfe01e3b69d962ec4847f70c4317694.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4a466e17cb02da06e9e256a278cb9779f2abb245.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4a585b79294e830fa89c24924d58a27cc8fbf406.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4b271b2e0265428fc144c5ce6c1234680631d83e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4b6b4afd6492499b72bdc59c3a633c7721708087.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4c525dac5ebe5971c5708ef73558ed8edcf4a362.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4c8c31f591882b3c668992d2e9da761118899f38.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4cfbe45033ef2788512932fd75d51c84036c204a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4da196caa1ce854e0b3f97587e4220e14aa2c335.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4e54bc93ca9aaf2156fb06266c9fe509e8599a5f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4f18bb4dcb99d7e0d94aeff2ffa74e6ddef301cd.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4f3679cadc3804a16abfe00f51146f4291f9384c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/4f54a1dd944497bd1ec0f2acca22ff9fbd8b377a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5000ea89b5273778e84f18ad3952f2049d1c017a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/50e509c2bd0d7788feb675e38321cc5711c8d2d6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/50f226569f331edf2831a7543f55d953c3d50637.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/52c7a1e849a170be4b2b2fe34142ca2c0a6fea1f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/52cc75c62467e72200ab5cd54cee48b8313f6d86.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/53c27e519d33b4e13b01a8710b38a3591d6ca6f1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/540786dd51f112885a89792d678296b95e6622e5.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/54a7145303f0dd9d0f93424a2e124eb4abef5091.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/54ad777fd29b031b87c7a68a6637fb48c0932862.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/55406841525fba0dcb7fdf417bf021e96093459d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/55eae6864b296dd9f43b2cc7577ec256e5c32a8d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5646e86a6f442dc6f4158ae7010ab13d72a0b356.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/56f64c26474b70c7bc4d4c8785097499775d59e0.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/57d3bac3dd5cb5b0e464ab70e7bc8a0d8cf083ab.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/587c18f873b8ab57330422bce09047420d9c7f42.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/58a1894a1cd798de2f9a206f157a90d45944028b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/58cdd53f9083412fa7da893f53c1ca1c93500532.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/58eff77ef2f808306f0f8d4e46d910b6210bae46.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5944867cabdb934ef9fea0dccb865cb1acef51b5.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/59aa584fdf100e6c78c785d8a5b565d1de4b48ab.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/59f79d0d64c915c6ba04099206e3fed5b9d5a4a1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5ac30ef0c70b76c5d5b5465b0ad4f08d5433684f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5aff3119480996ca014ec0f8d26d74db617b5852.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5b81c6d615c395d70f7032763aa8e89f16fb2bdd.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5babba6c4d25fa237bbf755ab85c9a0c50b3c6ec.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5c8147450db52b81232c138b9f9a65a8f9c61862.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5c861944948efff4217b5f1fe1d04d23de39d54c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5c984c26ebc4a0a8897305d3c6bef70ced91090d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5d2f24aa5cbdbe3c5d41b2b261873d26f4077c79.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5d3477eab415fbcc3d58624b07f0a768f8208f98.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5d8bf811b3072390933d69f3e289a4bb673636c4.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5e9e0e0aa8be4ff69facadd706b713f0bb54d5b3.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/5fb7eb753b28adbc1ca4914d9c27993027885aa7.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/60b269d898cbe0be27e9b9ba9d21eae97b887ab6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6158f03ef5fae3ef620264595021609ed9ea3a5c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/617938024315e205f26ed72ff0f0647775fa6a71.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6280adbfb1f9f63cdc6179b9b78634add1e4f2e3.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/63949eb0fd982b27adc218364805913380af7411.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/639e313f998a27ae82a876e1c6c1374afae6f843.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/63ca99584a1aef79722b2a7c6414570b54416bab.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6474647f5210a968d186901cc511153ec442e897.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/659d9553df45256ed2aa388aae7ed5a1a4f51bae.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/66344068899635154addec16005167113b9c1e9d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/67f6b4a7552bec81f12788cd02a6c986e64479af.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6801b4dae791e458db94775d675fec1fb5efb15f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6955b06cedb2425f4363f10642c9b0e63e496af0.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6993cb229b99e6771c6c6c2b884ae006d8160a0f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/69f0e5550702bb81458a1987f3054085aeb8353d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6ac856380fa4f66469552ce986edf59f65f7cd68.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6ba2af10bb05c88a2731482cedf2cfd11cf5af0b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6bf311f1d62cc5a0136456748de9d20c6bd589fd.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6c0baaebf70e0148f485f27d5616b3d3382da7bf.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6c2ade9fa2b555899530a31cc8cbd1dff3bf5eea.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6d86e67f04d8b8cf16c64b466a4e7a04c497f271.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6e2ea58a5ccbefcfadc2d4b7b8045fc6c20ab812.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6e4deceb3802049388e167e3b14fda5843ad16e6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/6fe748490d1772d72274bf8b9efb72c5c2160237.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/7112b72cc229e05d36716c3d7739885d3ffa72e6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/711ab3fda05004ee5f6035f2a0bf099fca39a129.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/71457a67d0f9b10e8442d6db6d711bf00185ea66.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/72283b64196cb5df16eb4d1a782da08f320a8014.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/72665c6827a566e626bde75a4289609fb65ac657.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/72986c39ea3669ef26d4d7d7cd0c44f513fcd117.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/72c7a7567228cdaf8b7aa4a9e3d212ef9d4cc0ed.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/72ee26e314f471012ee4ee60b5cf1831c0ed6a45.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/72f2b18bb094f92f62a3113a8075240ebb59affa.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/7375a0f414bde4bc941e623482221db2fc8c4ab5.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/73d89ca7c5a20cbddde69ab1a6dff8fe3ecbfd70.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/73dc1ccd62aec198da4aefde1dae20b1167b131d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/74625aed323d04f2add0410e84038d250f51b616.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/74662ab695238af0e7402f41c4bf9ad862bd37d2.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/74b74b10ea6764e373ca2bcb420fdb4a6f6b5918.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/74d16627b940bb15e50891f82cad6c3e3465bd6d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/74ee6b5afd8d7c3f7c66efa1a2a384e15267f9be.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/75387dbc147d1cee8164f5d61582eab8ba1e5058.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/759d3dba259be0ac7196dcc5d94b66901942d1e5.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/767d8c75e898091b925519803830fc2721658d07.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/776efd2034d50af73e2876d703213601df384e88.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/77e2e94772b6eb43759e34ed1ad7da4674e19cab.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/78fc3012e45889657f72359b005af7beac47ba3d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/793877827ec9656af74d596d8528f5276e0fa99d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/7a4c4505f6a7a1aa758d62b58150dce43cfa473f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/7a77e3625dd1db5f4f517a129707cb299c48207a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/7a8f8ca02c276dce02f8dd42a44e776ac03fa9bc.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/7a9b430d740b9a7ae4d9a6d44357d83561e1124d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/7b8906637ffd2b4cfde561f40a6f4eaab6bade13.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/7ccdde78a7d174dc0bf0be77102b205e844c7998.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/7d8c6d9c1a5c1ce5303a5694bc9f49819c772f5f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/7d90779bb66f2c63444ee41b61c2d9a1c7b389ca.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/7df0a6e35e5c1a4e541fb53538bc527daa41ba7c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/7e68097cc1d35da8ced4b771d191b6d44c5d9fef.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/7ea9884ab00eb0b63f7793ce8664ae55af484eb1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/7eca5cd1c5cca97929a7c8ea4381441447a36f26.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/800594f1f4a6674010a6f1603c07a919b4d7ebd7.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/81027ab0cc0e7974beee760eb042827a44dd12f3.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/810727bf3f8f7a9d23ee8e65a5209944c80fde58.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/8166a91bca11b83c16fba8f8fd407e937a2ac89c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/81dffd1241e67f7e514b5fcc9eab4902721ae575.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/82bd5b7209295a5b7ff8cae0df96e7870171e3a5.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/832cdacc6f955f080734109900a1658ae7e0d248.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/83675ed27633283e7fc296c8bca22e841224c096.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/83a64b7233d58809062846391422571f94f0f9d8.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/83bacfc52569459a4a654727cad2546820cb0d6a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/844c29f42a614420b2205c178f22d30b43a8b0bb.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/857bd6b74c5eb56151bfafe91e7fa6a82b6fee25.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/86aa01442b5d5a6b9b16ff3cf15d529a92d9d75c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/86ee39d2595de3a2a2cee84372bf925d774d3a6f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/870e640e7edb592a4022fa41e794a10e292955d4.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/871f65ac1bf129edb222c3293a636ff4b67534a6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/877970cbc98718dbee8f0a34374fa2b1a1db2248.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/890a5fca2e34db413be624fc83aeea8e61d42ce6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/8a6e64a8ef09f1f1af207725b40022d8d7a9dcd7.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/8b1a299ed52d4ef9521ccd65c6c52d563129d8af.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/8c99b0feaf9715af490612f00954c6a76374a907.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/8cd19e509d6bece8ccd74aef027c4ca947363095.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/8dc3a4cde2075a4f5458fd0eb199627f5124508d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/8ea19b1c76f69f7b50e4195f41dfb1cb49a9fe66.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/8ed9edbd7aaadf3c101281d43579d617b859e2fe.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/8f2221fbef28b478debb78dd233f5250b220ca99.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/905c571db50d5eb3b10eaa4d3c43c99321032223.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9064459a8b0dcd32877107f6002cc429a71659d1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/90bd6f8148178b5cfe80ab21b3dc36ab7d49f6ac.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/90fa3ae28fe6ddaee1af2c120f01e50201c1401b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/91a63d6a44c56ca13baadccedc46fd66b001fdbc.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/91c9fc8fe011352879e3bb6660966eafc0847233.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/91cde06da08323f25bd4bcc4a1832862f2b58c08.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/91ed51e05c68efdbddf642735f164fc914358cff.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/923687f0e7ff0cddcbd05c98fd3ca12db9c45ac8.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/92ae191c17a53144bf4d62f3863c110be08e3fd3.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/94ad32791f07d59fefc62ddc8e34a6a73f56cc4c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/968e2945c75c817f594e2e737bdd7bf68cba6bc0.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/97550907b70f4f3b328b6c1600df21fac1a1889a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/975a8aa5752e5774ffcd342a6f987d61bd5d84a5.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/97b22348c8d5cba471418dc94f9e384e384e796f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9828a8bf3fe26ba43a8aecf7e8eb1033ac285808.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9869d47a2736e75470985949137241c48457bf50.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/98820f0a7716715df150f6adc5edd3444a088196.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/992cdb6cd409a30ebf91a33841575a1c7fd1bb1d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9970fb5500710471c031cb86f899bfc3f4a6bafd.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/99c2b3a2455511c3fd37521d9b00972c5345b75b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/99f3f7a9c246f1ebedc6eefd867cde250b370380.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9a28c3bcf40ce64fee61e807ee3e1395fd6bd954.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9aa7816315095c86410527932918c718cb35e7d6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9ae10ef702e76585ea498bdfb2b40181017623ad.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9af82c5a1a79ae02477db13e721c8365f31a4840.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9b2472da99dd27fd1cd817ae47cd2e3328d1049b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9b297b3b51228d5009b47a09cc7c8e9774877f5e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9d517f475ba1282b619477bde8e708d6a34287cf.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9d5b21729ff53dbf8eadd8bc97e0e30d77abec95.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9e315e64659ea966eba58bada2b51112b07d284c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9e6314d348f9b5521e3c66856324d7a9c4a928c9.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/9f4341a2b869ade738bdce64d13075d4fe4a5677.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a00f8e8bc0f3d08ec0c0ca24b01226441bcaf03a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a0605af402ac9b9e54b33ad900da60845ab77961.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a0d89b1a543d3db982744179d846fb8e8397e889.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a10d8ac38de835021c8d2f920dbf50a920ccc030.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a123e75c6082da3a08f229b9c565e64b5b24a8a3.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a1440ca392ca23e874a105c5f3248b495bd0e247.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a18df97ca57a249df5d8d68cd0820600223ce262.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a24b1ea55dedf3ce992cae0fbc1012b22b373290.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a252ec09b74cca0f8d8d3450566bf77c77f81e8d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a32df2c9280033c93a7ed089c294566dabfbf693.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a4ce257c68517c1410f4b48ac9852ab5642a3f8d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a4ff2c53d84ca78702bc3be6c7ef0788ffca01d3.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a5c24f538d05aaf66f7972fb23959d8cafb9f95a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a5cb96369ef86c7e85abf5d662a1ca5d89775053.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a63ef4cb4fde6a486818467d806b912f938e57f5.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a645b36a9b8133090a73112cb03b09fb58a5c506.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a67792536ca236a971d0efbcfd7af4efb8f6c119.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a6bd3f1de158bb61090e0c8053df93a10cb548e1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a751393804dcc8655c3361c1faf256c9291bf26b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a75e3b80f9c1ffb30bbe736c5a42e4a815a79197.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a794cf2681c6c9fe7b260e0e84de96298dc9c18b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a83b37d35acd8afd82be3f567a4b7231d5bdb928.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a83ed0e5e3b9cd2b5e2f07ef31c72f43c55e93b7.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a850016454f6d33da64d03dbd1ea71fd0fac299f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a86e74cf06f7a7f5f3a52a9d6c1e8f62ef1253dc.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a877f6fed68e1b961f76ec0fece9e7c684679e75.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a8bfdfc394deaed5c57bd45a64ac4294dc976a72.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a9a0b89b1c82aa657708eece3e690bf39cf0ead5.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/a9d88a4d182bdae23e3a4989abfb7ea25954aad1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/aa8fcbb65283bfd8ab37475043ae2ac8fe8671f4.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ab14aba1d5564df418f0e87f6772916c80a9a00a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ab46186b246f5a36bd1f3f295d14a43abb1e2f38.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/abdaabc6dc88e20dd0fe290a2d3dfcac03b2706f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ac5c83dd5ff1ddfae2f642401f67db550428aee3.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ac9391978e7c0693b75a82c219e059b6ffee35c4.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ac95267aef5175b3f6c3387d502070c68f588ad5.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ad14574949f5cd0b5eddfd7bc4fd54bb56e00c72.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ad3d868e0d174f5a8447b011bd714d18a5f2abec.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ada363ee93b17cfe31587b5102679885cb40837e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ae470c12d363f9b7c6ace259891b783b0fab64dc.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ae8e6d9f46990b9585dc1fb5b8aabe491c08aaf3.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ae90085a8437c0ae94d6b5ad2741739ebc742cb4.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/af04338413c3ed73316350f64248a152433073b6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/af0f0d559c8a87d912a20971bbd84afc80a54b0f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/af42b6dc95bd9f719e43c4e9f29a00640f0f0bba.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/af51afceb8886cc11e25047523c4e0c7e1f5d408.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b04955656c87de0d80d259792e3a0e4a23b7c260.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b09f014e9658da6647361e7e416d1a159d34192d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b0b19d6ce1d23a5ca766ecc08199df1e27028d43.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b1cb0d9e9b44393efeb735f664672a74732cdc8b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b20183e04096094bcc37d9cde2a4b96f5cc684cf.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b24591ed328a2d4ce6505819e2f5898a78132f7f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b267090e310ab697b55c84373da954674f653b37.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b2bdeb3f0f1683f3e0562f491b5e316240dfbc2c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b358dc58fbcec7b235a40f550445c8d6877342e1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b3af521a050e6ef076778bcaf16e27b2521df8f8.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b4bfd459865a8d636f26aca0d330ae297c006c3c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b4fb11214dd2dda6ce012dd98ea498e9e8b91262.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b5cdf57426107e7a8eebf469a017833e01389438.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b6b54fd60631a3828c2e2c9b079b5d1d2d8c8c37.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b754eabc98fb5dc75d90b8b5fca440ce8aac4c44.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b77f509e0bb80f3e5988d36df34d4841cf344fa4.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b84ad1ad30cca8d303b4bcb2bbd77573e4d66122.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b851c718295a896918dc93cb1ff14f2f895a1b90.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b863200c37df4ed378042de11c4e9ff34e4e58c9.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b8752bbfff0419c8bf616b602bc59fd28f6a3d1b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b8800d88be4866db1b15f8b954ab2573bba9960f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b8d35810e91ab8fc39ba5e7a41bff6f697e8e3a8.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b93c76ab94207adc619e02b061f864e967983c22.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b9afb03275c7cf04906cb5b94faa60005561fc83.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/b9ce2500d9e57389c8b873fbbd016852c8ed8d0a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/bb10c5466638e963479ba5e64e601e42d1a43447.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/bbba2b2437d739a455ecafb66a22a46d31b233ed.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/bbebee146508eb837aadb52388069f1fb4037a55.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/bc41ab513932694fccaed8c2d40e2e66630fdc88.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/bcc2b7f12cada3d1359e353c416568b4c3f6df69.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/bd390c0310ed240f5781b55b6eb6d5b9f0e2955f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/bd539267b42051b0da3d16ffa8f48949dce8aa8f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/bd986c5ed20a62dc34b7718c50abc782beae4c33.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/bdc9708d235e582483d299642ad8682826ebb90d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/be973ea196127383f356d39be466e2f3bd163083.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/beb8a7ec48f6b980a778d19eeda613635c3897c9.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/bf377896ff0fc190301436ff32a592f3bab75e6b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c08d7d5efc9aa6eb3c30cfb3be6dc09bca5e7631.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c0e6f6a6e665b8b5f66038819f15701dbfe2f0da.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c0ee647ca4226fcb38a5af178a97ce8ba9129184.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c15efb9231a49e6a2fb21c87bc1289e6aeee71a9.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c1e322b685a81c11c16bddd22282925b7d0272e8.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c1f977f72b68da673ec493ab5df0beacacc7a88b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c23690f0d751898a0ed5eab4c5242a9e182b54b0.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c29809135135e262a912cf583b2c90deb9ded610.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c3976b3c7183f479717bffed3f640fb92afbd3dc.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c416acfeb8126e097f758c664aaa3da929e27da0.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c4229bfbbae455ad69c967be19aee3fadd6486e1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c43739ba53ce7c0d6d6f5c9ab90a832302c0b623.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c4cd48e186460b32d44585ce3c103271ab676355.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c4d14a00716fa616b69d51bab957aee483bdc9c2.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c5caf749fe75db788dba8def502c46c094435605.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c633b2a6a04ffe81308cdd8916c062725a8ed1e1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c63d1cf9c9ba8c7d8546f24c1248433bdf827153.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c779894d089554620134408b3cb6ea515489dc14.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c7f9725521c0dff7712d54f26322ac3463572394.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c85c7257fc89546563dc92a0764cc96c4445b2b2.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c89ac6347b7e88a562ebc826a5ee9a07c7b4cab7.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c8e3b9485386425213e2973126d6f57e7ed83c54.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c903c217a1a8206cdebdab1703b52ec6180edf37.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c9506cb8e93e5e8879152ff5c948b175abb5b997.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/c9b9d5780da342eb3f0f5e439a7db06f7d112575.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ca31a7c57bada458fa7f5c0d3f36bc1af4ccbc79.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/caaafc5604ee9172293eb84a381be6aadd660317.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/cafcda5721a78a7884db92f13c5e89f7643d52dd.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/cb3376c5dedb71cec7a88b8a8904acc5dd6c6ba1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/cb467e31a54207dc987aca5bb0941c4d2e3fd9ed.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/cb4b5fff73850b2e42bd4de7cb9a4310a78ac40d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/cc115500b9cb2b27d59627f202e6cd6bb87f49fc.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/cc88fa45dbf4c55bc23cecea17fb90f43bccf588.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/cdbeda788a293fa29665dc3fa3d6e63bd221cb0d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/cf56914b326edb0ccb123ffdc60f00060bd513fa.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/cf7a9d0800f2a5da166dbe0eb9fb2476018269b1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d004bcd4d619fc3574761d63d7cf7b7291332c79.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d17c84e7af9081ea95cc4563559fd53e119e6038.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d1b9a6938ad77326ac3a94d92bbc77933ed829ed.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d1bc06f032f9d6c148ea6b96b48261d6f545004f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d1cac77d5a4edb64901341253fe9e756cb94dc34.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d1e7dc18bf272f7f2be1c9094307fa0462787ff2.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d2913632a4578ee4d0b8b1c4a69888c8a0672c4b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d2a2e93510ad6cfc3d62a90d903b7056e4da8264.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d2b69fec751d6d11f62019c863b2cba4ce575bfe.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d2ec21221e299b56e6ecb297e7710c63e7b7ba87.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d33bbff47055bc3f1cddfb768881b395c4ac19c2.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d3d45dcf251823c1769909cd43698d126db38deb.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d3ea636dc5d16b56819f3266241e1f708979c233.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d4453f601890ec682bbf8f5659b70f15cce1d67d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d44b5a94c976fbb65815374f61ab5392a220b084.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d48085141c2f201b1c534e6926eb39bb52d9db3e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d4d4883216fd1c1dfc17d41418a960c002cfff57.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d5adde01dd672ba4f6819d85218beb01142dca27.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d6aa099de7c700e7ce44f4ddeb0fc1a078bd0067.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d6ee1499c27a156a797d9f1539ffb7892855c1d0.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d7a00b8b09b09d299f12ff0709438896153082a6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d7ec7e8064d93a8d8bdd418103ec48cfafbc4841.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d8756bc5ef1a76d727745d21fd1cf195340c1020.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d89dd85f25cf4a3e15465a59594f4125b7f48d39.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/d96f962ca21a104b08836f34814eb6b267937511.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/db0cbb2145c227cdac34b7a6a866e274f06e6e12.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/db373eb85a06eb3d706af362a45d42d0972f4b46.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/db49896cf25ceabc44096d5f088d86414e05a7aa.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/dc7b5eb89da31cddc2abc91aa5b30bcc6d66e70c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/dd6be2fd83710de8392fb554927a5d495684a13e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/dd6f46c485192f4506035088c9065b9f5dbba9ab.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/dd93de6fb1776398bf586cbd477deade1391c7e4.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ddbac024d165c373396e1f125666848d1539a38d.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ddf47dd3ff96dbde6d9c614db0d7f019d7c7a2b7.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/de4c7a53f21cd0d2dd1cce9ea000e7f6a5398c2f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/de6e1adf9730aad8e531690d2b3752b663ebbdaa.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/dec409804a77c9fc71d894d8c818682c744c78b6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/defa8be2b10650dad50dfee9324ed8d16eeec13f.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/df257e59c24175e1f7181db7524c6df605e50031.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/df39e5c51517a73e61647286ab21252074512c63.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/dff66925dcfaced89a892b75a695b2d05a676c5e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e133da723c603eb43c5bf03aeb27e79c06a50e0c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e136d637a87379658ee8f326c4e7875315d1f926.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e14db68a86199a9fa5fd9628d8e290aafc0f6917.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e1e6ced81d029258d449bdec2ba3cddca9c2ca0c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e27c867c30dfa24461a9fab356ff57a4bb22650e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e28d26e3054ef005ec273fbedbaad257d5d393cf.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e3559935720ea88dfcdf9079c394ffdb5146ceab.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e3687f70c7ece72000b32ee1b3c02755ba5361ac.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e3772232c2d24c174beac7ef03dff63907cdda46.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e39301f23f324d1685678bcbb1682643e22b3a67.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e44cd55fc452ba5524147280c451fb3ace350ec4.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e4b8dca3f1b4ede4c30371002441c88c12187ed6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e61bb9ac3a3fd789754e2e54220bcfc27076a857.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e672b006cb34c921db85b8e2f482ed3144a4574b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e75f6de01fee738eb15f24efb0ec549587009f1a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e76c956498841e1ab458577d3892003e553e4f3c.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e7939e091e2c995db93e8febd2814e9235225925.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e7f9ef6aa0b9040102d1b3c9a6ae934df746ef94.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e85ea0e79c6d894c120cda4ee8ee10fe6745e187.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e8c13aa012c915c6a290d2a85950af67303e75f9.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e976be13c51448f89107d082ec81e2b6731671fa.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e9e4fda4a7ae5bc3e795bd17190fa7a9bc694b03.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e9eae9a1af77400d02c498f0ad943f2858845398.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/e9f57b5d0f56ea3288c7206f56717ca19ffe5358.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ead227f118077d1f2b57842a32abaf105b573b8a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/eb139936eb2c17694aba3fd922adfe8a85c5e8df.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ec611470b571c35156723a163fdcacd1f58b1809.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ec975089acb540fc60752606a3d3ba809dd1528b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ecc74c966d1433bf4f5e233a4aad17dfe8ce1bdd.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ed25e8f01efe6e778cdc65a1858ba3c5ce629786.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/edd8546116457bdf1c5bdfb13ecb9463d2bb5ed4.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ee76268252c22f5c11e82a7b87423ca3982e51a7.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/eebc6a58958587203f624528ff46b1d4b2b0f2fa.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/eec74e5c92313f01a28dfbeb78d96e81231edab7.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ef0cd000916d64fa0c5d09cc809fa7ad244a5767.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ef9215ceb2884ddf520d321bcd822d1461330876.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/effb529ecec86cbcad2ced2a567cb14ab20b10d5.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f001ea29f1b9664d928acfddbbd9c76a942e2238.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f0826da7ef2d301eb8f4ead91aaf026aa2b52881.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f15f824b57476e369b5e656f53d4c431c5b04b9a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f16e757d5d68c164d084b61d84e3b7cd14eacba9.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f1f19bba8f0089490962316867bd222727510ac5.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f34bc65bee49e1ac33d7bab178d1e4b4dd346881.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f3761ba8d01fc6213db44b702c3c38bfdc5c887a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f40b73f8a4d5bc2bf50b21e3c0fb478b8f282486.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f40e976bedff57e69e1b3d89a7c2a3c617a03dad.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f43bd5c131fd7baae97c31896004d45f85bde6a7.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f4951df193a7966f9ed4da43d555eee0913d84d1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f52c0b9270de3b2fc3e2785dfa7355e70a0b5fc7.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f56e678e7fa9f1249253f06c8c0797ddc67a9df2.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f613b678245991e74839f201ecd3f22b75465813.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f6344b75dcf861d8bf1f1322780b8811f982e31a.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f6af1f20ba92a819401d66ae4b2179b0775b0e12.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f73bfc4522dd0bc87bbcdb4bb3088082755c5e87.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f763b5b9b936872bc6c84b4395286ce684e3b431.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f7ac42e8a273548af89f8b005179bf2b4b1bb2f1.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f85f6b62b6db2a8725cafa75360ec960d581a809.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/f8c4546eb44556ea40efdf4b108cb11477266a5e.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/fad1b23c42b96197a097fe42d37171f32459fecb.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/fb9b91428b4401fee584934f4c7ffc90ff84581b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/fbeb7e22bd6d594a16c487cc138970fbd2a77d40.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/fc5b44c901ceb37d3f98715b2b9d857ca64e4db6.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/fcde2c8b2f0891c80e1f0f794bc7c26dd50f2949.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/fd131c385ee2a2d0484c49ed859911798e4e177b.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/fd269f60bfc6fffba5ca9598761361d1f5ed6105.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/fdd427241b7790a1ad86794725b311245ed3b470.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/fe14e03236ca03f4c98056fbccd66e89b5281e15.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/fee001c93f25a1e7258e762781a7361f122d29f5.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/fee6f9e5333472a1931d00f521252901d60e0c76.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ff1bcdc00941188ba27123a4857b443e3c9392bb.json (100%) rename {flutter_hash => sdk-details/sdks/flutter/data}/engine/ffe7b86a1e5b5cb63c8385ae1adc759e372ee8f4.json (100%) create mode 100644 sdk-details/sdks/flutter/definition.json rename flutter_hash/tools/fetcher.py => sdk-details/sdks/flutter/provider.py (94%) rename flutter_hash/tools/test_fetcher.py => sdk-details/sdks/flutter/tests/test_provider.py (91%) create mode 100644 sdk-details/tools/test.py create mode 100644 sdk-details/tools/tests/test_validate.py create mode 100644 sdk-details/tools/update.py create mode 100644 sdk-details/tools/validate.py diff --git a/.github/workflows/fetch_flutter_snapshot_hash.yml b/.github/workflows/fetch_flutter_snapshot_hash.yml deleted file mode 100644 index 2d866a92..00000000 --- a/.github/workflows/fetch_flutter_snapshot_hash.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: Generate Files from Flutter JSON - -on: - schedule: - - cron: "0 2 * * *" - workflow_dispatch: - -permissions: - contents: write - -concurrency: - group: flutter-engine-mappings-${{ github.ref }} - cancel-in-progress: false - -jobs: - generate_files: - runs-on: ubuntu-latest - timeout-minutes: 20 - - steps: - - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: 3.x - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install requests - - - name: Test generator - run: | - python -m unittest discover -s flutter_hash/tools -p 'test_*.py' - - - name: Generate Files - run: | - python flutter_hash/tools/fetcher.py - - - name: Validate generated mappings - run: | - python flutter_hash/tools/fetcher.py --check - - - name: Commit and push changes - shell: bash - run: | - set -euo pipefail - if [[ -z "$(git status --porcelain -- flutter_hash)" ]]; then - echo "No Flutter mapping changes" - exit 0 - fi - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - git add --all -- flutter_hash - git commit -m "Update Flutter engine mappings" - git push origin "HEAD:${GITHUB_REF_NAME}" diff --git a/.github/workflows/update_sdk_details.yml b/.github/workflows/update_sdk_details.yml new file mode 100644 index 00000000..87d1ea8c --- /dev/null +++ b/.github/workflows/update_sdk_details.yml @@ -0,0 +1,66 @@ +name: Update SDK details + +on: + schedule: + - cron: "0 2 * * *" + workflow_dispatch: + inputs: + sdk: + description: "Optional SDK provider id; empty updates all providers" + required: false + type: string + +permissions: + contents: write + +concurrency: + group: sdk-details-${{ github.ref }} + cancel-in-progress: false + +jobs: + update: + runs-on: ubuntu-latest + timeout-minutes: 20 + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: 3.x + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install requests + + - name: Test SDK details tooling + run: python sdk-details/tools/test.py + + - name: Update generated SDK data + env: + REQUESTED_SDK: ${{ inputs.sdk }} + run: | + if [[ -n "$REQUESTED_SDK" ]]; then + python sdk-details/tools/update.py --sdk "$REQUESTED_SDK" + else + python sdk-details/tools/update.py --all + fi + + - name: Validate generated SDK data + run: python sdk-details/tools/update.py --check + + - name: Commit and push changes + shell: bash + run: | + set -euo pipefail + if [[ -z "$(git status --porcelain -- sdk-details)" ]]; then + echo "No SDK detail changes" + exit 0 + fi + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add --all -- sdk-details + git commit -m "Update SDK detail data" + git push origin "HEAD:${GITHUB_REF_NAME}" diff --git a/.gitignore b/.gitignore index 85e7c1df..65aef163 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ /.idea/ +__pycache__/ +*.py[cod] diff --git a/sdk-details/README.md b/sdk-details/README.md new file mode 100644 index 00000000..c8dcf6f9 --- /dev/null +++ b/sdk-details/README.md @@ -0,0 +1,29 @@ +# SDK details + +This directory contains remotely configurable SDK detection definitions and +generated enrichment data consumed by LibChecker's library details dialog. + +`catalog.json` is generated from each `sdks/*/definition.json`. Definitions +associate stable library UUIDs with bounded detection probes, optional remote +lookups, and presentation fields. Existing rule detail JSON files remain +independent from SDK details configuration. + +Definitions are data, not executable code. The client accepts only the +versioned operators and hard limits represented by `schemas/definition-v1.schema.json`; +unknown operators, unsafe paths, oversized input, and unsupported schema +versions are rejected without affecting the normal library detail UI. Remote +documents are fetched lazily and are not bundled into the app or persisted as +an offline version map. + +Providers are optional. An SDK that embeds its version directly in an APK only +needs a definition. SDKs that require an external version index may expose a +`provider.py` with `SDK_ID`, `update()`, and `validate()` for the generic runner. + +Run validation and updates from the repository root: + +```shell +python sdk-details/tools/test.py +python sdk-details/tools/validate.py --write +python sdk-details/tools/update.py --check +python sdk-details/tools/update.py --all +``` diff --git a/sdk-details/catalog.json b/sdk-details/catalog.json new file mode 100644 index 00000000..61ec267b --- /dev/null +++ b/sdk-details/catalog.json @@ -0,0 +1,12 @@ +{ + "schema_version": 1, + "entries": [ + { + "sdk_id": "flutter", + "library_uuids": [ + "AEF9680F-4A43-4EDC-A5B8-8119D23BCD21" + ], + "definition": "sdk-details/sdks/flutter/definition.json" + } + ] +} diff --git a/sdk-details/schemas/catalog-v1.schema.json b/sdk-details/schemas/catalog-v1.schema.json new file mode 100644 index 00000000..5ebeb759 --- /dev/null +++ b/sdk-details/schemas/catalog-v1.schema.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://libchecker.github.io/schemas/sdk-details/catalog-v1.schema.json", + "type": "object", + "required": ["schema_version", "entries"], + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "entries": { + "type": "array", + "minItems": 1, + "maxItems": 128, + "items": { + "type": "object", + "required": ["sdk_id", "library_uuids", "definition"], + "additionalProperties": false, + "properties": { + "sdk_id": { + "type": "string", + "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$" + }, + "library_uuids": { + "type": "array", + "minItems": 1, + "maxItems": 32, + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$" + } + }, + "definition": { + "type": "string", + "pattern": "^sdk-details/sdks/[a-z0-9_-]+/definition\\.json$" + } + } + } + } + } +} diff --git a/sdk-details/schemas/definition-v1.schema.json b/sdk-details/schemas/definition-v1.schema.json new file mode 100644 index 00000000..d9a181ab --- /dev/null +++ b/sdk-details/schemas/definition-v1.schema.json @@ -0,0 +1,235 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://libchecker.github.io/schemas/sdk-details/definition-v1.schema.json", + "type": "object", + "required": [ + "schema_version", + "sdk_id", + "target_uuids", + "probes", + "presentation" + ], + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "sdk_id": { + "$ref": "#/$defs/identifier" + }, + "target_uuids": { + "type": "array", + "minItems": 1, + "maxItems": 32, + "uniqueItems": true, + "items": { + "$ref": "#/$defs/uuid" + } + }, + "probes": { + "type": "array", + "minItems": 1, + "maxItems": 8, + "items": { + "$ref": "#/$defs/probe" + } + }, + "lookups": { + "type": "array", + "maxItems": 8, + "items": { + "$ref": "#/$defs/lookup" + } + }, + "presentation": { + "$ref": "#/$defs/presentation" + } + }, + "$defs": { + "identifier": { + "type": "string", + "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$" + }, + "uuid": { + "type": "string", + "pattern": "^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$" + }, + "probe": { + "type": "object", + "required": ["id", "source", "reader", "captures"], + "additionalProperties": false, + "properties": { + "id": { + "$ref": "#/$defs/identifier" + }, + "source": { + "type": "object", + "required": ["operator", "file_name", "archive_paths"], + "additionalProperties": false, + "properties": { + "operator": { + "const": "package_file" + }, + "file_name": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[^/\\\\]+$" + }, + "archive_paths": { + "type": "array", + "minItems": 1, + "maxItems": 16, + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[^\\\\]+$" + } + } + } + }, + "reader": { + "type": "object", + "required": ["operator", "max_bytes_per_file", "max_total_bytes"], + "additionalProperties": false, + "properties": { + "operator": { + "const": "ascii_strings" + }, + "max_bytes_per_file": { + "type": "integer", + "minimum": 1, + "maximum": 67108864 + }, + "max_total_bytes": { + "type": "integer", + "minimum": 1, + "maximum": 134217728 + } + } + }, + "captures": { + "type": "array", + "minItems": 1, + "maxItems": 8, + "items": { + "type": "object", + "required": ["output", "type", "max_results"], + "additionalProperties": false, + "properties": { + "output": { + "$ref": "#/$defs/identifier" + }, + "type": { + "enum": ["sha1", "semver_channel"] + }, + "max_results": { + "type": "integer", + "minimum": 1, + "maximum": 16 + } + } + } + } + } + }, + "lookup": { + "type": "object", + "required": ["input", "path_template", "max_requests", "max_items", "outputs"], + "additionalProperties": false, + "properties": { + "input": { + "$ref": "#/$defs/identifier" + }, + "path_template": { + "type": "string", + "pattern": "^sdk-details/[A-Za-z0-9_./{}-]*\\{value\\}[A-Za-z0-9_./{}-]*$" + }, + "expected_field": { + "$ref": "#/$defs/identifier" + }, + "items_field": { + "$ref": "#/$defs/identifier" + }, + "max_requests": { + "type": "integer", + "minimum": 1, + "maximum": 4 + }, + "max_items": { + "type": "integer", + "minimum": 1, + "maximum": 50 + }, + "outputs": { + "type": "array", + "minItems": 1, + "maxItems": 16, + "items": { + "type": "object", + "required": ["output", "field"], + "additionalProperties": false, + "properties": { + "output": { + "$ref": "#/$defs/identifier" + }, + "field": { + "$ref": "#/$defs/identifier" + } + } + } + } + } + }, + "presentationField": { + "type": "object", + "required": ["label", "source", "max_values"], + "additionalProperties": false, + "properties": { + "label": { + "type": "object", + "required": ["default"], + "minProperties": 1, + "maxProperties": 16, + "additionalProperties": { + "type": "string", + "minLength": 1, + "maxLength": 80 + } + }, + "source": { + "$ref": "#/$defs/identifier" + }, + "max_values": { + "type": "integer", + "minimum": 1, + "maximum": 8 + } + } + }, + "presentation": { + "type": "object", + "required": ["summary"], + "additionalProperties": false, + "properties": { + "summary": { + "type": "array", + "minItems": 1, + "maxItems": 2, + "items": { + "$ref": "#/$defs/presentationField" + } + }, + "details": { + "type": "array", + "maxItems": 8, + "items": { + "$ref": "#/$defs/presentationField" + } + } + } + } + } +} diff --git a/flutter_hash/README.md b/sdk-details/sdks/flutter/README.md similarity index 77% rename from flutter_hash/README.md rename to sdk-details/sdks/flutter/README.md index 1a9d0bbe..771f21e1 100644 --- a/flutter_hash/README.md +++ b/sdk-details/sdks/flutter/README.md @@ -1,6 +1,6 @@ -# Flutter engine mappings +# Flutter SDK details provider -Files in `engine/` map an engine revision found in `libflutter.so` to official +Files in `data/engine/` map an engine revision found in `libflutter.so` to official Flutter releases. A single engine can belong to multiple Flutter patch releases, so consumers must treat `releases` as a candidate list rather than an exact version. @@ -15,15 +15,16 @@ not lost. Run the generator locally with: ```shell -python -m unittest discover -s flutter_hash/tools -p 'test_*.py' -python flutter_hash/tools/fetcher.py -python flutter_hash/tools/fetcher.py --check +python sdk-details/tools/test.py +python sdk-details/tools/update.py --sdk flutter +python sdk-details/tools/update.py --check ``` The generator validates existing history before network access, resolves only previously unseen framework revisions, limits remote response sizes, writes changed files atomically, and leaves unchanged mappings untouched. The scheduled -workflow serializes runs and commits only changes under `flutter_hash/`. +generic SDK details workflow serializes runs and commits only generated data +under `sdk-details/`. Each generated file uses this schema: diff --git a/flutter_hash/engine/035316565ad77281a75305515e4682e6c4c6f7ca.json b/sdk-details/sdks/flutter/data/engine/035316565ad77281a75305515e4682e6c4c6f7ca.json similarity index 100% rename from flutter_hash/engine/035316565ad77281a75305515e4682e6c4c6f7ca.json rename to sdk-details/sdks/flutter/data/engine/035316565ad77281a75305515e4682e6c4c6f7ca.json diff --git a/flutter_hash/engine/040747ed404590aa25490e48b15db10a75e16cba.json b/sdk-details/sdks/flutter/data/engine/040747ed404590aa25490e48b15db10a75e16cba.json similarity index 100% rename from flutter_hash/engine/040747ed404590aa25490e48b15db10a75e16cba.json rename to sdk-details/sdks/flutter/data/engine/040747ed404590aa25490e48b15db10a75e16cba.json diff --git a/flutter_hash/engine/042c82b02c83c20e57a67d86a8d3b7677d983556.json b/sdk-details/sdks/flutter/data/engine/042c82b02c83c20e57a67d86a8d3b7677d983556.json similarity index 100% rename from flutter_hash/engine/042c82b02c83c20e57a67d86a8d3b7677d983556.json rename to sdk-details/sdks/flutter/data/engine/042c82b02c83c20e57a67d86a8d3b7677d983556.json diff --git a/flutter_hash/engine/04817c99c9fd4956f27505204f7e344335810aed.json b/sdk-details/sdks/flutter/data/engine/04817c99c9fd4956f27505204f7e344335810aed.json similarity index 100% rename from flutter_hash/engine/04817c99c9fd4956f27505204f7e344335810aed.json rename to sdk-details/sdks/flutter/data/engine/04817c99c9fd4956f27505204f7e344335810aed.json diff --git a/flutter_hash/engine/04f3c6557c02879191a558320ed8ec81f8b2b619.json b/sdk-details/sdks/flutter/data/engine/04f3c6557c02879191a558320ed8ec81f8b2b619.json similarity index 100% rename from flutter_hash/engine/04f3c6557c02879191a558320ed8ec81f8b2b619.json rename to sdk-details/sdks/flutter/data/engine/04f3c6557c02879191a558320ed8ec81f8b2b619.json diff --git a/flutter_hash/engine/052f31d115eceda8cbff1b3481fcde4330c4ae12.json b/sdk-details/sdks/flutter/data/engine/052f31d115eceda8cbff1b3481fcde4330c4ae12.json similarity index 100% rename from flutter_hash/engine/052f31d115eceda8cbff1b3481fcde4330c4ae12.json rename to sdk-details/sdks/flutter/data/engine/052f31d115eceda8cbff1b3481fcde4330c4ae12.json diff --git a/flutter_hash/engine/0545f8705df301877d787107bac1a6e9fc9ee1ad.json b/sdk-details/sdks/flutter/data/engine/0545f8705df301877d787107bac1a6e9fc9ee1ad.json similarity index 100% rename from flutter_hash/engine/0545f8705df301877d787107bac1a6e9fc9ee1ad.json rename to sdk-details/sdks/flutter/data/engine/0545f8705df301877d787107bac1a6e9fc9ee1ad.json diff --git a/flutter_hash/engine/059e4e6d8ff6de39c29441c53e949bfb0bf17972.json b/sdk-details/sdks/flutter/data/engine/059e4e6d8ff6de39c29441c53e949bfb0bf17972.json similarity index 100% rename from flutter_hash/engine/059e4e6d8ff6de39c29441c53e949bfb0bf17972.json rename to sdk-details/sdks/flutter/data/engine/059e4e6d8ff6de39c29441c53e949bfb0bf17972.json diff --git a/flutter_hash/engine/05e680e202af9a92461070cb2d9982acad46c83c.json b/sdk-details/sdks/flutter/data/engine/05e680e202af9a92461070cb2d9982acad46c83c.json similarity index 100% rename from flutter_hash/engine/05e680e202af9a92461070cb2d9982acad46c83c.json rename to sdk-details/sdks/flutter/data/engine/05e680e202af9a92461070cb2d9982acad46c83c.json diff --git a/flutter_hash/engine/0602dbb27547cd03d8f8e816b7995cace854f7e6.json b/sdk-details/sdks/flutter/data/engine/0602dbb27547cd03d8f8e816b7995cace854f7e6.json similarity index 100% rename from flutter_hash/engine/0602dbb27547cd03d8f8e816b7995cace854f7e6.json rename to sdk-details/sdks/flutter/data/engine/0602dbb27547cd03d8f8e816b7995cace854f7e6.json diff --git a/flutter_hash/engine/060c2cc550a0b0d37aa48d40b5f1bb8984b7439a.json b/sdk-details/sdks/flutter/data/engine/060c2cc550a0b0d37aa48d40b5f1bb8984b7439a.json similarity index 100% rename from flutter_hash/engine/060c2cc550a0b0d37aa48d40b5f1bb8984b7439a.json rename to sdk-details/sdks/flutter/data/engine/060c2cc550a0b0d37aa48d40b5f1bb8984b7439a.json diff --git a/flutter_hash/engine/062b3a72fcbe76296ce19b02f58c03ba0cbb0dcf.json b/sdk-details/sdks/flutter/data/engine/062b3a72fcbe76296ce19b02f58c03ba0cbb0dcf.json similarity index 100% rename from flutter_hash/engine/062b3a72fcbe76296ce19b02f58c03ba0cbb0dcf.json rename to sdk-details/sdks/flutter/data/engine/062b3a72fcbe76296ce19b02f58c03ba0cbb0dcf.json diff --git a/flutter_hash/engine/069b3cf8f093d44ec4bae1319cbfdc4f8b4753b6.json b/sdk-details/sdks/flutter/data/engine/069b3cf8f093d44ec4bae1319cbfdc4f8b4753b6.json similarity index 100% rename from flutter_hash/engine/069b3cf8f093d44ec4bae1319cbfdc4f8b4753b6.json rename to sdk-details/sdks/flutter/data/engine/069b3cf8f093d44ec4bae1319cbfdc4f8b4753b6.json diff --git a/flutter_hash/engine/06a7363b0cfd4092fe06eb80f829b5fbc94fd32a.json b/sdk-details/sdks/flutter/data/engine/06a7363b0cfd4092fe06eb80f829b5fbc94fd32a.json similarity index 100% rename from flutter_hash/engine/06a7363b0cfd4092fe06eb80f829b5fbc94fd32a.json rename to sdk-details/sdks/flutter/data/engine/06a7363b0cfd4092fe06eb80f829b5fbc94fd32a.json diff --git a/flutter_hash/engine/06afdfe54ebef9168a90ca00a6721c2d36e6aafa.json b/sdk-details/sdks/flutter/data/engine/06afdfe54ebef9168a90ca00a6721c2d36e6aafa.json similarity index 100% rename from flutter_hash/engine/06afdfe54ebef9168a90ca00a6721c2d36e6aafa.json rename to sdk-details/sdks/flutter/data/engine/06afdfe54ebef9168a90ca00a6721c2d36e6aafa.json diff --git a/flutter_hash/engine/06fea14e5800c35a4fc4dd10cc31b997f1be81e9.json b/sdk-details/sdks/flutter/data/engine/06fea14e5800c35a4fc4dd10cc31b997f1be81e9.json similarity index 100% rename from flutter_hash/engine/06fea14e5800c35a4fc4dd10cc31b997f1be81e9.json rename to sdk-details/sdks/flutter/data/engine/06fea14e5800c35a4fc4dd10cc31b997f1be81e9.json diff --git a/flutter_hash/engine/073263e39d1d12313c9622ac3788cc9f2b01f582.json b/sdk-details/sdks/flutter/data/engine/073263e39d1d12313c9622ac3788cc9f2b01f582.json similarity index 100% rename from flutter_hash/engine/073263e39d1d12313c9622ac3788cc9f2b01f582.json rename to sdk-details/sdks/flutter/data/engine/073263e39d1d12313c9622ac3788cc9f2b01f582.json diff --git a/flutter_hash/engine/07c1eed46b9d9b58df78566e9b8b2e42e80d3380.json b/sdk-details/sdks/flutter/data/engine/07c1eed46b9d9b58df78566e9b8b2e42e80d3380.json similarity index 100% rename from flutter_hash/engine/07c1eed46b9d9b58df78566e9b8b2e42e80d3380.json rename to sdk-details/sdks/flutter/data/engine/07c1eed46b9d9b58df78566e9b8b2e42e80d3380.json diff --git a/flutter_hash/engine/07e2520d5d8f837da439317adab4ecd7bff2f72d.json b/sdk-details/sdks/flutter/data/engine/07e2520d5d8f837da439317adab4ecd7bff2f72d.json similarity index 100% rename from flutter_hash/engine/07e2520d5d8f837da439317adab4ecd7bff2f72d.json rename to sdk-details/sdks/flutter/data/engine/07e2520d5d8f837da439317adab4ecd7bff2f72d.json diff --git a/flutter_hash/engine/07ec4b82c71ce2f34c72caeaf061f7ad82cb25e4.json b/sdk-details/sdks/flutter/data/engine/07ec4b82c71ce2f34c72caeaf061f7ad82cb25e4.json similarity index 100% rename from flutter_hash/engine/07ec4b82c71ce2f34c72caeaf061f7ad82cb25e4.json rename to sdk-details/sdks/flutter/data/engine/07ec4b82c71ce2f34c72caeaf061f7ad82cb25e4.json diff --git a/flutter_hash/engine/083282e33bbb0f7c7cbb9eb2fd1af06ecb636ea9.json b/sdk-details/sdks/flutter/data/engine/083282e33bbb0f7c7cbb9eb2fd1af06ecb636ea9.json similarity index 100% rename from flutter_hash/engine/083282e33bbb0f7c7cbb9eb2fd1af06ecb636ea9.json rename to sdk-details/sdks/flutter/data/engine/083282e33bbb0f7c7cbb9eb2fd1af06ecb636ea9.json diff --git a/flutter_hash/engine/083a7c2bcaaf8f2edd1994d2830e0b4a291e7342.json b/sdk-details/sdks/flutter/data/engine/083a7c2bcaaf8f2edd1994d2830e0b4a291e7342.json similarity index 100% rename from flutter_hash/engine/083a7c2bcaaf8f2edd1994d2830e0b4a291e7342.json rename to sdk-details/sdks/flutter/data/engine/083a7c2bcaaf8f2edd1994d2830e0b4a291e7342.json diff --git a/flutter_hash/engine/091c3b3c7b388944417b41b6d6852677c57d1387.json b/sdk-details/sdks/flutter/data/engine/091c3b3c7b388944417b41b6d6852677c57d1387.json similarity index 100% rename from flutter_hash/engine/091c3b3c7b388944417b41b6d6852677c57d1387.json rename to sdk-details/sdks/flutter/data/engine/091c3b3c7b388944417b41b6d6852677c57d1387.json diff --git a/flutter_hash/engine/09bc1fc45e505118e96afedd7ba365e593369697.json b/sdk-details/sdks/flutter/data/engine/09bc1fc45e505118e96afedd7ba365e593369697.json similarity index 100% rename from flutter_hash/engine/09bc1fc45e505118e96afedd7ba365e593369697.json rename to sdk-details/sdks/flutter/data/engine/09bc1fc45e505118e96afedd7ba365e593369697.json diff --git a/flutter_hash/engine/09d05a38912a3c1a906e95099cac9a7e14fae85f.json b/sdk-details/sdks/flutter/data/engine/09d05a38912a3c1a906e95099cac9a7e14fae85f.json similarity index 100% rename from flutter_hash/engine/09d05a38912a3c1a906e95099cac9a7e14fae85f.json rename to sdk-details/sdks/flutter/data/engine/09d05a38912a3c1a906e95099cac9a7e14fae85f.json diff --git a/flutter_hash/engine/09f1520e8b9585d133faf1eccced9357670c6d11.json b/sdk-details/sdks/flutter/data/engine/09f1520e8b9585d133faf1eccced9357670c6d11.json similarity index 100% rename from flutter_hash/engine/09f1520e8b9585d133faf1eccced9357670c6d11.json rename to sdk-details/sdks/flutter/data/engine/09f1520e8b9585d133faf1eccced9357670c6d11.json diff --git a/flutter_hash/engine/0a9f488c1306b9d5042a78cffbfef1fa4428b64e.json b/sdk-details/sdks/flutter/data/engine/0a9f488c1306b9d5042a78cffbfef1fa4428b64e.json similarity index 100% rename from flutter_hash/engine/0a9f488c1306b9d5042a78cffbfef1fa4428b64e.json rename to sdk-details/sdks/flutter/data/engine/0a9f488c1306b9d5042a78cffbfef1fa4428b64e.json diff --git a/flutter_hash/engine/0b728a3140015137a1c5eb81b486afe279ddd981.json b/sdk-details/sdks/flutter/data/engine/0b728a3140015137a1c5eb81b486afe279ddd981.json similarity index 100% rename from flutter_hash/engine/0b728a3140015137a1c5eb81b486afe279ddd981.json rename to sdk-details/sdks/flutter/data/engine/0b728a3140015137a1c5eb81b486afe279ddd981.json diff --git a/flutter_hash/engine/0bd9be379a17d0e22d1f4fc1e562dbc9e6978832.json b/sdk-details/sdks/flutter/data/engine/0bd9be379a17d0e22d1f4fc1e562dbc9e6978832.json similarity index 100% rename from flutter_hash/engine/0bd9be379a17d0e22d1f4fc1e562dbc9e6978832.json rename to sdk-details/sdks/flutter/data/engine/0bd9be379a17d0e22d1f4fc1e562dbc9e6978832.json diff --git a/flutter_hash/engine/0d4f78c952552819753a2676b318e181004ba746.json b/sdk-details/sdks/flutter/data/engine/0d4f78c952552819753a2676b318e181004ba746.json similarity index 100% rename from flutter_hash/engine/0d4f78c952552819753a2676b318e181004ba746.json rename to sdk-details/sdks/flutter/data/engine/0d4f78c952552819753a2676b318e181004ba746.json diff --git a/flutter_hash/engine/0d83a2ecd1bb78f8e1f0ed9719ff3751cdfdd064.json b/sdk-details/sdks/flutter/data/engine/0d83a2ecd1bb78f8e1f0ed9719ff3751cdfdd064.json similarity index 100% rename from flutter_hash/engine/0d83a2ecd1bb78f8e1f0ed9719ff3751cdfdd064.json rename to sdk-details/sdks/flutter/data/engine/0d83a2ecd1bb78f8e1f0ed9719ff3751cdfdd064.json diff --git a/flutter_hash/engine/0dc86cda19d55aba8b719231c11306eeaca4b798.json b/sdk-details/sdks/flutter/data/engine/0dc86cda19d55aba8b719231c11306eeaca4b798.json similarity index 100% rename from flutter_hash/engine/0dc86cda19d55aba8b719231c11306eeaca4b798.json rename to sdk-details/sdks/flutter/data/engine/0dc86cda19d55aba8b719231c11306eeaca4b798.json diff --git a/flutter_hash/engine/0e2c8feeeb47618ffa468bcbc7f3bd2ceb93ad6d.json b/sdk-details/sdks/flutter/data/engine/0e2c8feeeb47618ffa468bcbc7f3bd2ceb93ad6d.json similarity index 100% rename from flutter_hash/engine/0e2c8feeeb47618ffa468bcbc7f3bd2ceb93ad6d.json rename to sdk-details/sdks/flutter/data/engine/0e2c8feeeb47618ffa468bcbc7f3bd2ceb93ad6d.json diff --git a/flutter_hash/engine/0f359063c487ee70787e58b4b011cbb3c2f53fd6.json b/sdk-details/sdks/flutter/data/engine/0f359063c487ee70787e58b4b011cbb3c2f53fd6.json similarity index 100% rename from flutter_hash/engine/0f359063c487ee70787e58b4b011cbb3c2f53fd6.json rename to sdk-details/sdks/flutter/data/engine/0f359063c487ee70787e58b4b011cbb3c2f53fd6.json diff --git a/flutter_hash/engine/0f90e6546bf302bda9b1e8213a004ed5c16d13c4.json b/sdk-details/sdks/flutter/data/engine/0f90e6546bf302bda9b1e8213a004ed5c16d13c4.json similarity index 100% rename from flutter_hash/engine/0f90e6546bf302bda9b1e8213a004ed5c16d13c4.json rename to sdk-details/sdks/flutter/data/engine/0f90e6546bf302bda9b1e8213a004ed5c16d13c4.json diff --git a/flutter_hash/engine/0fdb562ac8068ce3dda6b69aca3f355f4d1d2718.json b/sdk-details/sdks/flutter/data/engine/0fdb562ac8068ce3dda6b69aca3f355f4d1d2718.json similarity index 100% rename from flutter_hash/engine/0fdb562ac8068ce3dda6b69aca3f355f4d1d2718.json rename to sdk-details/sdks/flutter/data/engine/0fdb562ac8068ce3dda6b69aca3f355f4d1d2718.json diff --git a/flutter_hash/engine/109150893958777c8f2215f6cfd3e89e984e8dea.json b/sdk-details/sdks/flutter/data/engine/109150893958777c8f2215f6cfd3e89e984e8dea.json similarity index 100% rename from flutter_hash/engine/109150893958777c8f2215f6cfd3e89e984e8dea.json rename to sdk-details/sdks/flutter/data/engine/109150893958777c8f2215f6cfd3e89e984e8dea.json diff --git a/flutter_hash/engine/114d33d3caa24d260f15529e1f3f50783cbccd9a.json b/sdk-details/sdks/flutter/data/engine/114d33d3caa24d260f15529e1f3f50783cbccd9a.json similarity index 100% rename from flutter_hash/engine/114d33d3caa24d260f15529e1f3f50783cbccd9a.json rename to sdk-details/sdks/flutter/data/engine/114d33d3caa24d260f15529e1f3f50783cbccd9a.json diff --git a/flutter_hash/engine/12bf95fd49b7456f08a1274078c4b55e675ad018.json b/sdk-details/sdks/flutter/data/engine/12bf95fd49b7456f08a1274078c4b55e675ad018.json similarity index 100% rename from flutter_hash/engine/12bf95fd49b7456f08a1274078c4b55e675ad018.json rename to sdk-details/sdks/flutter/data/engine/12bf95fd49b7456f08a1274078c4b55e675ad018.json diff --git a/flutter_hash/engine/1388adb442192ce155630eeb6806b74db07dd15e.json b/sdk-details/sdks/flutter/data/engine/1388adb442192ce155630eeb6806b74db07dd15e.json similarity index 100% rename from flutter_hash/engine/1388adb442192ce155630eeb6806b74db07dd15e.json rename to sdk-details/sdks/flutter/data/engine/1388adb442192ce155630eeb6806b74db07dd15e.json diff --git a/flutter_hash/engine/13e658725ddaa270601426d1485636157e38c34c.json b/sdk-details/sdks/flutter/data/engine/13e658725ddaa270601426d1485636157e38c34c.json similarity index 100% rename from flutter_hash/engine/13e658725ddaa270601426d1485636157e38c34c.json rename to sdk-details/sdks/flutter/data/engine/13e658725ddaa270601426d1485636157e38c34c.json diff --git a/flutter_hash/engine/1425e5e9ec5eeb4f225c401d8db69b860e0fde9a.json b/sdk-details/sdks/flutter/data/engine/1425e5e9ec5eeb4f225c401d8db69b860e0fde9a.json similarity index 100% rename from flutter_hash/engine/1425e5e9ec5eeb4f225c401d8db69b860e0fde9a.json rename to sdk-details/sdks/flutter/data/engine/1425e5e9ec5eeb4f225c401d8db69b860e0fde9a.json diff --git a/flutter_hash/engine/1527ae0ec577a4ef50e65f6fefcfc1326707d9bf.json b/sdk-details/sdks/flutter/data/engine/1527ae0ec577a4ef50e65f6fefcfc1326707d9bf.json similarity index 100% rename from flutter_hash/engine/1527ae0ec577a4ef50e65f6fefcfc1326707d9bf.json rename to sdk-details/sdks/flutter/data/engine/1527ae0ec577a4ef50e65f6fefcfc1326707d9bf.json diff --git a/flutter_hash/engine/15d137647e372c59e8dcb78f670ab7686a0d1031.json b/sdk-details/sdks/flutter/data/engine/15d137647e372c59e8dcb78f670ab7686a0d1031.json similarity index 100% rename from flutter_hash/engine/15d137647e372c59e8dcb78f670ab7686a0d1031.json rename to sdk-details/sdks/flutter/data/engine/15d137647e372c59e8dcb78f670ab7686a0d1031.json diff --git a/flutter_hash/engine/162b2e98c036a8f8c355fd475dbe0db4f4bc886c.json b/sdk-details/sdks/flutter/data/engine/162b2e98c036a8f8c355fd475dbe0db4f4bc886c.json similarity index 100% rename from flutter_hash/engine/162b2e98c036a8f8c355fd475dbe0db4f4bc886c.json rename to sdk-details/sdks/flutter/data/engine/162b2e98c036a8f8c355fd475dbe0db4f4bc886c.json diff --git a/flutter_hash/engine/176f56329631173cec8e6b1ca6c72f34b2e9a4ed.json b/sdk-details/sdks/flutter/data/engine/176f56329631173cec8e6b1ca6c72f34b2e9a4ed.json similarity index 100% rename from flutter_hash/engine/176f56329631173cec8e6b1ca6c72f34b2e9a4ed.json rename to sdk-details/sdks/flutter/data/engine/176f56329631173cec8e6b1ca6c72f34b2e9a4ed.json diff --git a/flutter_hash/engine/17a711a7765a198264b20d8c4983f2f6f1271271.json b/sdk-details/sdks/flutter/data/engine/17a711a7765a198264b20d8c4983f2f6f1271271.json similarity index 100% rename from flutter_hash/engine/17a711a7765a198264b20d8c4983f2f6f1271271.json rename to sdk-details/sdks/flutter/data/engine/17a711a7765a198264b20d8c4983f2f6f1271271.json diff --git a/flutter_hash/engine/1837b5be5f0f1376a1ccf383950e83a80177fb4e.json b/sdk-details/sdks/flutter/data/engine/1837b5be5f0f1376a1ccf383950e83a80177fb4e.json similarity index 100% rename from flutter_hash/engine/1837b5be5f0f1376a1ccf383950e83a80177fb4e.json rename to sdk-details/sdks/flutter/data/engine/1837b5be5f0f1376a1ccf383950e83a80177fb4e.json diff --git a/flutter_hash/engine/18818009497c581ede5d8a3b8b833b81d00cebb7.json b/sdk-details/sdks/flutter/data/engine/18818009497c581ede5d8a3b8b833b81d00cebb7.json similarity index 100% rename from flutter_hash/engine/18818009497c581ede5d8a3b8b833b81d00cebb7.json rename to sdk-details/sdks/flutter/data/engine/18818009497c581ede5d8a3b8b833b81d00cebb7.json diff --git a/flutter_hash/engine/18b71d647a292a980abb405ac7d16fe1f0b20434.json b/sdk-details/sdks/flutter/data/engine/18b71d647a292a980abb405ac7d16fe1f0b20434.json similarity index 100% rename from flutter_hash/engine/18b71d647a292a980abb405ac7d16fe1f0b20434.json rename to sdk-details/sdks/flutter/data/engine/18b71d647a292a980abb405ac7d16fe1f0b20434.json diff --git a/flutter_hash/engine/1a65d409c7a1438a34d21b60bf30a6fd5db59314.json b/sdk-details/sdks/flutter/data/engine/1a65d409c7a1438a34d21b60bf30a6fd5db59314.json similarity index 100% rename from flutter_hash/engine/1a65d409c7a1438a34d21b60bf30a6fd5db59314.json rename to sdk-details/sdks/flutter/data/engine/1a65d409c7a1438a34d21b60bf30a6fd5db59314.json diff --git a/flutter_hash/engine/1ac611c64eadbd93c5f5aba5494b8fc3b35ee952.json b/sdk-details/sdks/flutter/data/engine/1ac611c64eadbd93c5f5aba5494b8fc3b35ee952.json similarity index 100% rename from flutter_hash/engine/1ac611c64eadbd93c5f5aba5494b8fc3b35ee952.json rename to sdk-details/sdks/flutter/data/engine/1ac611c64eadbd93c5f5aba5494b8fc3b35ee952.json diff --git a/flutter_hash/engine/1baf081343530dbaa8bec378fe1ce26b4897c23f.json b/sdk-details/sdks/flutter/data/engine/1baf081343530dbaa8bec378fe1ce26b4897c23f.json similarity index 100% rename from flutter_hash/engine/1baf081343530dbaa8bec378fe1ce26b4897c23f.json rename to sdk-details/sdks/flutter/data/engine/1baf081343530dbaa8bec378fe1ce26b4897c23f.json diff --git a/flutter_hash/engine/1c9c20e7c3dd48c66f400a24d48ea806b4ab312a.json b/sdk-details/sdks/flutter/data/engine/1c9c20e7c3dd48c66f400a24d48ea806b4ab312a.json similarity index 100% rename from flutter_hash/engine/1c9c20e7c3dd48c66f400a24d48ea806b4ab312a.json rename to sdk-details/sdks/flutter/data/engine/1c9c20e7c3dd48c66f400a24d48ea806b4ab312a.json diff --git a/flutter_hash/engine/1cc4b2d280f5705c7901c10676eae8bdb3142631.json b/sdk-details/sdks/flutter/data/engine/1cc4b2d280f5705c7901c10676eae8bdb3142631.json similarity index 100% rename from flutter_hash/engine/1cc4b2d280f5705c7901c10676eae8bdb3142631.json rename to sdk-details/sdks/flutter/data/engine/1cc4b2d280f5705c7901c10676eae8bdb3142631.json diff --git a/flutter_hash/engine/1d12d82d9cb54876f58044aa52198d53ec841c3d.json b/sdk-details/sdks/flutter/data/engine/1d12d82d9cb54876f58044aa52198d53ec841c3d.json similarity index 100% rename from flutter_hash/engine/1d12d82d9cb54876f58044aa52198d53ec841c3d.json rename to sdk-details/sdks/flutter/data/engine/1d12d82d9cb54876f58044aa52198d53ec841c3d.json diff --git a/flutter_hash/engine/1d35cccf5e47d19947a669000a53a26cabb5af5e.json b/sdk-details/sdks/flutter/data/engine/1d35cccf5e47d19947a669000a53a26cabb5af5e.json similarity index 100% rename from flutter_hash/engine/1d35cccf5e47d19947a669000a53a26cabb5af5e.json rename to sdk-details/sdks/flutter/data/engine/1d35cccf5e47d19947a669000a53a26cabb5af5e.json diff --git a/flutter_hash/engine/1d521d89d8d98f27be4e0ff84d5c6b72dbdc91ca.json b/sdk-details/sdks/flutter/data/engine/1d521d89d8d98f27be4e0ff84d5c6b72dbdc91ca.json similarity index 100% rename from flutter_hash/engine/1d521d89d8d98f27be4e0ff84d5c6b72dbdc91ca.json rename to sdk-details/sdks/flutter/data/engine/1d521d89d8d98f27be4e0ff84d5c6b72dbdc91ca.json diff --git a/flutter_hash/engine/1d537824d6d29bf9967172d32450ef0671097cef.json b/sdk-details/sdks/flutter/data/engine/1d537824d6d29bf9967172d32450ef0671097cef.json similarity index 100% rename from flutter_hash/engine/1d537824d6d29bf9967172d32450ef0671097cef.json rename to sdk-details/sdks/flutter/data/engine/1d537824d6d29bf9967172d32450ef0671097cef.json diff --git a/flutter_hash/engine/1d62160fdb2f5a1d20f1dccb761a2caa96804c22.json b/sdk-details/sdks/flutter/data/engine/1d62160fdb2f5a1d20f1dccb761a2caa96804c22.json similarity index 100% rename from flutter_hash/engine/1d62160fdb2f5a1d20f1dccb761a2caa96804c22.json rename to sdk-details/sdks/flutter/data/engine/1d62160fdb2f5a1d20f1dccb761a2caa96804c22.json diff --git a/flutter_hash/engine/1e9a811bf8e70466596bcf0ea3a8b5adb5f17f7f.json b/sdk-details/sdks/flutter/data/engine/1e9a811bf8e70466596bcf0ea3a8b5adb5f17f7f.json similarity index 100% rename from flutter_hash/engine/1e9a811bf8e70466596bcf0ea3a8b5adb5f17f7f.json rename to sdk-details/sdks/flutter/data/engine/1e9a811bf8e70466596bcf0ea3a8b5adb5f17f7f.json diff --git a/flutter_hash/engine/1ed25ca7b7e3e3e8047df050bba4174074c9b336.json b/sdk-details/sdks/flutter/data/engine/1ed25ca7b7e3e3e8047df050bba4174074c9b336.json similarity index 100% rename from flutter_hash/engine/1ed25ca7b7e3e3e8047df050bba4174074c9b336.json rename to sdk-details/sdks/flutter/data/engine/1ed25ca7b7e3e3e8047df050bba4174074c9b336.json diff --git a/flutter_hash/engine/20a953183580250aac2e15d36007664118bda5ab.json b/sdk-details/sdks/flutter/data/engine/20a953183580250aac2e15d36007664118bda5ab.json similarity index 100% rename from flutter_hash/engine/20a953183580250aac2e15d36007664118bda5ab.json rename to sdk-details/sdks/flutter/data/engine/20a953183580250aac2e15d36007664118bda5ab.json diff --git a/flutter_hash/engine/20caf549695193a9920ca37752eca4f141bbef31.json b/sdk-details/sdks/flutter/data/engine/20caf549695193a9920ca37752eca4f141bbef31.json similarity index 100% rename from flutter_hash/engine/20caf549695193a9920ca37752eca4f141bbef31.json rename to sdk-details/sdks/flutter/data/engine/20caf549695193a9920ca37752eca4f141bbef31.json diff --git a/flutter_hash/engine/216c420a2c06e5266a60a768b3fd0b660551cc9c.json b/sdk-details/sdks/flutter/data/engine/216c420a2c06e5266a60a768b3fd0b660551cc9c.json similarity index 100% rename from flutter_hash/engine/216c420a2c06e5266a60a768b3fd0b660551cc9c.json rename to sdk-details/sdks/flutter/data/engine/216c420a2c06e5266a60a768b3fd0b660551cc9c.json diff --git a/flutter_hash/engine/219bf5938752e0030b491565af1910c137b83dd8.json b/sdk-details/sdks/flutter/data/engine/219bf5938752e0030b491565af1910c137b83dd8.json similarity index 100% rename from flutter_hash/engine/219bf5938752e0030b491565af1910c137b83dd8.json rename to sdk-details/sdks/flutter/data/engine/219bf5938752e0030b491565af1910c137b83dd8.json diff --git a/flutter_hash/engine/21fa8bb99e9a20563d9a7d39afeba8e5c811a7eb.json b/sdk-details/sdks/flutter/data/engine/21fa8bb99e9a20563d9a7d39afeba8e5c811a7eb.json similarity index 100% rename from flutter_hash/engine/21fa8bb99e9a20563d9a7d39afeba8e5c811a7eb.json rename to sdk-details/sdks/flutter/data/engine/21fa8bb99e9a20563d9a7d39afeba8e5c811a7eb.json diff --git a/flutter_hash/engine/2289072724fff78f9b07f0619796a666e00f69a0.json b/sdk-details/sdks/flutter/data/engine/2289072724fff78f9b07f0619796a666e00f69a0.json similarity index 100% rename from flutter_hash/engine/2289072724fff78f9b07f0619796a666e00f69a0.json rename to sdk-details/sdks/flutter/data/engine/2289072724fff78f9b07f0619796a666e00f69a0.json diff --git a/flutter_hash/engine/22b600f240548c1cf6f5d3f9ae65a5c9e51bc443.json b/sdk-details/sdks/flutter/data/engine/22b600f240548c1cf6f5d3f9ae65a5c9e51bc443.json similarity index 100% rename from flutter_hash/engine/22b600f240548c1cf6f5d3f9ae65a5c9e51bc443.json rename to sdk-details/sdks/flutter/data/engine/22b600f240548c1cf6f5d3f9ae65a5c9e51bc443.json diff --git a/flutter_hash/engine/234aca678a2fb70ff2659870186f97c32f8894f4.json b/sdk-details/sdks/flutter/data/engine/234aca678a2fb70ff2659870186f97c32f8894f4.json similarity index 100% rename from flutter_hash/engine/234aca678a2fb70ff2659870186f97c32f8894f4.json rename to sdk-details/sdks/flutter/data/engine/234aca678a2fb70ff2659870186f97c32f8894f4.json diff --git a/flutter_hash/engine/235db911ba279722f5e685f38b0ed30fa7e8570a.json b/sdk-details/sdks/flutter/data/engine/235db911ba279722f5e685f38b0ed30fa7e8570a.json similarity index 100% rename from flutter_hash/engine/235db911ba279722f5e685f38b0ed30fa7e8570a.json rename to sdk-details/sdks/flutter/data/engine/235db911ba279722f5e685f38b0ed30fa7e8570a.json diff --git a/flutter_hash/engine/241c87ad800beeab545ab867354d4683d5bfb6ce.json b/sdk-details/sdks/flutter/data/engine/241c87ad800beeab545ab867354d4683d5bfb6ce.json similarity index 100% rename from flutter_hash/engine/241c87ad800beeab545ab867354d4683d5bfb6ce.json rename to sdk-details/sdks/flutter/data/engine/241c87ad800beeab545ab867354d4683d5bfb6ce.json diff --git a/flutter_hash/engine/248290d6d50a1bf1a6a246544347c03acda867a5.json b/sdk-details/sdks/flutter/data/engine/248290d6d50a1bf1a6a246544347c03acda867a5.json similarity index 100% rename from flutter_hash/engine/248290d6d50a1bf1a6a246544347c03acda867a5.json rename to sdk-details/sdks/flutter/data/engine/248290d6d50a1bf1a6a246544347c03acda867a5.json diff --git a/flutter_hash/engine/249cc9b86c45acb7e32b4097bc8a5059b91c888e.json b/sdk-details/sdks/flutter/data/engine/249cc9b86c45acb7e32b4097bc8a5059b91c888e.json similarity index 100% rename from flutter_hash/engine/249cc9b86c45acb7e32b4097bc8a5059b91c888e.json rename to sdk-details/sdks/flutter/data/engine/249cc9b86c45acb7e32b4097bc8a5059b91c888e.json diff --git a/flutter_hash/engine/24a02fa5ee681840cdc842c22f4cb4bdd5ec3115.json b/sdk-details/sdks/flutter/data/engine/24a02fa5ee681840cdc842c22f4cb4bdd5ec3115.json similarity index 100% rename from flutter_hash/engine/24a02fa5ee681840cdc842c22f4cb4bdd5ec3115.json rename to sdk-details/sdks/flutter/data/engine/24a02fa5ee681840cdc842c22f4cb4bdd5ec3115.json diff --git a/flutter_hash/engine/24cf8ebd8621713a6936df783dad5019f52bc85e.json b/sdk-details/sdks/flutter/data/engine/24cf8ebd8621713a6936df783dad5019f52bc85e.json similarity index 100% rename from flutter_hash/engine/24cf8ebd8621713a6936df783dad5019f52bc85e.json rename to sdk-details/sdks/flutter/data/engine/24cf8ebd8621713a6936df783dad5019f52bc85e.json diff --git a/flutter_hash/engine/252da4808277ef1c7de0bdd7f0689fe05c7ec79c.json b/sdk-details/sdks/flutter/data/engine/252da4808277ef1c7de0bdd7f0689fe05c7ec79c.json similarity index 100% rename from flutter_hash/engine/252da4808277ef1c7de0bdd7f0689fe05c7ec79c.json rename to sdk-details/sdks/flutter/data/engine/252da4808277ef1c7de0bdd7f0689fe05c7ec79c.json diff --git a/flutter_hash/engine/2589785b5c5eaad64d1da3403048e61d8f230c48.json b/sdk-details/sdks/flutter/data/engine/2589785b5c5eaad64d1da3403048e61d8f230c48.json similarity index 100% rename from flutter_hash/engine/2589785b5c5eaad64d1da3403048e61d8f230c48.json rename to sdk-details/sdks/flutter/data/engine/2589785b5c5eaad64d1da3403048e61d8f230c48.json diff --git a/flutter_hash/engine/26368225b5ec8c172422f0d9757c75828c11cdd1.json b/sdk-details/sdks/flutter/data/engine/26368225b5ec8c172422f0d9757c75828c11cdd1.json similarity index 100% rename from flutter_hash/engine/26368225b5ec8c172422f0d9757c75828c11cdd1.json rename to sdk-details/sdks/flutter/data/engine/26368225b5ec8c172422f0d9757c75828c11cdd1.json diff --git a/flutter_hash/engine/267070c17a6956de1a03dbe09cda56f0c485f41b.json b/sdk-details/sdks/flutter/data/engine/267070c17a6956de1a03dbe09cda56f0c485f41b.json similarity index 100% rename from flutter_hash/engine/267070c17a6956de1a03dbe09cda56f0c485f41b.json rename to sdk-details/sdks/flutter/data/engine/267070c17a6956de1a03dbe09cda56f0c485f41b.json diff --git a/flutter_hash/engine/26e217e6c3d487bb3c0cbf8a7edb378952a51d33.json b/sdk-details/sdks/flutter/data/engine/26e217e6c3d487bb3c0cbf8a7edb378952a51d33.json similarity index 100% rename from flutter_hash/engine/26e217e6c3d487bb3c0cbf8a7edb378952a51d33.json rename to sdk-details/sdks/flutter/data/engine/26e217e6c3d487bb3c0cbf8a7edb378952a51d33.json diff --git a/flutter_hash/engine/286e592194da983137fc023d4bfafae3839b2bc2.json b/sdk-details/sdks/flutter/data/engine/286e592194da983137fc023d4bfafae3839b2bc2.json similarity index 100% rename from flutter_hash/engine/286e592194da983137fc023d4bfafae3839b2bc2.json rename to sdk-details/sdks/flutter/data/engine/286e592194da983137fc023d4bfafae3839b2bc2.json diff --git a/flutter_hash/engine/2994f7e1e682039464cb25e31a78b86a3c59b695.json b/sdk-details/sdks/flutter/data/engine/2994f7e1e682039464cb25e31a78b86a3c59b695.json similarity index 100% rename from flutter_hash/engine/2994f7e1e682039464cb25e31a78b86a3c59b695.json rename to sdk-details/sdks/flutter/data/engine/2994f7e1e682039464cb25e31a78b86a3c59b695.json diff --git a/flutter_hash/engine/299e852cb92f27c16c9bee98c4ff3a5dc5b4dfae.json b/sdk-details/sdks/flutter/data/engine/299e852cb92f27c16c9bee98c4ff3a5dc5b4dfae.json similarity index 100% rename from flutter_hash/engine/299e852cb92f27c16c9bee98c4ff3a5dc5b4dfae.json rename to sdk-details/sdks/flutter/data/engine/299e852cb92f27c16c9bee98c4ff3a5dc5b4dfae.json diff --git a/flutter_hash/engine/29a2f674ca2312e34a3ef796701c297dc3be1ae6.json b/sdk-details/sdks/flutter/data/engine/29a2f674ca2312e34a3ef796701c297dc3be1ae6.json similarity index 100% rename from flutter_hash/engine/29a2f674ca2312e34a3ef796701c297dc3be1ae6.json rename to sdk-details/sdks/flutter/data/engine/29a2f674ca2312e34a3ef796701c297dc3be1ae6.json diff --git a/flutter_hash/engine/2a3401c9bbb5a9a9aec74d4f735d18a9dd3ebf2d.json b/sdk-details/sdks/flutter/data/engine/2a3401c9bbb5a9a9aec74d4f735d18a9dd3ebf2d.json similarity index 100% rename from flutter_hash/engine/2a3401c9bbb5a9a9aec74d4f735d18a9dd3ebf2d.json rename to sdk-details/sdks/flutter/data/engine/2a3401c9bbb5a9a9aec74d4f735d18a9dd3ebf2d.json diff --git a/flutter_hash/engine/2abe69c6081888f28217d8dece4fde2f5490fbab.json b/sdk-details/sdks/flutter/data/engine/2abe69c6081888f28217d8dece4fde2f5490fbab.json similarity index 100% rename from flutter_hash/engine/2abe69c6081888f28217d8dece4fde2f5490fbab.json rename to sdk-details/sdks/flutter/data/engine/2abe69c6081888f28217d8dece4fde2f5490fbab.json diff --git a/flutter_hash/engine/2b1f3dbe25894d7614587f494a25b40fdb344f4a.json b/sdk-details/sdks/flutter/data/engine/2b1f3dbe25894d7614587f494a25b40fdb344f4a.json similarity index 100% rename from flutter_hash/engine/2b1f3dbe25894d7614587f494a25b40fdb344f4a.json rename to sdk-details/sdks/flutter/data/engine/2b1f3dbe25894d7614587f494a25b40fdb344f4a.json diff --git a/flutter_hash/engine/2ba456fd7fd03d7348f9fa0952493030c85f15ae.json b/sdk-details/sdks/flutter/data/engine/2ba456fd7fd03d7348f9fa0952493030c85f15ae.json similarity index 100% rename from flutter_hash/engine/2ba456fd7fd03d7348f9fa0952493030c85f15ae.json rename to sdk-details/sdks/flutter/data/engine/2ba456fd7fd03d7348f9fa0952493030c85f15ae.json diff --git a/flutter_hash/engine/2bde4f0ae4304d8c6d4ed7d5d0a54bc4010f2196.json b/sdk-details/sdks/flutter/data/engine/2bde4f0ae4304d8c6d4ed7d5d0a54bc4010f2196.json similarity index 100% rename from flutter_hash/engine/2bde4f0ae4304d8c6d4ed7d5d0a54bc4010f2196.json rename to sdk-details/sdks/flutter/data/engine/2bde4f0ae4304d8c6d4ed7d5d0a54bc4010f2196.json diff --git a/flutter_hash/engine/2c527d6c7e70e2f51bca1a46f1174b250f84c5da.json b/sdk-details/sdks/flutter/data/engine/2c527d6c7e70e2f51bca1a46f1174b250f84c5da.json similarity index 100% rename from flutter_hash/engine/2c527d6c7e70e2f51bca1a46f1174b250f84c5da.json rename to sdk-details/sdks/flutter/data/engine/2c527d6c7e70e2f51bca1a46f1174b250f84c5da.json diff --git a/flutter_hash/engine/2c956a31c0a3d350827aee6c56bb63337c5b4e6e.json b/sdk-details/sdks/flutter/data/engine/2c956a31c0a3d350827aee6c56bb63337c5b4e6e.json similarity index 100% rename from flutter_hash/engine/2c956a31c0a3d350827aee6c56bb63337c5b4e6e.json rename to sdk-details/sdks/flutter/data/engine/2c956a31c0a3d350827aee6c56bb63337c5b4e6e.json diff --git a/flutter_hash/engine/2d42c74a348d98d2fd372a91953c104e58f185cd.json b/sdk-details/sdks/flutter/data/engine/2d42c74a348d98d2fd372a91953c104e58f185cd.json similarity index 100% rename from flutter_hash/engine/2d42c74a348d98d2fd372a91953c104e58f185cd.json rename to sdk-details/sdks/flutter/data/engine/2d42c74a348d98d2fd372a91953c104e58f185cd.json diff --git a/flutter_hash/engine/2dce47073a378673f6ca095e91b8065544c3a881.json b/sdk-details/sdks/flutter/data/engine/2dce47073a378673f6ca095e91b8065544c3a881.json similarity index 100% rename from flutter_hash/engine/2dce47073a378673f6ca095e91b8065544c3a881.json rename to sdk-details/sdks/flutter/data/engine/2dce47073a378673f6ca095e91b8065544c3a881.json diff --git a/flutter_hash/engine/2e06da3df9cb370795f49747fdfd295b8168c133.json b/sdk-details/sdks/flutter/data/engine/2e06da3df9cb370795f49747fdfd295b8168c133.json similarity index 100% rename from flutter_hash/engine/2e06da3df9cb370795f49747fdfd295b8168c133.json rename to sdk-details/sdks/flutter/data/engine/2e06da3df9cb370795f49747fdfd295b8168c133.json diff --git a/flutter_hash/engine/2e163b27805be1bd178ad909f9947fe9d85c6010.json b/sdk-details/sdks/flutter/data/engine/2e163b27805be1bd178ad909f9947fe9d85c6010.json similarity index 100% rename from flutter_hash/engine/2e163b27805be1bd178ad909f9947fe9d85c6010.json rename to sdk-details/sdks/flutter/data/engine/2e163b27805be1bd178ad909f9947fe9d85c6010.json diff --git a/flutter_hash/engine/2e2a9e192d3d8f4f8aa96ca283947f4125bf836c.json b/sdk-details/sdks/flutter/data/engine/2e2a9e192d3d8f4f8aa96ca283947f4125bf836c.json similarity index 100% rename from flutter_hash/engine/2e2a9e192d3d8f4f8aa96ca283947f4125bf836c.json rename to sdk-details/sdks/flutter/data/engine/2e2a9e192d3d8f4f8aa96ca283947f4125bf836c.json diff --git a/flutter_hash/engine/2e4ba9c6fb499ccd4e81420543783cc7267ae406.json b/sdk-details/sdks/flutter/data/engine/2e4ba9c6fb499ccd4e81420543783cc7267ae406.json similarity index 100% rename from flutter_hash/engine/2e4ba9c6fb499ccd4e81420543783cc7267ae406.json rename to sdk-details/sdks/flutter/data/engine/2e4ba9c6fb499ccd4e81420543783cc7267ae406.json diff --git a/flutter_hash/engine/2e8e96fad1ada324adca718d13410a98d9bb1036.json b/sdk-details/sdks/flutter/data/engine/2e8e96fad1ada324adca718d13410a98d9bb1036.json similarity index 100% rename from flutter_hash/engine/2e8e96fad1ada324adca718d13410a98d9bb1036.json rename to sdk-details/sdks/flutter/data/engine/2e8e96fad1ada324adca718d13410a98d9bb1036.json diff --git a/flutter_hash/engine/2f067fc4c57d53e565532f4e188c947fe48cd57d.json b/sdk-details/sdks/flutter/data/engine/2f067fc4c57d53e565532f4e188c947fe48cd57d.json similarity index 100% rename from flutter_hash/engine/2f067fc4c57d53e565532f4e188c947fe48cd57d.json rename to sdk-details/sdks/flutter/data/engine/2f067fc4c57d53e565532f4e188c947fe48cd57d.json diff --git a/flutter_hash/engine/2f0af3715217a0c2ada72c717d4ed9178d68f6ed.json b/sdk-details/sdks/flutter/data/engine/2f0af3715217a0c2ada72c717d4ed9178d68f6ed.json similarity index 100% rename from flutter_hash/engine/2f0af3715217a0c2ada72c717d4ed9178d68f6ed.json rename to sdk-details/sdks/flutter/data/engine/2f0af3715217a0c2ada72c717d4ed9178d68f6ed.json diff --git a/flutter_hash/engine/2f69e38160a301f4070a8be25dcb66120e4548ac.json b/sdk-details/sdks/flutter/data/engine/2f69e38160a301f4070a8be25dcb66120e4548ac.json similarity index 100% rename from flutter_hash/engine/2f69e38160a301f4070a8be25dcb66120e4548ac.json rename to sdk-details/sdks/flutter/data/engine/2f69e38160a301f4070a8be25dcb66120e4548ac.json diff --git a/flutter_hash/engine/300972dbc0d1446c761c6856717cc5a00dfec2d0.json b/sdk-details/sdks/flutter/data/engine/300972dbc0d1446c761c6856717cc5a00dfec2d0.json similarity index 100% rename from flutter_hash/engine/300972dbc0d1446c761c6856717cc5a00dfec2d0.json rename to sdk-details/sdks/flutter/data/engine/300972dbc0d1446c761c6856717cc5a00dfec2d0.json diff --git a/flutter_hash/engine/303a3910d398ee48a3411108688ebd5ccc101e8a.json b/sdk-details/sdks/flutter/data/engine/303a3910d398ee48a3411108688ebd5ccc101e8a.json similarity index 100% rename from flutter_hash/engine/303a3910d398ee48a3411108688ebd5ccc101e8a.json rename to sdk-details/sdks/flutter/data/engine/303a3910d398ee48a3411108688ebd5ccc101e8a.json diff --git a/flutter_hash/engine/308a517184276f9526eb6026e55cfcbde1e5ad1f.json b/sdk-details/sdks/flutter/data/engine/308a517184276f9526eb6026e55cfcbde1e5ad1f.json similarity index 100% rename from flutter_hash/engine/308a517184276f9526eb6026e55cfcbde1e5ad1f.json rename to sdk-details/sdks/flutter/data/engine/308a517184276f9526eb6026e55cfcbde1e5ad1f.json diff --git a/flutter_hash/engine/3096903c8923608d3c1ccf8058a29c31a2bfbc53.json b/sdk-details/sdks/flutter/data/engine/3096903c8923608d3c1ccf8058a29c31a2bfbc53.json similarity index 100% rename from flutter_hash/engine/3096903c8923608d3c1ccf8058a29c31a2bfbc53.json rename to sdk-details/sdks/flutter/data/engine/3096903c8923608d3c1ccf8058a29c31a2bfbc53.json diff --git a/flutter_hash/engine/316f6365a64bd66fdf9c1ada3ed0a91d9533b9c7.json b/sdk-details/sdks/flutter/data/engine/316f6365a64bd66fdf9c1ada3ed0a91d9533b9c7.json similarity index 100% rename from flutter_hash/engine/316f6365a64bd66fdf9c1ada3ed0a91d9533b9c7.json rename to sdk-details/sdks/flutter/data/engine/316f6365a64bd66fdf9c1ada3ed0a91d9533b9c7.json diff --git a/flutter_hash/engine/31c4875c7aa0079ae11a4850e2d06bd83d001960.json b/sdk-details/sdks/flutter/data/engine/31c4875c7aa0079ae11a4850e2d06bd83d001960.json similarity index 100% rename from flutter_hash/engine/31c4875c7aa0079ae11a4850e2d06bd83d001960.json rename to sdk-details/sdks/flutter/data/engine/31c4875c7aa0079ae11a4850e2d06bd83d001960.json diff --git a/flutter_hash/engine/31cd2dfca22a282e53eb449d8a3be93b8365c1bc.json b/sdk-details/sdks/flutter/data/engine/31cd2dfca22a282e53eb449d8a3be93b8365c1bc.json similarity index 100% rename from flutter_hash/engine/31cd2dfca22a282e53eb449d8a3be93b8365c1bc.json rename to sdk-details/sdks/flutter/data/engine/31cd2dfca22a282e53eb449d8a3be93b8365c1bc.json diff --git a/flutter_hash/engine/327ed814500baca0480a02f8555aa84a9afe32bf.json b/sdk-details/sdks/flutter/data/engine/327ed814500baca0480a02f8555aa84a9afe32bf.json similarity index 100% rename from flutter_hash/engine/327ed814500baca0480a02f8555aa84a9afe32bf.json rename to sdk-details/sdks/flutter/data/engine/327ed814500baca0480a02f8555aa84a9afe32bf.json diff --git a/flutter_hash/engine/3316dd8728419ad3534e3f6112aa6291f587078a.json b/sdk-details/sdks/flutter/data/engine/3316dd8728419ad3534e3f6112aa6291f587078a.json similarity index 100% rename from flutter_hash/engine/3316dd8728419ad3534e3f6112aa6291f587078a.json rename to sdk-details/sdks/flutter/data/engine/3316dd8728419ad3534e3f6112aa6291f587078a.json diff --git a/flutter_hash/engine/33ad6757e88311f4fb9d341918894e2bc30e3b20.json b/sdk-details/sdks/flutter/data/engine/33ad6757e88311f4fb9d341918894e2bc30e3b20.json similarity index 100% rename from flutter_hash/engine/33ad6757e88311f4fb9d341918894e2bc30e3b20.json rename to sdk-details/sdks/flutter/data/engine/33ad6757e88311f4fb9d341918894e2bc30e3b20.json diff --git a/flutter_hash/engine/33d2367950154e7f8daf9ce9992a450016289a5f.json b/sdk-details/sdks/flutter/data/engine/33d2367950154e7f8daf9ce9992a450016289a5f.json similarity index 100% rename from flutter_hash/engine/33d2367950154e7f8daf9ce9992a450016289a5f.json rename to sdk-details/sdks/flutter/data/engine/33d2367950154e7f8daf9ce9992a450016289a5f.json diff --git a/flutter_hash/engine/3452d735bd38224ef2db85ca763d862d6326b17f.json b/sdk-details/sdks/flutter/data/engine/3452d735bd38224ef2db85ca763d862d6326b17f.json similarity index 100% rename from flutter_hash/engine/3452d735bd38224ef2db85ca763d862d6326b17f.json rename to sdk-details/sdks/flutter/data/engine/3452d735bd38224ef2db85ca763d862d6326b17f.json diff --git a/flutter_hash/engine/3459eb24361807fb186953a864cf890fa8e9d26a.json b/sdk-details/sdks/flutter/data/engine/3459eb24361807fb186953a864cf890fa8e9d26a.json similarity index 100% rename from flutter_hash/engine/3459eb24361807fb186953a864cf890fa8e9d26a.json rename to sdk-details/sdks/flutter/data/engine/3459eb24361807fb186953a864cf890fa8e9d26a.json diff --git a/flutter_hash/engine/34a40cfbfd369544cbee9d19f212fbbe06e739c2.json b/sdk-details/sdks/flutter/data/engine/34a40cfbfd369544cbee9d19f212fbbe06e739c2.json similarity index 100% rename from flutter_hash/engine/34a40cfbfd369544cbee9d19f212fbbe06e739c2.json rename to sdk-details/sdks/flutter/data/engine/34a40cfbfd369544cbee9d19f212fbbe06e739c2.json diff --git a/flutter_hash/engine/3543c00c801c49c78a0d4e7ceafbe278c9c26f1e.json b/sdk-details/sdks/flutter/data/engine/3543c00c801c49c78a0d4e7ceafbe278c9c26f1e.json similarity index 100% rename from flutter_hash/engine/3543c00c801c49c78a0d4e7ceafbe278c9c26f1e.json rename to sdk-details/sdks/flutter/data/engine/3543c00c801c49c78a0d4e7ceafbe278c9c26f1e.json diff --git a/flutter_hash/engine/36335019a8eab588c3c2ea783c618d90505be233.json b/sdk-details/sdks/flutter/data/engine/36335019a8eab588c3c2ea783c618d90505be233.json similarity index 100% rename from flutter_hash/engine/36335019a8eab588c3c2ea783c618d90505be233.json rename to sdk-details/sdks/flutter/data/engine/36335019a8eab588c3c2ea783c618d90505be233.json diff --git a/flutter_hash/engine/36acd02c9412d0c1e6acbe0fbcb3dd03cda038df.json b/sdk-details/sdks/flutter/data/engine/36acd02c9412d0c1e6acbe0fbcb3dd03cda038df.json similarity index 100% rename from flutter_hash/engine/36acd02c9412d0c1e6acbe0fbcb3dd03cda038df.json rename to sdk-details/sdks/flutter/data/engine/36acd02c9412d0c1e6acbe0fbcb3dd03cda038df.json diff --git a/flutter_hash/engine/3757390fa4b00d2d261bfdf5182d2e87c9113ff9.json b/sdk-details/sdks/flutter/data/engine/3757390fa4b00d2d261bfdf5182d2e87c9113ff9.json similarity index 100% rename from flutter_hash/engine/3757390fa4b00d2d261bfdf5182d2e87c9113ff9.json rename to sdk-details/sdks/flutter/data/engine/3757390fa4b00d2d261bfdf5182d2e87c9113ff9.json diff --git a/flutter_hash/engine/376ad6a64b08aa26005e3f82aed26de2e290b572.json b/sdk-details/sdks/flutter/data/engine/376ad6a64b08aa26005e3f82aed26de2e290b572.json similarity index 100% rename from flutter_hash/engine/376ad6a64b08aa26005e3f82aed26de2e290b572.json rename to sdk-details/sdks/flutter/data/engine/376ad6a64b08aa26005e3f82aed26de2e290b572.json diff --git a/flutter_hash/engine/37779318019c397471751fe67ba0fefcd0d720d7.json b/sdk-details/sdks/flutter/data/engine/37779318019c397471751fe67ba0fefcd0d720d7.json similarity index 100% rename from flutter_hash/engine/37779318019c397471751fe67ba0fefcd0d720d7.json rename to sdk-details/sdks/flutter/data/engine/37779318019c397471751fe67ba0fefcd0d720d7.json diff --git a/flutter_hash/engine/382be0028d370607f76215a9be322e5514b263e0.json b/sdk-details/sdks/flutter/data/engine/382be0028d370607f76215a9be322e5514b263e0.json similarity index 100% rename from flutter_hash/engine/382be0028d370607f76215a9be322e5514b263e0.json rename to sdk-details/sdks/flutter/data/engine/382be0028d370607f76215a9be322e5514b263e0.json diff --git a/flutter_hash/engine/3860a43379fa3a7474427a671c794fa29e555c10.json b/sdk-details/sdks/flutter/data/engine/3860a43379fa3a7474427a671c794fa29e555c10.json similarity index 100% rename from flutter_hash/engine/3860a43379fa3a7474427a671c794fa29e555c10.json rename to sdk-details/sdks/flutter/data/engine/3860a43379fa3a7474427a671c794fa29e555c10.json diff --git a/flutter_hash/engine/38a646e14cc25f5a56a989c6a5787bf74e0ea386.json b/sdk-details/sdks/flutter/data/engine/38a646e14cc25f5a56a989c6a5787bf74e0ea386.json similarity index 100% rename from flutter_hash/engine/38a646e14cc25f5a56a989c6a5787bf74e0ea386.json rename to sdk-details/sdks/flutter/data/engine/38a646e14cc25f5a56a989c6a5787bf74e0ea386.json diff --git a/flutter_hash/engine/38ac5f30a7026e870619c2e8e8c99c070d74036f.json b/sdk-details/sdks/flutter/data/engine/38ac5f30a7026e870619c2e8e8c99c070d74036f.json similarity index 100% rename from flutter_hash/engine/38ac5f30a7026e870619c2e8e8c99c070d74036f.json rename to sdk-details/sdks/flutter/data/engine/38ac5f30a7026e870619c2e8e8c99c070d74036f.json diff --git a/flutter_hash/engine/38e19d01dcac654bbb941b771cc06efd4ed4a93f.json b/sdk-details/sdks/flutter/data/engine/38e19d01dcac654bbb941b771cc06efd4ed4a93f.json similarity index 100% rename from flutter_hash/engine/38e19d01dcac654bbb941b771cc06efd4ed4a93f.json rename to sdk-details/sdks/flutter/data/engine/38e19d01dcac654bbb941b771cc06efd4ed4a93f.json diff --git a/flutter_hash/engine/3950c6140a3f1cb295364b0446627bd3a1736915.json b/sdk-details/sdks/flutter/data/engine/3950c6140a3f1cb295364b0446627bd3a1736915.json similarity index 100% rename from flutter_hash/engine/3950c6140a3f1cb295364b0446627bd3a1736915.json rename to sdk-details/sdks/flutter/data/engine/3950c6140a3f1cb295364b0446627bd3a1736915.json diff --git a/flutter_hash/engine/3953c3ccd15a54a0718700aa11ead664b264b7dd.json b/sdk-details/sdks/flutter/data/engine/3953c3ccd15a54a0718700aa11ead664b264b7dd.json similarity index 100% rename from flutter_hash/engine/3953c3ccd15a54a0718700aa11ead664b264b7dd.json rename to sdk-details/sdks/flutter/data/engine/3953c3ccd15a54a0718700aa11ead664b264b7dd.json diff --git a/flutter_hash/engine/397deba30fcb592f17dfb31b4e9e31e17fbfae9a.json b/sdk-details/sdks/flutter/data/engine/397deba30fcb592f17dfb31b4e9e31e17fbfae9a.json similarity index 100% rename from flutter_hash/engine/397deba30fcb592f17dfb31b4e9e31e17fbfae9a.json rename to sdk-details/sdks/flutter/data/engine/397deba30fcb592f17dfb31b4e9e31e17fbfae9a.json diff --git a/flutter_hash/engine/39c46dea4b7347a252218aaff5caac5dc2fec8cd.json b/sdk-details/sdks/flutter/data/engine/39c46dea4b7347a252218aaff5caac5dc2fec8cd.json similarity index 100% rename from flutter_hash/engine/39c46dea4b7347a252218aaff5caac5dc2fec8cd.json rename to sdk-details/sdks/flutter/data/engine/39c46dea4b7347a252218aaff5caac5dc2fec8cd.json diff --git a/flutter_hash/engine/39c6dc9bdd3ba2bc387e6e14b72fce5f46abfcae.json b/sdk-details/sdks/flutter/data/engine/39c6dc9bdd3ba2bc387e6e14b72fce5f46abfcae.json similarity index 100% rename from flutter_hash/engine/39c6dc9bdd3ba2bc387e6e14b72fce5f46abfcae.json rename to sdk-details/sdks/flutter/data/engine/39c6dc9bdd3ba2bc387e6e14b72fce5f46abfcae.json diff --git a/flutter_hash/engine/39d6d6e699e51b2874210e14cddf1a22fb9524b2.json b/sdk-details/sdks/flutter/data/engine/39d6d6e699e51b2874210e14cddf1a22fb9524b2.json similarity index 100% rename from flutter_hash/engine/39d6d6e699e51b2874210e14cddf1a22fb9524b2.json rename to sdk-details/sdks/flutter/data/engine/39d6d6e699e51b2874210e14cddf1a22fb9524b2.json diff --git a/flutter_hash/engine/3a3f707d5a9b17388b60ff10b9f65b0c6a3c4134.json b/sdk-details/sdks/flutter/data/engine/3a3f707d5a9b17388b60ff10b9f65b0c6a3c4134.json similarity index 100% rename from flutter_hash/engine/3a3f707d5a9b17388b60ff10b9f65b0c6a3c4134.json rename to sdk-details/sdks/flutter/data/engine/3a3f707d5a9b17388b60ff10b9f65b0c6a3c4134.json diff --git a/flutter_hash/engine/3a73d073c8bedb678d82ee78daf05037b3a7a85e.json b/sdk-details/sdks/flutter/data/engine/3a73d073c8bedb678d82ee78daf05037b3a7a85e.json similarity index 100% rename from flutter_hash/engine/3a73d073c8bedb678d82ee78daf05037b3a7a85e.json rename to sdk-details/sdks/flutter/data/engine/3a73d073c8bedb678d82ee78daf05037b3a7a85e.json diff --git a/flutter_hash/engine/3ad69d7be3a7231aab5525db322fc699f098315f.json b/sdk-details/sdks/flutter/data/engine/3ad69d7be3a7231aab5525db322fc699f098315f.json similarity index 100% rename from flutter_hash/engine/3ad69d7be3a7231aab5525db322fc699f098315f.json rename to sdk-details/sdks/flutter/data/engine/3ad69d7be3a7231aab5525db322fc699f098315f.json diff --git a/flutter_hash/engine/3bf196591bc312b38399a598f8c9e5d752de56e2.json b/sdk-details/sdks/flutter/data/engine/3bf196591bc312b38399a598f8c9e5d752de56e2.json similarity index 100% rename from flutter_hash/engine/3bf196591bc312b38399a598f8c9e5d752de56e2.json rename to sdk-details/sdks/flutter/data/engine/3bf196591bc312b38399a598f8c9e5d752de56e2.json diff --git a/flutter_hash/engine/3c51a7bfff776e9e3011384f4ff09c13a697c6b6.json b/sdk-details/sdks/flutter/data/engine/3c51a7bfff776e9e3011384f4ff09c13a697c6b6.json similarity index 100% rename from flutter_hash/engine/3c51a7bfff776e9e3011384f4ff09c13a697c6b6.json rename to sdk-details/sdks/flutter/data/engine/3c51a7bfff776e9e3011384f4ff09c13a697c6b6.json diff --git a/flutter_hash/engine/3e10d92b2bbb29fc932868ee025959748285657b.json b/sdk-details/sdks/flutter/data/engine/3e10d92b2bbb29fc932868ee025959748285657b.json similarity index 100% rename from flutter_hash/engine/3e10d92b2bbb29fc932868ee025959748285657b.json rename to sdk-details/sdks/flutter/data/engine/3e10d92b2bbb29fc932868ee025959748285657b.json diff --git a/flutter_hash/engine/3e380092e270846373ee9739406bf471050c02c6.json b/sdk-details/sdks/flutter/data/engine/3e380092e270846373ee9739406bf471050c02c6.json similarity index 100% rename from flutter_hash/engine/3e380092e270846373ee9739406bf471050c02c6.json rename to sdk-details/sdks/flutter/data/engine/3e380092e270846373ee9739406bf471050c02c6.json diff --git a/flutter_hash/engine/3e4e6f5c54db7a705e6d50f7f3bddfa2ac0d6612.json b/sdk-details/sdks/flutter/data/engine/3e4e6f5c54db7a705e6d50f7f3bddfa2ac0d6612.json similarity index 100% rename from flutter_hash/engine/3e4e6f5c54db7a705e6d50f7f3bddfa2ac0d6612.json rename to sdk-details/sdks/flutter/data/engine/3e4e6f5c54db7a705e6d50f7f3bddfa2ac0d6612.json diff --git a/flutter_hash/engine/3e54f90f1af3b4b9846fba24a1cace62ddf7f77a.json b/sdk-details/sdks/flutter/data/engine/3e54f90f1af3b4b9846fba24a1cace62ddf7f77a.json similarity index 100% rename from flutter_hash/engine/3e54f90f1af3b4b9846fba24a1cace62ddf7f77a.json rename to sdk-details/sdks/flutter/data/engine/3e54f90f1af3b4b9846fba24a1cace62ddf7f77a.json diff --git a/flutter_hash/engine/3efdf03e73dd352873fc5a7e1c0de04e52863b3a.json b/sdk-details/sdks/flutter/data/engine/3efdf03e73dd352873fc5a7e1c0de04e52863b3a.json similarity index 100% rename from flutter_hash/engine/3efdf03e73dd352873fc5a7e1c0de04e52863b3a.json rename to sdk-details/sdks/flutter/data/engine/3efdf03e73dd352873fc5a7e1c0de04e52863b3a.json diff --git a/flutter_hash/engine/3f3e560236539b7e2702f5ac790b2a4691b32d49.json b/sdk-details/sdks/flutter/data/engine/3f3e560236539b7e2702f5ac790b2a4691b32d49.json similarity index 100% rename from flutter_hash/engine/3f3e560236539b7e2702f5ac790b2a4691b32d49.json rename to sdk-details/sdks/flutter/data/engine/3f3e560236539b7e2702f5ac790b2a4691b32d49.json diff --git a/flutter_hash/engine/3f52888b3bcf7adb9bc8d7be01f717a0c15b6618.json b/sdk-details/sdks/flutter/data/engine/3f52888b3bcf7adb9bc8d7be01f717a0c15b6618.json similarity index 100% rename from flutter_hash/engine/3f52888b3bcf7adb9bc8d7be01f717a0c15b6618.json rename to sdk-details/sdks/flutter/data/engine/3f52888b3bcf7adb9bc8d7be01f717a0c15b6618.json diff --git a/flutter_hash/engine/403337ebb893380101d1fa9cc435ce9b6cfeb22c.json b/sdk-details/sdks/flutter/data/engine/403337ebb893380101d1fa9cc435ce9b6cfeb22c.json similarity index 100% rename from flutter_hash/engine/403337ebb893380101d1fa9cc435ce9b6cfeb22c.json rename to sdk-details/sdks/flutter/data/engine/403337ebb893380101d1fa9cc435ce9b6cfeb22c.json diff --git a/flutter_hash/engine/40441def692f444660a11e20fac37af9050245ab.json b/sdk-details/sdks/flutter/data/engine/40441def692f444660a11e20fac37af9050245ab.json similarity index 100% rename from flutter_hash/engine/40441def692f444660a11e20fac37af9050245ab.json rename to sdk-details/sdks/flutter/data/engine/40441def692f444660a11e20fac37af9050245ab.json diff --git a/flutter_hash/engine/40a99c595137e4b2f5b2efa8ff343ea23c1e16b8.json b/sdk-details/sdks/flutter/data/engine/40a99c595137e4b2f5b2efa8ff343ea23c1e16b8.json similarity index 100% rename from flutter_hash/engine/40a99c595137e4b2f5b2efa8ff343ea23c1e16b8.json rename to sdk-details/sdks/flutter/data/engine/40a99c595137e4b2f5b2efa8ff343ea23c1e16b8.json diff --git a/flutter_hash/engine/425cfb54d01a9472b3e81d9e76fd63a4a44cfbcb.json b/sdk-details/sdks/flutter/data/engine/425cfb54d01a9472b3e81d9e76fd63a4a44cfbcb.json similarity index 100% rename from flutter_hash/engine/425cfb54d01a9472b3e81d9e76fd63a4a44cfbcb.json rename to sdk-details/sdks/flutter/data/engine/425cfb54d01a9472b3e81d9e76fd63a4a44cfbcb.json diff --git a/flutter_hash/engine/42a8d4c681baf87d2f2829ed3728eee4fe2bc3fe.json b/sdk-details/sdks/flutter/data/engine/42a8d4c681baf87d2f2829ed3728eee4fe2bc3fe.json similarity index 100% rename from flutter_hash/engine/42a8d4c681baf87d2f2829ed3728eee4fe2bc3fe.json rename to sdk-details/sdks/flutter/data/engine/42a8d4c681baf87d2f2829ed3728eee4fe2bc3fe.json diff --git a/flutter_hash/engine/42d3d75a56efe1a2e9902f52dc8006099c45d937.json b/sdk-details/sdks/flutter/data/engine/42d3d75a56efe1a2e9902f52dc8006099c45d937.json similarity index 100% rename from flutter_hash/engine/42d3d75a56efe1a2e9902f52dc8006099c45d937.json rename to sdk-details/sdks/flutter/data/engine/42d3d75a56efe1a2e9902f52dc8006099c45d937.json diff --git a/flutter_hash/engine/439a21816e61b8ede0a884470f99f8b6f4307fd0.json b/sdk-details/sdks/flutter/data/engine/439a21816e61b8ede0a884470f99f8b6f4307fd0.json similarity index 100% rename from flutter_hash/engine/439a21816e61b8ede0a884470f99f8b6f4307fd0.json rename to sdk-details/sdks/flutter/data/engine/439a21816e61b8ede0a884470f99f8b6f4307fd0.json diff --git a/flutter_hash/engine/4434a39c7d545ed47186b2f4d98cd09c8366e720.json b/sdk-details/sdks/flutter/data/engine/4434a39c7d545ed47186b2f4d98cd09c8366e720.json similarity index 100% rename from flutter_hash/engine/4434a39c7d545ed47186b2f4d98cd09c8366e720.json rename to sdk-details/sdks/flutter/data/engine/4434a39c7d545ed47186b2f4d98cd09c8366e720.json diff --git a/flutter_hash/engine/443cd5a1e1b3ef5d98953a6f4cf1b30df582d0ca.json b/sdk-details/sdks/flutter/data/engine/443cd5a1e1b3ef5d98953a6f4cf1b30df582d0ca.json similarity index 100% rename from flutter_hash/engine/443cd5a1e1b3ef5d98953a6f4cf1b30df582d0ca.json rename to sdk-details/sdks/flutter/data/engine/443cd5a1e1b3ef5d98953a6f4cf1b30df582d0ca.json diff --git a/flutter_hash/engine/4444c9cb6c9f1859c1807cff415cd716bb9612ff.json b/sdk-details/sdks/flutter/data/engine/4444c9cb6c9f1859c1807cff415cd716bb9612ff.json similarity index 100% rename from flutter_hash/engine/4444c9cb6c9f1859c1807cff415cd716bb9612ff.json rename to sdk-details/sdks/flutter/data/engine/4444c9cb6c9f1859c1807cff415cd716bb9612ff.json diff --git a/flutter_hash/engine/44e5b38ee83a1282981a30abc08ffcf6cd0e44bd.json b/sdk-details/sdks/flutter/data/engine/44e5b38ee83a1282981a30abc08ffcf6cd0e44bd.json similarity index 100% rename from flutter_hash/engine/44e5b38ee83a1282981a30abc08ffcf6cd0e44bd.json rename to sdk-details/sdks/flutter/data/engine/44e5b38ee83a1282981a30abc08ffcf6cd0e44bd.json diff --git a/flutter_hash/engine/453411bcf3961fef3e6caa57a04e7fc3e9faa037.json b/sdk-details/sdks/flutter/data/engine/453411bcf3961fef3e6caa57a04e7fc3e9faa037.json similarity index 100% rename from flutter_hash/engine/453411bcf3961fef3e6caa57a04e7fc3e9faa037.json rename to sdk-details/sdks/flutter/data/engine/453411bcf3961fef3e6caa57a04e7fc3e9faa037.json diff --git a/flutter_hash/engine/453dd7174cc6555e3e9eb5f006c86e6ec221a0d2.json b/sdk-details/sdks/flutter/data/engine/453dd7174cc6555e3e9eb5f006c86e6ec221a0d2.json similarity index 100% rename from flutter_hash/engine/453dd7174cc6555e3e9eb5f006c86e6ec221a0d2.json rename to sdk-details/sdks/flutter/data/engine/453dd7174cc6555e3e9eb5f006c86e6ec221a0d2.json diff --git a/flutter_hash/engine/45712dd2f120092ca3c78d0098b12f0079fd966d.json b/sdk-details/sdks/flutter/data/engine/45712dd2f120092ca3c78d0098b12f0079fd966d.json similarity index 100% rename from flutter_hash/engine/45712dd2f120092ca3c78d0098b12f0079fd966d.json rename to sdk-details/sdks/flutter/data/engine/45712dd2f120092ca3c78d0098b12f0079fd966d.json diff --git a/flutter_hash/engine/45c5586f2a9583d9511b742703529a92bf8f9db5.json b/sdk-details/sdks/flutter/data/engine/45c5586f2a9583d9511b742703529a92bf8f9db5.json similarity index 100% rename from flutter_hash/engine/45c5586f2a9583d9511b742703529a92bf8f9db5.json rename to sdk-details/sdks/flutter/data/engine/45c5586f2a9583d9511b742703529a92bf8f9db5.json diff --git a/flutter_hash/engine/45f6e009110df4f34ec2cf99f63cf73b71b7a420.json b/sdk-details/sdks/flutter/data/engine/45f6e009110df4f34ec2cf99f63cf73b71b7a420.json similarity index 100% rename from flutter_hash/engine/45f6e009110df4f34ec2cf99f63cf73b71b7a420.json rename to sdk-details/sdks/flutter/data/engine/45f6e009110df4f34ec2cf99f63cf73b71b7a420.json diff --git a/flutter_hash/engine/4654fc6cf6416daae78eac2c211ad84c46e21625.json b/sdk-details/sdks/flutter/data/engine/4654fc6cf6416daae78eac2c211ad84c46e21625.json similarity index 100% rename from flutter_hash/engine/4654fc6cf6416daae78eac2c211ad84c46e21625.json rename to sdk-details/sdks/flutter/data/engine/4654fc6cf6416daae78eac2c211ad84c46e21625.json diff --git a/flutter_hash/engine/4737fc5cd89b8f0136e927b00f2e159444b95a73.json b/sdk-details/sdks/flutter/data/engine/4737fc5cd89b8f0136e927b00f2e159444b95a73.json similarity index 100% rename from flutter_hash/engine/4737fc5cd89b8f0136e927b00f2e159444b95a73.json rename to sdk-details/sdks/flutter/data/engine/4737fc5cd89b8f0136e927b00f2e159444b95a73.json diff --git a/flutter_hash/engine/4797b066524201e86d6bc5c110104c390899f264.json b/sdk-details/sdks/flutter/data/engine/4797b066524201e86d6bc5c110104c390899f264.json similarity index 100% rename from flutter_hash/engine/4797b066524201e86d6bc5c110104c390899f264.json rename to sdk-details/sdks/flutter/data/engine/4797b066524201e86d6bc5c110104c390899f264.json diff --git a/flutter_hash/engine/486f4a749e532b865d5d24990d865f7d902b8fb3.json b/sdk-details/sdks/flutter/data/engine/486f4a749e532b865d5d24990d865f7d902b8fb3.json similarity index 100% rename from flutter_hash/engine/486f4a749e532b865d5d24990d865f7d902b8fb3.json rename to sdk-details/sdks/flutter/data/engine/486f4a749e532b865d5d24990d865f7d902b8fb3.json diff --git a/flutter_hash/engine/492bf6df86d056e47d05a3d5404f3d78939b3dae.json b/sdk-details/sdks/flutter/data/engine/492bf6df86d056e47d05a3d5404f3d78939b3dae.json similarity index 100% rename from flutter_hash/engine/492bf6df86d056e47d05a3d5404f3d78939b3dae.json rename to sdk-details/sdks/flutter/data/engine/492bf6df86d056e47d05a3d5404f3d78939b3dae.json diff --git a/flutter_hash/engine/4959b71d6a1b1473911970428b16ac02397d930b.json b/sdk-details/sdks/flutter/data/engine/4959b71d6a1b1473911970428b16ac02397d930b.json similarity index 100% rename from flutter_hash/engine/4959b71d6a1b1473911970428b16ac02397d930b.json rename to sdk-details/sdks/flutter/data/engine/4959b71d6a1b1473911970428b16ac02397d930b.json diff --git a/flutter_hash/engine/4971c5b2e7e66cb7abc858b4e0203ce7d39f6ff1.json b/sdk-details/sdks/flutter/data/engine/4971c5b2e7e66cb7abc858b4e0203ce7d39f6ff1.json similarity index 100% rename from flutter_hash/engine/4971c5b2e7e66cb7abc858b4e0203ce7d39f6ff1.json rename to sdk-details/sdks/flutter/data/engine/4971c5b2e7e66cb7abc858b4e0203ce7d39f6ff1.json diff --git a/flutter_hash/engine/49891e065313d26bbc2ddc9805fb7ed27edae174.json b/sdk-details/sdks/flutter/data/engine/49891e065313d26bbc2ddc9805fb7ed27edae174.json similarity index 100% rename from flutter_hash/engine/49891e065313d26bbc2ddc9805fb7ed27edae174.json rename to sdk-details/sdks/flutter/data/engine/49891e065313d26bbc2ddc9805fb7ed27edae174.json diff --git a/flutter_hash/engine/499984f99cfe01e3b69d962ec4847f70c4317694.json b/sdk-details/sdks/flutter/data/engine/499984f99cfe01e3b69d962ec4847f70c4317694.json similarity index 100% rename from flutter_hash/engine/499984f99cfe01e3b69d962ec4847f70c4317694.json rename to sdk-details/sdks/flutter/data/engine/499984f99cfe01e3b69d962ec4847f70c4317694.json diff --git a/flutter_hash/engine/4a466e17cb02da06e9e256a278cb9779f2abb245.json b/sdk-details/sdks/flutter/data/engine/4a466e17cb02da06e9e256a278cb9779f2abb245.json similarity index 100% rename from flutter_hash/engine/4a466e17cb02da06e9e256a278cb9779f2abb245.json rename to sdk-details/sdks/flutter/data/engine/4a466e17cb02da06e9e256a278cb9779f2abb245.json diff --git a/flutter_hash/engine/4a585b79294e830fa89c24924d58a27cc8fbf406.json b/sdk-details/sdks/flutter/data/engine/4a585b79294e830fa89c24924d58a27cc8fbf406.json similarity index 100% rename from flutter_hash/engine/4a585b79294e830fa89c24924d58a27cc8fbf406.json rename to sdk-details/sdks/flutter/data/engine/4a585b79294e830fa89c24924d58a27cc8fbf406.json diff --git a/flutter_hash/engine/4b271b2e0265428fc144c5ce6c1234680631d83e.json b/sdk-details/sdks/flutter/data/engine/4b271b2e0265428fc144c5ce6c1234680631d83e.json similarity index 100% rename from flutter_hash/engine/4b271b2e0265428fc144c5ce6c1234680631d83e.json rename to sdk-details/sdks/flutter/data/engine/4b271b2e0265428fc144c5ce6c1234680631d83e.json diff --git a/flutter_hash/engine/4b6b4afd6492499b72bdc59c3a633c7721708087.json b/sdk-details/sdks/flutter/data/engine/4b6b4afd6492499b72bdc59c3a633c7721708087.json similarity index 100% rename from flutter_hash/engine/4b6b4afd6492499b72bdc59c3a633c7721708087.json rename to sdk-details/sdks/flutter/data/engine/4b6b4afd6492499b72bdc59c3a633c7721708087.json diff --git a/flutter_hash/engine/4c525dac5ebe5971c5708ef73558ed8edcf4a362.json b/sdk-details/sdks/flutter/data/engine/4c525dac5ebe5971c5708ef73558ed8edcf4a362.json similarity index 100% rename from flutter_hash/engine/4c525dac5ebe5971c5708ef73558ed8edcf4a362.json rename to sdk-details/sdks/flutter/data/engine/4c525dac5ebe5971c5708ef73558ed8edcf4a362.json diff --git a/flutter_hash/engine/4c8c31f591882b3c668992d2e9da761118899f38.json b/sdk-details/sdks/flutter/data/engine/4c8c31f591882b3c668992d2e9da761118899f38.json similarity index 100% rename from flutter_hash/engine/4c8c31f591882b3c668992d2e9da761118899f38.json rename to sdk-details/sdks/flutter/data/engine/4c8c31f591882b3c668992d2e9da761118899f38.json diff --git a/flutter_hash/engine/4cfbe45033ef2788512932fd75d51c84036c204a.json b/sdk-details/sdks/flutter/data/engine/4cfbe45033ef2788512932fd75d51c84036c204a.json similarity index 100% rename from flutter_hash/engine/4cfbe45033ef2788512932fd75d51c84036c204a.json rename to sdk-details/sdks/flutter/data/engine/4cfbe45033ef2788512932fd75d51c84036c204a.json diff --git a/flutter_hash/engine/4da196caa1ce854e0b3f97587e4220e14aa2c335.json b/sdk-details/sdks/flutter/data/engine/4da196caa1ce854e0b3f97587e4220e14aa2c335.json similarity index 100% rename from flutter_hash/engine/4da196caa1ce854e0b3f97587e4220e14aa2c335.json rename to sdk-details/sdks/flutter/data/engine/4da196caa1ce854e0b3f97587e4220e14aa2c335.json diff --git a/flutter_hash/engine/4e54bc93ca9aaf2156fb06266c9fe509e8599a5f.json b/sdk-details/sdks/flutter/data/engine/4e54bc93ca9aaf2156fb06266c9fe509e8599a5f.json similarity index 100% rename from flutter_hash/engine/4e54bc93ca9aaf2156fb06266c9fe509e8599a5f.json rename to sdk-details/sdks/flutter/data/engine/4e54bc93ca9aaf2156fb06266c9fe509e8599a5f.json diff --git a/flutter_hash/engine/4f18bb4dcb99d7e0d94aeff2ffa74e6ddef301cd.json b/sdk-details/sdks/flutter/data/engine/4f18bb4dcb99d7e0d94aeff2ffa74e6ddef301cd.json similarity index 100% rename from flutter_hash/engine/4f18bb4dcb99d7e0d94aeff2ffa74e6ddef301cd.json rename to sdk-details/sdks/flutter/data/engine/4f18bb4dcb99d7e0d94aeff2ffa74e6ddef301cd.json diff --git a/flutter_hash/engine/4f3679cadc3804a16abfe00f51146f4291f9384c.json b/sdk-details/sdks/flutter/data/engine/4f3679cadc3804a16abfe00f51146f4291f9384c.json similarity index 100% rename from flutter_hash/engine/4f3679cadc3804a16abfe00f51146f4291f9384c.json rename to sdk-details/sdks/flutter/data/engine/4f3679cadc3804a16abfe00f51146f4291f9384c.json diff --git a/flutter_hash/engine/4f54a1dd944497bd1ec0f2acca22ff9fbd8b377a.json b/sdk-details/sdks/flutter/data/engine/4f54a1dd944497bd1ec0f2acca22ff9fbd8b377a.json similarity index 100% rename from flutter_hash/engine/4f54a1dd944497bd1ec0f2acca22ff9fbd8b377a.json rename to sdk-details/sdks/flutter/data/engine/4f54a1dd944497bd1ec0f2acca22ff9fbd8b377a.json diff --git a/flutter_hash/engine/5000ea89b5273778e84f18ad3952f2049d1c017a.json b/sdk-details/sdks/flutter/data/engine/5000ea89b5273778e84f18ad3952f2049d1c017a.json similarity index 100% rename from flutter_hash/engine/5000ea89b5273778e84f18ad3952f2049d1c017a.json rename to sdk-details/sdks/flutter/data/engine/5000ea89b5273778e84f18ad3952f2049d1c017a.json diff --git a/flutter_hash/engine/50e509c2bd0d7788feb675e38321cc5711c8d2d6.json b/sdk-details/sdks/flutter/data/engine/50e509c2bd0d7788feb675e38321cc5711c8d2d6.json similarity index 100% rename from flutter_hash/engine/50e509c2bd0d7788feb675e38321cc5711c8d2d6.json rename to sdk-details/sdks/flutter/data/engine/50e509c2bd0d7788feb675e38321cc5711c8d2d6.json diff --git a/flutter_hash/engine/50f226569f331edf2831a7543f55d953c3d50637.json b/sdk-details/sdks/flutter/data/engine/50f226569f331edf2831a7543f55d953c3d50637.json similarity index 100% rename from flutter_hash/engine/50f226569f331edf2831a7543f55d953c3d50637.json rename to sdk-details/sdks/flutter/data/engine/50f226569f331edf2831a7543f55d953c3d50637.json diff --git a/flutter_hash/engine/52c7a1e849a170be4b2b2fe34142ca2c0a6fea1f.json b/sdk-details/sdks/flutter/data/engine/52c7a1e849a170be4b2b2fe34142ca2c0a6fea1f.json similarity index 100% rename from flutter_hash/engine/52c7a1e849a170be4b2b2fe34142ca2c0a6fea1f.json rename to sdk-details/sdks/flutter/data/engine/52c7a1e849a170be4b2b2fe34142ca2c0a6fea1f.json diff --git a/flutter_hash/engine/52cc75c62467e72200ab5cd54cee48b8313f6d86.json b/sdk-details/sdks/flutter/data/engine/52cc75c62467e72200ab5cd54cee48b8313f6d86.json similarity index 100% rename from flutter_hash/engine/52cc75c62467e72200ab5cd54cee48b8313f6d86.json rename to sdk-details/sdks/flutter/data/engine/52cc75c62467e72200ab5cd54cee48b8313f6d86.json diff --git a/flutter_hash/engine/53c27e519d33b4e13b01a8710b38a3591d6ca6f1.json b/sdk-details/sdks/flutter/data/engine/53c27e519d33b4e13b01a8710b38a3591d6ca6f1.json similarity index 100% rename from flutter_hash/engine/53c27e519d33b4e13b01a8710b38a3591d6ca6f1.json rename to sdk-details/sdks/flutter/data/engine/53c27e519d33b4e13b01a8710b38a3591d6ca6f1.json diff --git a/flutter_hash/engine/540786dd51f112885a89792d678296b95e6622e5.json b/sdk-details/sdks/flutter/data/engine/540786dd51f112885a89792d678296b95e6622e5.json similarity index 100% rename from flutter_hash/engine/540786dd51f112885a89792d678296b95e6622e5.json rename to sdk-details/sdks/flutter/data/engine/540786dd51f112885a89792d678296b95e6622e5.json diff --git a/flutter_hash/engine/54a7145303f0dd9d0f93424a2e124eb4abef5091.json b/sdk-details/sdks/flutter/data/engine/54a7145303f0dd9d0f93424a2e124eb4abef5091.json similarity index 100% rename from flutter_hash/engine/54a7145303f0dd9d0f93424a2e124eb4abef5091.json rename to sdk-details/sdks/flutter/data/engine/54a7145303f0dd9d0f93424a2e124eb4abef5091.json diff --git a/flutter_hash/engine/54ad777fd29b031b87c7a68a6637fb48c0932862.json b/sdk-details/sdks/flutter/data/engine/54ad777fd29b031b87c7a68a6637fb48c0932862.json similarity index 100% rename from flutter_hash/engine/54ad777fd29b031b87c7a68a6637fb48c0932862.json rename to sdk-details/sdks/flutter/data/engine/54ad777fd29b031b87c7a68a6637fb48c0932862.json diff --git a/flutter_hash/engine/55406841525fba0dcb7fdf417bf021e96093459d.json b/sdk-details/sdks/flutter/data/engine/55406841525fba0dcb7fdf417bf021e96093459d.json similarity index 100% rename from flutter_hash/engine/55406841525fba0dcb7fdf417bf021e96093459d.json rename to sdk-details/sdks/flutter/data/engine/55406841525fba0dcb7fdf417bf021e96093459d.json diff --git a/flutter_hash/engine/55eae6864b296dd9f43b2cc7577ec256e5c32a8d.json b/sdk-details/sdks/flutter/data/engine/55eae6864b296dd9f43b2cc7577ec256e5c32a8d.json similarity index 100% rename from flutter_hash/engine/55eae6864b296dd9f43b2cc7577ec256e5c32a8d.json rename to sdk-details/sdks/flutter/data/engine/55eae6864b296dd9f43b2cc7577ec256e5c32a8d.json diff --git a/flutter_hash/engine/5646e86a6f442dc6f4158ae7010ab13d72a0b356.json b/sdk-details/sdks/flutter/data/engine/5646e86a6f442dc6f4158ae7010ab13d72a0b356.json similarity index 100% rename from flutter_hash/engine/5646e86a6f442dc6f4158ae7010ab13d72a0b356.json rename to sdk-details/sdks/flutter/data/engine/5646e86a6f442dc6f4158ae7010ab13d72a0b356.json diff --git a/flutter_hash/engine/56f64c26474b70c7bc4d4c8785097499775d59e0.json b/sdk-details/sdks/flutter/data/engine/56f64c26474b70c7bc4d4c8785097499775d59e0.json similarity index 100% rename from flutter_hash/engine/56f64c26474b70c7bc4d4c8785097499775d59e0.json rename to sdk-details/sdks/flutter/data/engine/56f64c26474b70c7bc4d4c8785097499775d59e0.json diff --git a/flutter_hash/engine/57d3bac3dd5cb5b0e464ab70e7bc8a0d8cf083ab.json b/sdk-details/sdks/flutter/data/engine/57d3bac3dd5cb5b0e464ab70e7bc8a0d8cf083ab.json similarity index 100% rename from flutter_hash/engine/57d3bac3dd5cb5b0e464ab70e7bc8a0d8cf083ab.json rename to sdk-details/sdks/flutter/data/engine/57d3bac3dd5cb5b0e464ab70e7bc8a0d8cf083ab.json diff --git a/flutter_hash/engine/587c18f873b8ab57330422bce09047420d9c7f42.json b/sdk-details/sdks/flutter/data/engine/587c18f873b8ab57330422bce09047420d9c7f42.json similarity index 100% rename from flutter_hash/engine/587c18f873b8ab57330422bce09047420d9c7f42.json rename to sdk-details/sdks/flutter/data/engine/587c18f873b8ab57330422bce09047420d9c7f42.json diff --git a/flutter_hash/engine/58a1894a1cd798de2f9a206f157a90d45944028b.json b/sdk-details/sdks/flutter/data/engine/58a1894a1cd798de2f9a206f157a90d45944028b.json similarity index 100% rename from flutter_hash/engine/58a1894a1cd798de2f9a206f157a90d45944028b.json rename to sdk-details/sdks/flutter/data/engine/58a1894a1cd798de2f9a206f157a90d45944028b.json diff --git a/flutter_hash/engine/58cdd53f9083412fa7da893f53c1ca1c93500532.json b/sdk-details/sdks/flutter/data/engine/58cdd53f9083412fa7da893f53c1ca1c93500532.json similarity index 100% rename from flutter_hash/engine/58cdd53f9083412fa7da893f53c1ca1c93500532.json rename to sdk-details/sdks/flutter/data/engine/58cdd53f9083412fa7da893f53c1ca1c93500532.json diff --git a/flutter_hash/engine/58eff77ef2f808306f0f8d4e46d910b6210bae46.json b/sdk-details/sdks/flutter/data/engine/58eff77ef2f808306f0f8d4e46d910b6210bae46.json similarity index 100% rename from flutter_hash/engine/58eff77ef2f808306f0f8d4e46d910b6210bae46.json rename to sdk-details/sdks/flutter/data/engine/58eff77ef2f808306f0f8d4e46d910b6210bae46.json diff --git a/flutter_hash/engine/5944867cabdb934ef9fea0dccb865cb1acef51b5.json b/sdk-details/sdks/flutter/data/engine/5944867cabdb934ef9fea0dccb865cb1acef51b5.json similarity index 100% rename from flutter_hash/engine/5944867cabdb934ef9fea0dccb865cb1acef51b5.json rename to sdk-details/sdks/flutter/data/engine/5944867cabdb934ef9fea0dccb865cb1acef51b5.json diff --git a/flutter_hash/engine/59aa584fdf100e6c78c785d8a5b565d1de4b48ab.json b/sdk-details/sdks/flutter/data/engine/59aa584fdf100e6c78c785d8a5b565d1de4b48ab.json similarity index 100% rename from flutter_hash/engine/59aa584fdf100e6c78c785d8a5b565d1de4b48ab.json rename to sdk-details/sdks/flutter/data/engine/59aa584fdf100e6c78c785d8a5b565d1de4b48ab.json diff --git a/flutter_hash/engine/59f79d0d64c915c6ba04099206e3fed5b9d5a4a1.json b/sdk-details/sdks/flutter/data/engine/59f79d0d64c915c6ba04099206e3fed5b9d5a4a1.json similarity index 100% rename from flutter_hash/engine/59f79d0d64c915c6ba04099206e3fed5b9d5a4a1.json rename to sdk-details/sdks/flutter/data/engine/59f79d0d64c915c6ba04099206e3fed5b9d5a4a1.json diff --git a/flutter_hash/engine/5ac30ef0c70b76c5d5b5465b0ad4f08d5433684f.json b/sdk-details/sdks/flutter/data/engine/5ac30ef0c70b76c5d5b5465b0ad4f08d5433684f.json similarity index 100% rename from flutter_hash/engine/5ac30ef0c70b76c5d5b5465b0ad4f08d5433684f.json rename to sdk-details/sdks/flutter/data/engine/5ac30ef0c70b76c5d5b5465b0ad4f08d5433684f.json diff --git a/flutter_hash/engine/5aff3119480996ca014ec0f8d26d74db617b5852.json b/sdk-details/sdks/flutter/data/engine/5aff3119480996ca014ec0f8d26d74db617b5852.json similarity index 100% rename from flutter_hash/engine/5aff3119480996ca014ec0f8d26d74db617b5852.json rename to sdk-details/sdks/flutter/data/engine/5aff3119480996ca014ec0f8d26d74db617b5852.json diff --git a/flutter_hash/engine/5b81c6d615c395d70f7032763aa8e89f16fb2bdd.json b/sdk-details/sdks/flutter/data/engine/5b81c6d615c395d70f7032763aa8e89f16fb2bdd.json similarity index 100% rename from flutter_hash/engine/5b81c6d615c395d70f7032763aa8e89f16fb2bdd.json rename to sdk-details/sdks/flutter/data/engine/5b81c6d615c395d70f7032763aa8e89f16fb2bdd.json diff --git a/flutter_hash/engine/5babba6c4d25fa237bbf755ab85c9a0c50b3c6ec.json b/sdk-details/sdks/flutter/data/engine/5babba6c4d25fa237bbf755ab85c9a0c50b3c6ec.json similarity index 100% rename from flutter_hash/engine/5babba6c4d25fa237bbf755ab85c9a0c50b3c6ec.json rename to sdk-details/sdks/flutter/data/engine/5babba6c4d25fa237bbf755ab85c9a0c50b3c6ec.json diff --git a/flutter_hash/engine/5c8147450db52b81232c138b9f9a65a8f9c61862.json b/sdk-details/sdks/flutter/data/engine/5c8147450db52b81232c138b9f9a65a8f9c61862.json similarity index 100% rename from flutter_hash/engine/5c8147450db52b81232c138b9f9a65a8f9c61862.json rename to sdk-details/sdks/flutter/data/engine/5c8147450db52b81232c138b9f9a65a8f9c61862.json diff --git a/flutter_hash/engine/5c861944948efff4217b5f1fe1d04d23de39d54c.json b/sdk-details/sdks/flutter/data/engine/5c861944948efff4217b5f1fe1d04d23de39d54c.json similarity index 100% rename from flutter_hash/engine/5c861944948efff4217b5f1fe1d04d23de39d54c.json rename to sdk-details/sdks/flutter/data/engine/5c861944948efff4217b5f1fe1d04d23de39d54c.json diff --git a/flutter_hash/engine/5c984c26ebc4a0a8897305d3c6bef70ced91090d.json b/sdk-details/sdks/flutter/data/engine/5c984c26ebc4a0a8897305d3c6bef70ced91090d.json similarity index 100% rename from flutter_hash/engine/5c984c26ebc4a0a8897305d3c6bef70ced91090d.json rename to sdk-details/sdks/flutter/data/engine/5c984c26ebc4a0a8897305d3c6bef70ced91090d.json diff --git a/flutter_hash/engine/5d2f24aa5cbdbe3c5d41b2b261873d26f4077c79.json b/sdk-details/sdks/flutter/data/engine/5d2f24aa5cbdbe3c5d41b2b261873d26f4077c79.json similarity index 100% rename from flutter_hash/engine/5d2f24aa5cbdbe3c5d41b2b261873d26f4077c79.json rename to sdk-details/sdks/flutter/data/engine/5d2f24aa5cbdbe3c5d41b2b261873d26f4077c79.json diff --git a/flutter_hash/engine/5d3477eab415fbcc3d58624b07f0a768f8208f98.json b/sdk-details/sdks/flutter/data/engine/5d3477eab415fbcc3d58624b07f0a768f8208f98.json similarity index 100% rename from flutter_hash/engine/5d3477eab415fbcc3d58624b07f0a768f8208f98.json rename to sdk-details/sdks/flutter/data/engine/5d3477eab415fbcc3d58624b07f0a768f8208f98.json diff --git a/flutter_hash/engine/5d8bf811b3072390933d69f3e289a4bb673636c4.json b/sdk-details/sdks/flutter/data/engine/5d8bf811b3072390933d69f3e289a4bb673636c4.json similarity index 100% rename from flutter_hash/engine/5d8bf811b3072390933d69f3e289a4bb673636c4.json rename to sdk-details/sdks/flutter/data/engine/5d8bf811b3072390933d69f3e289a4bb673636c4.json diff --git a/flutter_hash/engine/5e9e0e0aa8be4ff69facadd706b713f0bb54d5b3.json b/sdk-details/sdks/flutter/data/engine/5e9e0e0aa8be4ff69facadd706b713f0bb54d5b3.json similarity index 100% rename from flutter_hash/engine/5e9e0e0aa8be4ff69facadd706b713f0bb54d5b3.json rename to sdk-details/sdks/flutter/data/engine/5e9e0e0aa8be4ff69facadd706b713f0bb54d5b3.json diff --git a/flutter_hash/engine/5fb7eb753b28adbc1ca4914d9c27993027885aa7.json b/sdk-details/sdks/flutter/data/engine/5fb7eb753b28adbc1ca4914d9c27993027885aa7.json similarity index 100% rename from flutter_hash/engine/5fb7eb753b28adbc1ca4914d9c27993027885aa7.json rename to sdk-details/sdks/flutter/data/engine/5fb7eb753b28adbc1ca4914d9c27993027885aa7.json diff --git a/flutter_hash/engine/60b269d898cbe0be27e9b9ba9d21eae97b887ab6.json b/sdk-details/sdks/flutter/data/engine/60b269d898cbe0be27e9b9ba9d21eae97b887ab6.json similarity index 100% rename from flutter_hash/engine/60b269d898cbe0be27e9b9ba9d21eae97b887ab6.json rename to sdk-details/sdks/flutter/data/engine/60b269d898cbe0be27e9b9ba9d21eae97b887ab6.json diff --git a/flutter_hash/engine/6158f03ef5fae3ef620264595021609ed9ea3a5c.json b/sdk-details/sdks/flutter/data/engine/6158f03ef5fae3ef620264595021609ed9ea3a5c.json similarity index 100% rename from flutter_hash/engine/6158f03ef5fae3ef620264595021609ed9ea3a5c.json rename to sdk-details/sdks/flutter/data/engine/6158f03ef5fae3ef620264595021609ed9ea3a5c.json diff --git a/flutter_hash/engine/617938024315e205f26ed72ff0f0647775fa6a71.json b/sdk-details/sdks/flutter/data/engine/617938024315e205f26ed72ff0f0647775fa6a71.json similarity index 100% rename from flutter_hash/engine/617938024315e205f26ed72ff0f0647775fa6a71.json rename to sdk-details/sdks/flutter/data/engine/617938024315e205f26ed72ff0f0647775fa6a71.json diff --git a/flutter_hash/engine/6280adbfb1f9f63cdc6179b9b78634add1e4f2e3.json b/sdk-details/sdks/flutter/data/engine/6280adbfb1f9f63cdc6179b9b78634add1e4f2e3.json similarity index 100% rename from flutter_hash/engine/6280adbfb1f9f63cdc6179b9b78634add1e4f2e3.json rename to sdk-details/sdks/flutter/data/engine/6280adbfb1f9f63cdc6179b9b78634add1e4f2e3.json diff --git a/flutter_hash/engine/63949eb0fd982b27adc218364805913380af7411.json b/sdk-details/sdks/flutter/data/engine/63949eb0fd982b27adc218364805913380af7411.json similarity index 100% rename from flutter_hash/engine/63949eb0fd982b27adc218364805913380af7411.json rename to sdk-details/sdks/flutter/data/engine/63949eb0fd982b27adc218364805913380af7411.json diff --git a/flutter_hash/engine/639e313f998a27ae82a876e1c6c1374afae6f843.json b/sdk-details/sdks/flutter/data/engine/639e313f998a27ae82a876e1c6c1374afae6f843.json similarity index 100% rename from flutter_hash/engine/639e313f998a27ae82a876e1c6c1374afae6f843.json rename to sdk-details/sdks/flutter/data/engine/639e313f998a27ae82a876e1c6c1374afae6f843.json diff --git a/flutter_hash/engine/63ca99584a1aef79722b2a7c6414570b54416bab.json b/sdk-details/sdks/flutter/data/engine/63ca99584a1aef79722b2a7c6414570b54416bab.json similarity index 100% rename from flutter_hash/engine/63ca99584a1aef79722b2a7c6414570b54416bab.json rename to sdk-details/sdks/flutter/data/engine/63ca99584a1aef79722b2a7c6414570b54416bab.json diff --git a/flutter_hash/engine/6474647f5210a968d186901cc511153ec442e897.json b/sdk-details/sdks/flutter/data/engine/6474647f5210a968d186901cc511153ec442e897.json similarity index 100% rename from flutter_hash/engine/6474647f5210a968d186901cc511153ec442e897.json rename to sdk-details/sdks/flutter/data/engine/6474647f5210a968d186901cc511153ec442e897.json diff --git a/flutter_hash/engine/659d9553df45256ed2aa388aae7ed5a1a4f51bae.json b/sdk-details/sdks/flutter/data/engine/659d9553df45256ed2aa388aae7ed5a1a4f51bae.json similarity index 100% rename from flutter_hash/engine/659d9553df45256ed2aa388aae7ed5a1a4f51bae.json rename to sdk-details/sdks/flutter/data/engine/659d9553df45256ed2aa388aae7ed5a1a4f51bae.json diff --git a/flutter_hash/engine/66344068899635154addec16005167113b9c1e9d.json b/sdk-details/sdks/flutter/data/engine/66344068899635154addec16005167113b9c1e9d.json similarity index 100% rename from flutter_hash/engine/66344068899635154addec16005167113b9c1e9d.json rename to sdk-details/sdks/flutter/data/engine/66344068899635154addec16005167113b9c1e9d.json diff --git a/flutter_hash/engine/67f6b4a7552bec81f12788cd02a6c986e64479af.json b/sdk-details/sdks/flutter/data/engine/67f6b4a7552bec81f12788cd02a6c986e64479af.json similarity index 100% rename from flutter_hash/engine/67f6b4a7552bec81f12788cd02a6c986e64479af.json rename to sdk-details/sdks/flutter/data/engine/67f6b4a7552bec81f12788cd02a6c986e64479af.json diff --git a/flutter_hash/engine/6801b4dae791e458db94775d675fec1fb5efb15f.json b/sdk-details/sdks/flutter/data/engine/6801b4dae791e458db94775d675fec1fb5efb15f.json similarity index 100% rename from flutter_hash/engine/6801b4dae791e458db94775d675fec1fb5efb15f.json rename to sdk-details/sdks/flutter/data/engine/6801b4dae791e458db94775d675fec1fb5efb15f.json diff --git a/flutter_hash/engine/6955b06cedb2425f4363f10642c9b0e63e496af0.json b/sdk-details/sdks/flutter/data/engine/6955b06cedb2425f4363f10642c9b0e63e496af0.json similarity index 100% rename from flutter_hash/engine/6955b06cedb2425f4363f10642c9b0e63e496af0.json rename to sdk-details/sdks/flutter/data/engine/6955b06cedb2425f4363f10642c9b0e63e496af0.json diff --git a/flutter_hash/engine/6993cb229b99e6771c6c6c2b884ae006d8160a0f.json b/sdk-details/sdks/flutter/data/engine/6993cb229b99e6771c6c6c2b884ae006d8160a0f.json similarity index 100% rename from flutter_hash/engine/6993cb229b99e6771c6c6c2b884ae006d8160a0f.json rename to sdk-details/sdks/flutter/data/engine/6993cb229b99e6771c6c6c2b884ae006d8160a0f.json diff --git a/flutter_hash/engine/69f0e5550702bb81458a1987f3054085aeb8353d.json b/sdk-details/sdks/flutter/data/engine/69f0e5550702bb81458a1987f3054085aeb8353d.json similarity index 100% rename from flutter_hash/engine/69f0e5550702bb81458a1987f3054085aeb8353d.json rename to sdk-details/sdks/flutter/data/engine/69f0e5550702bb81458a1987f3054085aeb8353d.json diff --git a/flutter_hash/engine/6ac856380fa4f66469552ce986edf59f65f7cd68.json b/sdk-details/sdks/flutter/data/engine/6ac856380fa4f66469552ce986edf59f65f7cd68.json similarity index 100% rename from flutter_hash/engine/6ac856380fa4f66469552ce986edf59f65f7cd68.json rename to sdk-details/sdks/flutter/data/engine/6ac856380fa4f66469552ce986edf59f65f7cd68.json diff --git a/flutter_hash/engine/6ba2af10bb05c88a2731482cedf2cfd11cf5af0b.json b/sdk-details/sdks/flutter/data/engine/6ba2af10bb05c88a2731482cedf2cfd11cf5af0b.json similarity index 100% rename from flutter_hash/engine/6ba2af10bb05c88a2731482cedf2cfd11cf5af0b.json rename to sdk-details/sdks/flutter/data/engine/6ba2af10bb05c88a2731482cedf2cfd11cf5af0b.json diff --git a/flutter_hash/engine/6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.json b/sdk-details/sdks/flutter/data/engine/6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.json similarity index 100% rename from flutter_hash/engine/6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.json rename to sdk-details/sdks/flutter/data/engine/6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.json diff --git a/flutter_hash/engine/6bf311f1d62cc5a0136456748de9d20c6bd589fd.json b/sdk-details/sdks/flutter/data/engine/6bf311f1d62cc5a0136456748de9d20c6bd589fd.json similarity index 100% rename from flutter_hash/engine/6bf311f1d62cc5a0136456748de9d20c6bd589fd.json rename to sdk-details/sdks/flutter/data/engine/6bf311f1d62cc5a0136456748de9d20c6bd589fd.json diff --git a/flutter_hash/engine/6c0baaebf70e0148f485f27d5616b3d3382da7bf.json b/sdk-details/sdks/flutter/data/engine/6c0baaebf70e0148f485f27d5616b3d3382da7bf.json similarity index 100% rename from flutter_hash/engine/6c0baaebf70e0148f485f27d5616b3d3382da7bf.json rename to sdk-details/sdks/flutter/data/engine/6c0baaebf70e0148f485f27d5616b3d3382da7bf.json diff --git a/flutter_hash/engine/6c2ade9fa2b555899530a31cc8cbd1dff3bf5eea.json b/sdk-details/sdks/flutter/data/engine/6c2ade9fa2b555899530a31cc8cbd1dff3bf5eea.json similarity index 100% rename from flutter_hash/engine/6c2ade9fa2b555899530a31cc8cbd1dff3bf5eea.json rename to sdk-details/sdks/flutter/data/engine/6c2ade9fa2b555899530a31cc8cbd1dff3bf5eea.json diff --git a/flutter_hash/engine/6d86e67f04d8b8cf16c64b466a4e7a04c497f271.json b/sdk-details/sdks/flutter/data/engine/6d86e67f04d8b8cf16c64b466a4e7a04c497f271.json similarity index 100% rename from flutter_hash/engine/6d86e67f04d8b8cf16c64b466a4e7a04c497f271.json rename to sdk-details/sdks/flutter/data/engine/6d86e67f04d8b8cf16c64b466a4e7a04c497f271.json diff --git a/flutter_hash/engine/6e2ea58a5ccbefcfadc2d4b7b8045fc6c20ab812.json b/sdk-details/sdks/flutter/data/engine/6e2ea58a5ccbefcfadc2d4b7b8045fc6c20ab812.json similarity index 100% rename from flutter_hash/engine/6e2ea58a5ccbefcfadc2d4b7b8045fc6c20ab812.json rename to sdk-details/sdks/flutter/data/engine/6e2ea58a5ccbefcfadc2d4b7b8045fc6c20ab812.json diff --git a/flutter_hash/engine/6e4deceb3802049388e167e3b14fda5843ad16e6.json b/sdk-details/sdks/flutter/data/engine/6e4deceb3802049388e167e3b14fda5843ad16e6.json similarity index 100% rename from flutter_hash/engine/6e4deceb3802049388e167e3b14fda5843ad16e6.json rename to sdk-details/sdks/flutter/data/engine/6e4deceb3802049388e167e3b14fda5843ad16e6.json diff --git a/flutter_hash/engine/6fe748490d1772d72274bf8b9efb72c5c2160237.json b/sdk-details/sdks/flutter/data/engine/6fe748490d1772d72274bf8b9efb72c5c2160237.json similarity index 100% rename from flutter_hash/engine/6fe748490d1772d72274bf8b9efb72c5c2160237.json rename to sdk-details/sdks/flutter/data/engine/6fe748490d1772d72274bf8b9efb72c5c2160237.json diff --git a/flutter_hash/engine/7112b72cc229e05d36716c3d7739885d3ffa72e6.json b/sdk-details/sdks/flutter/data/engine/7112b72cc229e05d36716c3d7739885d3ffa72e6.json similarity index 100% rename from flutter_hash/engine/7112b72cc229e05d36716c3d7739885d3ffa72e6.json rename to sdk-details/sdks/flutter/data/engine/7112b72cc229e05d36716c3d7739885d3ffa72e6.json diff --git a/flutter_hash/engine/711ab3fda05004ee5f6035f2a0bf099fca39a129.json b/sdk-details/sdks/flutter/data/engine/711ab3fda05004ee5f6035f2a0bf099fca39a129.json similarity index 100% rename from flutter_hash/engine/711ab3fda05004ee5f6035f2a0bf099fca39a129.json rename to sdk-details/sdks/flutter/data/engine/711ab3fda05004ee5f6035f2a0bf099fca39a129.json diff --git a/flutter_hash/engine/71457a67d0f9b10e8442d6db6d711bf00185ea66.json b/sdk-details/sdks/flutter/data/engine/71457a67d0f9b10e8442d6db6d711bf00185ea66.json similarity index 100% rename from flutter_hash/engine/71457a67d0f9b10e8442d6db6d711bf00185ea66.json rename to sdk-details/sdks/flutter/data/engine/71457a67d0f9b10e8442d6db6d711bf00185ea66.json diff --git a/flutter_hash/engine/72283b64196cb5df16eb4d1a782da08f320a8014.json b/sdk-details/sdks/flutter/data/engine/72283b64196cb5df16eb4d1a782da08f320a8014.json similarity index 100% rename from flutter_hash/engine/72283b64196cb5df16eb4d1a782da08f320a8014.json rename to sdk-details/sdks/flutter/data/engine/72283b64196cb5df16eb4d1a782da08f320a8014.json diff --git a/flutter_hash/engine/72665c6827a566e626bde75a4289609fb65ac657.json b/sdk-details/sdks/flutter/data/engine/72665c6827a566e626bde75a4289609fb65ac657.json similarity index 100% rename from flutter_hash/engine/72665c6827a566e626bde75a4289609fb65ac657.json rename to sdk-details/sdks/flutter/data/engine/72665c6827a566e626bde75a4289609fb65ac657.json diff --git a/flutter_hash/engine/72986c39ea3669ef26d4d7d7cd0c44f513fcd117.json b/sdk-details/sdks/flutter/data/engine/72986c39ea3669ef26d4d7d7cd0c44f513fcd117.json similarity index 100% rename from flutter_hash/engine/72986c39ea3669ef26d4d7d7cd0c44f513fcd117.json rename to sdk-details/sdks/flutter/data/engine/72986c39ea3669ef26d4d7d7cd0c44f513fcd117.json diff --git a/flutter_hash/engine/72c7a7567228cdaf8b7aa4a9e3d212ef9d4cc0ed.json b/sdk-details/sdks/flutter/data/engine/72c7a7567228cdaf8b7aa4a9e3d212ef9d4cc0ed.json similarity index 100% rename from flutter_hash/engine/72c7a7567228cdaf8b7aa4a9e3d212ef9d4cc0ed.json rename to sdk-details/sdks/flutter/data/engine/72c7a7567228cdaf8b7aa4a9e3d212ef9d4cc0ed.json diff --git a/flutter_hash/engine/72ee26e314f471012ee4ee60b5cf1831c0ed6a45.json b/sdk-details/sdks/flutter/data/engine/72ee26e314f471012ee4ee60b5cf1831c0ed6a45.json similarity index 100% rename from flutter_hash/engine/72ee26e314f471012ee4ee60b5cf1831c0ed6a45.json rename to sdk-details/sdks/flutter/data/engine/72ee26e314f471012ee4ee60b5cf1831c0ed6a45.json diff --git a/flutter_hash/engine/72f2b18bb094f92f62a3113a8075240ebb59affa.json b/sdk-details/sdks/flutter/data/engine/72f2b18bb094f92f62a3113a8075240ebb59affa.json similarity index 100% rename from flutter_hash/engine/72f2b18bb094f92f62a3113a8075240ebb59affa.json rename to sdk-details/sdks/flutter/data/engine/72f2b18bb094f92f62a3113a8075240ebb59affa.json diff --git a/flutter_hash/engine/7375a0f414bde4bc941e623482221db2fc8c4ab5.json b/sdk-details/sdks/flutter/data/engine/7375a0f414bde4bc941e623482221db2fc8c4ab5.json similarity index 100% rename from flutter_hash/engine/7375a0f414bde4bc941e623482221db2fc8c4ab5.json rename to sdk-details/sdks/flutter/data/engine/7375a0f414bde4bc941e623482221db2fc8c4ab5.json diff --git a/flutter_hash/engine/73d89ca7c5a20cbddde69ab1a6dff8fe3ecbfd70.json b/sdk-details/sdks/flutter/data/engine/73d89ca7c5a20cbddde69ab1a6dff8fe3ecbfd70.json similarity index 100% rename from flutter_hash/engine/73d89ca7c5a20cbddde69ab1a6dff8fe3ecbfd70.json rename to sdk-details/sdks/flutter/data/engine/73d89ca7c5a20cbddde69ab1a6dff8fe3ecbfd70.json diff --git a/flutter_hash/engine/73dc1ccd62aec198da4aefde1dae20b1167b131d.json b/sdk-details/sdks/flutter/data/engine/73dc1ccd62aec198da4aefde1dae20b1167b131d.json similarity index 100% rename from flutter_hash/engine/73dc1ccd62aec198da4aefde1dae20b1167b131d.json rename to sdk-details/sdks/flutter/data/engine/73dc1ccd62aec198da4aefde1dae20b1167b131d.json diff --git a/flutter_hash/engine/74625aed323d04f2add0410e84038d250f51b616.json b/sdk-details/sdks/flutter/data/engine/74625aed323d04f2add0410e84038d250f51b616.json similarity index 100% rename from flutter_hash/engine/74625aed323d04f2add0410e84038d250f51b616.json rename to sdk-details/sdks/flutter/data/engine/74625aed323d04f2add0410e84038d250f51b616.json diff --git a/flutter_hash/engine/74662ab695238af0e7402f41c4bf9ad862bd37d2.json b/sdk-details/sdks/flutter/data/engine/74662ab695238af0e7402f41c4bf9ad862bd37d2.json similarity index 100% rename from flutter_hash/engine/74662ab695238af0e7402f41c4bf9ad862bd37d2.json rename to sdk-details/sdks/flutter/data/engine/74662ab695238af0e7402f41c4bf9ad862bd37d2.json diff --git a/flutter_hash/engine/74b74b10ea6764e373ca2bcb420fdb4a6f6b5918.json b/sdk-details/sdks/flutter/data/engine/74b74b10ea6764e373ca2bcb420fdb4a6f6b5918.json similarity index 100% rename from flutter_hash/engine/74b74b10ea6764e373ca2bcb420fdb4a6f6b5918.json rename to sdk-details/sdks/flutter/data/engine/74b74b10ea6764e373ca2bcb420fdb4a6f6b5918.json diff --git a/flutter_hash/engine/74d16627b940bb15e50891f82cad6c3e3465bd6d.json b/sdk-details/sdks/flutter/data/engine/74d16627b940bb15e50891f82cad6c3e3465bd6d.json similarity index 100% rename from flutter_hash/engine/74d16627b940bb15e50891f82cad6c3e3465bd6d.json rename to sdk-details/sdks/flutter/data/engine/74d16627b940bb15e50891f82cad6c3e3465bd6d.json diff --git a/flutter_hash/engine/74ee6b5afd8d7c3f7c66efa1a2a384e15267f9be.json b/sdk-details/sdks/flutter/data/engine/74ee6b5afd8d7c3f7c66efa1a2a384e15267f9be.json similarity index 100% rename from flutter_hash/engine/74ee6b5afd8d7c3f7c66efa1a2a384e15267f9be.json rename to sdk-details/sdks/flutter/data/engine/74ee6b5afd8d7c3f7c66efa1a2a384e15267f9be.json diff --git a/flutter_hash/engine/75387dbc147d1cee8164f5d61582eab8ba1e5058.json b/sdk-details/sdks/flutter/data/engine/75387dbc147d1cee8164f5d61582eab8ba1e5058.json similarity index 100% rename from flutter_hash/engine/75387dbc147d1cee8164f5d61582eab8ba1e5058.json rename to sdk-details/sdks/flutter/data/engine/75387dbc147d1cee8164f5d61582eab8ba1e5058.json diff --git a/flutter_hash/engine/759d3dba259be0ac7196dcc5d94b66901942d1e5.json b/sdk-details/sdks/flutter/data/engine/759d3dba259be0ac7196dcc5d94b66901942d1e5.json similarity index 100% rename from flutter_hash/engine/759d3dba259be0ac7196dcc5d94b66901942d1e5.json rename to sdk-details/sdks/flutter/data/engine/759d3dba259be0ac7196dcc5d94b66901942d1e5.json diff --git a/flutter_hash/engine/75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d.json b/sdk-details/sdks/flutter/data/engine/75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d.json similarity index 100% rename from flutter_hash/engine/75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d.json rename to sdk-details/sdks/flutter/data/engine/75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d.json diff --git a/flutter_hash/engine/767d8c75e898091b925519803830fc2721658d07.json b/sdk-details/sdks/flutter/data/engine/767d8c75e898091b925519803830fc2721658d07.json similarity index 100% rename from flutter_hash/engine/767d8c75e898091b925519803830fc2721658d07.json rename to sdk-details/sdks/flutter/data/engine/767d8c75e898091b925519803830fc2721658d07.json diff --git a/flutter_hash/engine/776efd2034d50af73e2876d703213601df384e88.json b/sdk-details/sdks/flutter/data/engine/776efd2034d50af73e2876d703213601df384e88.json similarity index 100% rename from flutter_hash/engine/776efd2034d50af73e2876d703213601df384e88.json rename to sdk-details/sdks/flutter/data/engine/776efd2034d50af73e2876d703213601df384e88.json diff --git a/flutter_hash/engine/77e2e94772b6eb43759e34ed1ad7da4674e19cab.json b/sdk-details/sdks/flutter/data/engine/77e2e94772b6eb43759e34ed1ad7da4674e19cab.json similarity index 100% rename from flutter_hash/engine/77e2e94772b6eb43759e34ed1ad7da4674e19cab.json rename to sdk-details/sdks/flutter/data/engine/77e2e94772b6eb43759e34ed1ad7da4674e19cab.json diff --git a/flutter_hash/engine/78fc3012e45889657f72359b005af7beac47ba3d.json b/sdk-details/sdks/flutter/data/engine/78fc3012e45889657f72359b005af7beac47ba3d.json similarity index 100% rename from flutter_hash/engine/78fc3012e45889657f72359b005af7beac47ba3d.json rename to sdk-details/sdks/flutter/data/engine/78fc3012e45889657f72359b005af7beac47ba3d.json diff --git a/flutter_hash/engine/793877827ec9656af74d596d8528f5276e0fa99d.json b/sdk-details/sdks/flutter/data/engine/793877827ec9656af74d596d8528f5276e0fa99d.json similarity index 100% rename from flutter_hash/engine/793877827ec9656af74d596d8528f5276e0fa99d.json rename to sdk-details/sdks/flutter/data/engine/793877827ec9656af74d596d8528f5276e0fa99d.json diff --git a/flutter_hash/engine/7a4c4505f6a7a1aa758d62b58150dce43cfa473f.json b/sdk-details/sdks/flutter/data/engine/7a4c4505f6a7a1aa758d62b58150dce43cfa473f.json similarity index 100% rename from flutter_hash/engine/7a4c4505f6a7a1aa758d62b58150dce43cfa473f.json rename to sdk-details/sdks/flutter/data/engine/7a4c4505f6a7a1aa758d62b58150dce43cfa473f.json diff --git a/flutter_hash/engine/7a77e3625dd1db5f4f517a129707cb299c48207a.json b/sdk-details/sdks/flutter/data/engine/7a77e3625dd1db5f4f517a129707cb299c48207a.json similarity index 100% rename from flutter_hash/engine/7a77e3625dd1db5f4f517a129707cb299c48207a.json rename to sdk-details/sdks/flutter/data/engine/7a77e3625dd1db5f4f517a129707cb299c48207a.json diff --git a/flutter_hash/engine/7a8f8ca02c276dce02f8dd42a44e776ac03fa9bc.json b/sdk-details/sdks/flutter/data/engine/7a8f8ca02c276dce02f8dd42a44e776ac03fa9bc.json similarity index 100% rename from flutter_hash/engine/7a8f8ca02c276dce02f8dd42a44e776ac03fa9bc.json rename to sdk-details/sdks/flutter/data/engine/7a8f8ca02c276dce02f8dd42a44e776ac03fa9bc.json diff --git a/flutter_hash/engine/7a9b430d740b9a7ae4d9a6d44357d83561e1124d.json b/sdk-details/sdks/flutter/data/engine/7a9b430d740b9a7ae4d9a6d44357d83561e1124d.json similarity index 100% rename from flutter_hash/engine/7a9b430d740b9a7ae4d9a6d44357d83561e1124d.json rename to sdk-details/sdks/flutter/data/engine/7a9b430d740b9a7ae4d9a6d44357d83561e1124d.json diff --git a/flutter_hash/engine/7b8906637ffd2b4cfde561f40a6f4eaab6bade13.json b/sdk-details/sdks/flutter/data/engine/7b8906637ffd2b4cfde561f40a6f4eaab6bade13.json similarity index 100% rename from flutter_hash/engine/7b8906637ffd2b4cfde561f40a6f4eaab6bade13.json rename to sdk-details/sdks/flutter/data/engine/7b8906637ffd2b4cfde561f40a6f4eaab6bade13.json diff --git a/flutter_hash/engine/7ccdde78a7d174dc0bf0be77102b205e844c7998.json b/sdk-details/sdks/flutter/data/engine/7ccdde78a7d174dc0bf0be77102b205e844c7998.json similarity index 100% rename from flutter_hash/engine/7ccdde78a7d174dc0bf0be77102b205e844c7998.json rename to sdk-details/sdks/flutter/data/engine/7ccdde78a7d174dc0bf0be77102b205e844c7998.json diff --git a/flutter_hash/engine/7d8c6d9c1a5c1ce5303a5694bc9f49819c772f5f.json b/sdk-details/sdks/flutter/data/engine/7d8c6d9c1a5c1ce5303a5694bc9f49819c772f5f.json similarity index 100% rename from flutter_hash/engine/7d8c6d9c1a5c1ce5303a5694bc9f49819c772f5f.json rename to sdk-details/sdks/flutter/data/engine/7d8c6d9c1a5c1ce5303a5694bc9f49819c772f5f.json diff --git a/flutter_hash/engine/7d90779bb66f2c63444ee41b61c2d9a1c7b389ca.json b/sdk-details/sdks/flutter/data/engine/7d90779bb66f2c63444ee41b61c2d9a1c7b389ca.json similarity index 100% rename from flutter_hash/engine/7d90779bb66f2c63444ee41b61c2d9a1c7b389ca.json rename to sdk-details/sdks/flutter/data/engine/7d90779bb66f2c63444ee41b61c2d9a1c7b389ca.json diff --git a/flutter_hash/engine/7df0a6e35e5c1a4e541fb53538bc527daa41ba7c.json b/sdk-details/sdks/flutter/data/engine/7df0a6e35e5c1a4e541fb53538bc527daa41ba7c.json similarity index 100% rename from flutter_hash/engine/7df0a6e35e5c1a4e541fb53538bc527daa41ba7c.json rename to sdk-details/sdks/flutter/data/engine/7df0a6e35e5c1a4e541fb53538bc527daa41ba7c.json diff --git a/flutter_hash/engine/7e68097cc1d35da8ced4b771d191b6d44c5d9fef.json b/sdk-details/sdks/flutter/data/engine/7e68097cc1d35da8ced4b771d191b6d44c5d9fef.json similarity index 100% rename from flutter_hash/engine/7e68097cc1d35da8ced4b771d191b6d44c5d9fef.json rename to sdk-details/sdks/flutter/data/engine/7e68097cc1d35da8ced4b771d191b6d44c5d9fef.json diff --git a/flutter_hash/engine/7ea9884ab00eb0b63f7793ce8664ae55af484eb1.json b/sdk-details/sdks/flutter/data/engine/7ea9884ab00eb0b63f7793ce8664ae55af484eb1.json similarity index 100% rename from flutter_hash/engine/7ea9884ab00eb0b63f7793ce8664ae55af484eb1.json rename to sdk-details/sdks/flutter/data/engine/7ea9884ab00eb0b63f7793ce8664ae55af484eb1.json diff --git a/flutter_hash/engine/7eca5cd1c5cca97929a7c8ea4381441447a36f26.json b/sdk-details/sdks/flutter/data/engine/7eca5cd1c5cca97929a7c8ea4381441447a36f26.json similarity index 100% rename from flutter_hash/engine/7eca5cd1c5cca97929a7c8ea4381441447a36f26.json rename to sdk-details/sdks/flutter/data/engine/7eca5cd1c5cca97929a7c8ea4381441447a36f26.json diff --git a/flutter_hash/engine/800594f1f4a6674010a6f1603c07a919b4d7ebd7.json b/sdk-details/sdks/flutter/data/engine/800594f1f4a6674010a6f1603c07a919b4d7ebd7.json similarity index 100% rename from flutter_hash/engine/800594f1f4a6674010a6f1603c07a919b4d7ebd7.json rename to sdk-details/sdks/flutter/data/engine/800594f1f4a6674010a6f1603c07a919b4d7ebd7.json diff --git a/flutter_hash/engine/81027ab0cc0e7974beee760eb042827a44dd12f3.json b/sdk-details/sdks/flutter/data/engine/81027ab0cc0e7974beee760eb042827a44dd12f3.json similarity index 100% rename from flutter_hash/engine/81027ab0cc0e7974beee760eb042827a44dd12f3.json rename to sdk-details/sdks/flutter/data/engine/81027ab0cc0e7974beee760eb042827a44dd12f3.json diff --git a/flutter_hash/engine/810727bf3f8f7a9d23ee8e65a5209944c80fde58.json b/sdk-details/sdks/flutter/data/engine/810727bf3f8f7a9d23ee8e65a5209944c80fde58.json similarity index 100% rename from flutter_hash/engine/810727bf3f8f7a9d23ee8e65a5209944c80fde58.json rename to sdk-details/sdks/flutter/data/engine/810727bf3f8f7a9d23ee8e65a5209944c80fde58.json diff --git a/flutter_hash/engine/8166a91bca11b83c16fba8f8fd407e937a2ac89c.json b/sdk-details/sdks/flutter/data/engine/8166a91bca11b83c16fba8f8fd407e937a2ac89c.json similarity index 100% rename from flutter_hash/engine/8166a91bca11b83c16fba8f8fd407e937a2ac89c.json rename to sdk-details/sdks/flutter/data/engine/8166a91bca11b83c16fba8f8fd407e937a2ac89c.json diff --git a/flutter_hash/engine/81dffd1241e67f7e514b5fcc9eab4902721ae575.json b/sdk-details/sdks/flutter/data/engine/81dffd1241e67f7e514b5fcc9eab4902721ae575.json similarity index 100% rename from flutter_hash/engine/81dffd1241e67f7e514b5fcc9eab4902721ae575.json rename to sdk-details/sdks/flutter/data/engine/81dffd1241e67f7e514b5fcc9eab4902721ae575.json diff --git a/flutter_hash/engine/82bd5b7209295a5b7ff8cae0df96e7870171e3a5.json b/sdk-details/sdks/flutter/data/engine/82bd5b7209295a5b7ff8cae0df96e7870171e3a5.json similarity index 100% rename from flutter_hash/engine/82bd5b7209295a5b7ff8cae0df96e7870171e3a5.json rename to sdk-details/sdks/flutter/data/engine/82bd5b7209295a5b7ff8cae0df96e7870171e3a5.json diff --git a/flutter_hash/engine/832cdacc6f955f080734109900a1658ae7e0d248.json b/sdk-details/sdks/flutter/data/engine/832cdacc6f955f080734109900a1658ae7e0d248.json similarity index 100% rename from flutter_hash/engine/832cdacc6f955f080734109900a1658ae7e0d248.json rename to sdk-details/sdks/flutter/data/engine/832cdacc6f955f080734109900a1658ae7e0d248.json diff --git a/flutter_hash/engine/83675ed27633283e7fc296c8bca22e841224c096.json b/sdk-details/sdks/flutter/data/engine/83675ed27633283e7fc296c8bca22e841224c096.json similarity index 100% rename from flutter_hash/engine/83675ed27633283e7fc296c8bca22e841224c096.json rename to sdk-details/sdks/flutter/data/engine/83675ed27633283e7fc296c8bca22e841224c096.json diff --git a/flutter_hash/engine/83a64b7233d58809062846391422571f94f0f9d8.json b/sdk-details/sdks/flutter/data/engine/83a64b7233d58809062846391422571f94f0f9d8.json similarity index 100% rename from flutter_hash/engine/83a64b7233d58809062846391422571f94f0f9d8.json rename to sdk-details/sdks/flutter/data/engine/83a64b7233d58809062846391422571f94f0f9d8.json diff --git a/flutter_hash/engine/83bacfc52569459a4a654727cad2546820cb0d6a.json b/sdk-details/sdks/flutter/data/engine/83bacfc52569459a4a654727cad2546820cb0d6a.json similarity index 100% rename from flutter_hash/engine/83bacfc52569459a4a654727cad2546820cb0d6a.json rename to sdk-details/sdks/flutter/data/engine/83bacfc52569459a4a654727cad2546820cb0d6a.json diff --git a/flutter_hash/engine/844c29f42a614420b2205c178f22d30b43a8b0bb.json b/sdk-details/sdks/flutter/data/engine/844c29f42a614420b2205c178f22d30b43a8b0bb.json similarity index 100% rename from flutter_hash/engine/844c29f42a614420b2205c178f22d30b43a8b0bb.json rename to sdk-details/sdks/flutter/data/engine/844c29f42a614420b2205c178f22d30b43a8b0bb.json diff --git a/flutter_hash/engine/857bd6b74c5eb56151bfafe91e7fa6a82b6fee25.json b/sdk-details/sdks/flutter/data/engine/857bd6b74c5eb56151bfafe91e7fa6a82b6fee25.json similarity index 100% rename from flutter_hash/engine/857bd6b74c5eb56151bfafe91e7fa6a82b6fee25.json rename to sdk-details/sdks/flutter/data/engine/857bd6b74c5eb56151bfafe91e7fa6a82b6fee25.json diff --git a/flutter_hash/engine/86aa01442b5d5a6b9b16ff3cf15d529a92d9d75c.json b/sdk-details/sdks/flutter/data/engine/86aa01442b5d5a6b9b16ff3cf15d529a92d9d75c.json similarity index 100% rename from flutter_hash/engine/86aa01442b5d5a6b9b16ff3cf15d529a92d9d75c.json rename to sdk-details/sdks/flutter/data/engine/86aa01442b5d5a6b9b16ff3cf15d529a92d9d75c.json diff --git a/flutter_hash/engine/86ee39d2595de3a2a2cee84372bf925d774d3a6f.json b/sdk-details/sdks/flutter/data/engine/86ee39d2595de3a2a2cee84372bf925d774d3a6f.json similarity index 100% rename from flutter_hash/engine/86ee39d2595de3a2a2cee84372bf925d774d3a6f.json rename to sdk-details/sdks/flutter/data/engine/86ee39d2595de3a2a2cee84372bf925d774d3a6f.json diff --git a/flutter_hash/engine/870e640e7edb592a4022fa41e794a10e292955d4.json b/sdk-details/sdks/flutter/data/engine/870e640e7edb592a4022fa41e794a10e292955d4.json similarity index 100% rename from flutter_hash/engine/870e640e7edb592a4022fa41e794a10e292955d4.json rename to sdk-details/sdks/flutter/data/engine/870e640e7edb592a4022fa41e794a10e292955d4.json diff --git a/flutter_hash/engine/871f65ac1bf129edb222c3293a636ff4b67534a6.json b/sdk-details/sdks/flutter/data/engine/871f65ac1bf129edb222c3293a636ff4b67534a6.json similarity index 100% rename from flutter_hash/engine/871f65ac1bf129edb222c3293a636ff4b67534a6.json rename to sdk-details/sdks/flutter/data/engine/871f65ac1bf129edb222c3293a636ff4b67534a6.json diff --git a/flutter_hash/engine/877970cbc98718dbee8f0a34374fa2b1a1db2248.json b/sdk-details/sdks/flutter/data/engine/877970cbc98718dbee8f0a34374fa2b1a1db2248.json similarity index 100% rename from flutter_hash/engine/877970cbc98718dbee8f0a34374fa2b1a1db2248.json rename to sdk-details/sdks/flutter/data/engine/877970cbc98718dbee8f0a34374fa2b1a1db2248.json diff --git a/flutter_hash/engine/890a5fca2e34db413be624fc83aeea8e61d42ce6.json b/sdk-details/sdks/flutter/data/engine/890a5fca2e34db413be624fc83aeea8e61d42ce6.json similarity index 100% rename from flutter_hash/engine/890a5fca2e34db413be624fc83aeea8e61d42ce6.json rename to sdk-details/sdks/flutter/data/engine/890a5fca2e34db413be624fc83aeea8e61d42ce6.json diff --git a/flutter_hash/engine/8a6e64a8ef09f1f1af207725b40022d8d7a9dcd7.json b/sdk-details/sdks/flutter/data/engine/8a6e64a8ef09f1f1af207725b40022d8d7a9dcd7.json similarity index 100% rename from flutter_hash/engine/8a6e64a8ef09f1f1af207725b40022d8d7a9dcd7.json rename to sdk-details/sdks/flutter/data/engine/8a6e64a8ef09f1f1af207725b40022d8d7a9dcd7.json diff --git a/flutter_hash/engine/8b1a299ed52d4ef9521ccd65c6c52d563129d8af.json b/sdk-details/sdks/flutter/data/engine/8b1a299ed52d4ef9521ccd65c6c52d563129d8af.json similarity index 100% rename from flutter_hash/engine/8b1a299ed52d4ef9521ccd65c6c52d563129d8af.json rename to sdk-details/sdks/flutter/data/engine/8b1a299ed52d4ef9521ccd65c6c52d563129d8af.json diff --git a/flutter_hash/engine/8c99b0feaf9715af490612f00954c6a76374a907.json b/sdk-details/sdks/flutter/data/engine/8c99b0feaf9715af490612f00954c6a76374a907.json similarity index 100% rename from flutter_hash/engine/8c99b0feaf9715af490612f00954c6a76374a907.json rename to sdk-details/sdks/flutter/data/engine/8c99b0feaf9715af490612f00954c6a76374a907.json diff --git a/flutter_hash/engine/8cd19e509d6bece8ccd74aef027c4ca947363095.json b/sdk-details/sdks/flutter/data/engine/8cd19e509d6bece8ccd74aef027c4ca947363095.json similarity index 100% rename from flutter_hash/engine/8cd19e509d6bece8ccd74aef027c4ca947363095.json rename to sdk-details/sdks/flutter/data/engine/8cd19e509d6bece8ccd74aef027c4ca947363095.json diff --git a/flutter_hash/engine/8dc3a4cde2075a4f5458fd0eb199627f5124508d.json b/sdk-details/sdks/flutter/data/engine/8dc3a4cde2075a4f5458fd0eb199627f5124508d.json similarity index 100% rename from flutter_hash/engine/8dc3a4cde2075a4f5458fd0eb199627f5124508d.json rename to sdk-details/sdks/flutter/data/engine/8dc3a4cde2075a4f5458fd0eb199627f5124508d.json diff --git a/flutter_hash/engine/8ea19b1c76f69f7b50e4195f41dfb1cb49a9fe66.json b/sdk-details/sdks/flutter/data/engine/8ea19b1c76f69f7b50e4195f41dfb1cb49a9fe66.json similarity index 100% rename from flutter_hash/engine/8ea19b1c76f69f7b50e4195f41dfb1cb49a9fe66.json rename to sdk-details/sdks/flutter/data/engine/8ea19b1c76f69f7b50e4195f41dfb1cb49a9fe66.json diff --git a/flutter_hash/engine/8ed9edbd7aaadf3c101281d43579d617b859e2fe.json b/sdk-details/sdks/flutter/data/engine/8ed9edbd7aaadf3c101281d43579d617b859e2fe.json similarity index 100% rename from flutter_hash/engine/8ed9edbd7aaadf3c101281d43579d617b859e2fe.json rename to sdk-details/sdks/flutter/data/engine/8ed9edbd7aaadf3c101281d43579d617b859e2fe.json diff --git a/flutter_hash/engine/8f2221fbef28b478debb78dd233f5250b220ca99.json b/sdk-details/sdks/flutter/data/engine/8f2221fbef28b478debb78dd233f5250b220ca99.json similarity index 100% rename from flutter_hash/engine/8f2221fbef28b478debb78dd233f5250b220ca99.json rename to sdk-details/sdks/flutter/data/engine/8f2221fbef28b478debb78dd233f5250b220ca99.json diff --git a/flutter_hash/engine/905c571db50d5eb3b10eaa4d3c43c99321032223.json b/sdk-details/sdks/flutter/data/engine/905c571db50d5eb3b10eaa4d3c43c99321032223.json similarity index 100% rename from flutter_hash/engine/905c571db50d5eb3b10eaa4d3c43c99321032223.json rename to sdk-details/sdks/flutter/data/engine/905c571db50d5eb3b10eaa4d3c43c99321032223.json diff --git a/flutter_hash/engine/9064459a8b0dcd32877107f6002cc429a71659d1.json b/sdk-details/sdks/flutter/data/engine/9064459a8b0dcd32877107f6002cc429a71659d1.json similarity index 100% rename from flutter_hash/engine/9064459a8b0dcd32877107f6002cc429a71659d1.json rename to sdk-details/sdks/flutter/data/engine/9064459a8b0dcd32877107f6002cc429a71659d1.json diff --git a/flutter_hash/engine/90bd6f8148178b5cfe80ab21b3dc36ab7d49f6ac.json b/sdk-details/sdks/flutter/data/engine/90bd6f8148178b5cfe80ab21b3dc36ab7d49f6ac.json similarity index 100% rename from flutter_hash/engine/90bd6f8148178b5cfe80ab21b3dc36ab7d49f6ac.json rename to sdk-details/sdks/flutter/data/engine/90bd6f8148178b5cfe80ab21b3dc36ab7d49f6ac.json diff --git a/flutter_hash/engine/90fa3ae28fe6ddaee1af2c120f01e50201c1401b.json b/sdk-details/sdks/flutter/data/engine/90fa3ae28fe6ddaee1af2c120f01e50201c1401b.json similarity index 100% rename from flutter_hash/engine/90fa3ae28fe6ddaee1af2c120f01e50201c1401b.json rename to sdk-details/sdks/flutter/data/engine/90fa3ae28fe6ddaee1af2c120f01e50201c1401b.json diff --git a/flutter_hash/engine/91a63d6a44c56ca13baadccedc46fd66b001fdbc.json b/sdk-details/sdks/flutter/data/engine/91a63d6a44c56ca13baadccedc46fd66b001fdbc.json similarity index 100% rename from flutter_hash/engine/91a63d6a44c56ca13baadccedc46fd66b001fdbc.json rename to sdk-details/sdks/flutter/data/engine/91a63d6a44c56ca13baadccedc46fd66b001fdbc.json diff --git a/flutter_hash/engine/91c9fc8fe011352879e3bb6660966eafc0847233.json b/sdk-details/sdks/flutter/data/engine/91c9fc8fe011352879e3bb6660966eafc0847233.json similarity index 100% rename from flutter_hash/engine/91c9fc8fe011352879e3bb6660966eafc0847233.json rename to sdk-details/sdks/flutter/data/engine/91c9fc8fe011352879e3bb6660966eafc0847233.json diff --git a/flutter_hash/engine/91cde06da08323f25bd4bcc4a1832862f2b58c08.json b/sdk-details/sdks/flutter/data/engine/91cde06da08323f25bd4bcc4a1832862f2b58c08.json similarity index 100% rename from flutter_hash/engine/91cde06da08323f25bd4bcc4a1832862f2b58c08.json rename to sdk-details/sdks/flutter/data/engine/91cde06da08323f25bd4bcc4a1832862f2b58c08.json diff --git a/flutter_hash/engine/91ed51e05c68efdbddf642735f164fc914358cff.json b/sdk-details/sdks/flutter/data/engine/91ed51e05c68efdbddf642735f164fc914358cff.json similarity index 100% rename from flutter_hash/engine/91ed51e05c68efdbddf642735f164fc914358cff.json rename to sdk-details/sdks/flutter/data/engine/91ed51e05c68efdbddf642735f164fc914358cff.json diff --git a/flutter_hash/engine/923687f0e7ff0cddcbd05c98fd3ca12db9c45ac8.json b/sdk-details/sdks/flutter/data/engine/923687f0e7ff0cddcbd05c98fd3ca12db9c45ac8.json similarity index 100% rename from flutter_hash/engine/923687f0e7ff0cddcbd05c98fd3ca12db9c45ac8.json rename to sdk-details/sdks/flutter/data/engine/923687f0e7ff0cddcbd05c98fd3ca12db9c45ac8.json diff --git a/flutter_hash/engine/92ae191c17a53144bf4d62f3863c110be08e3fd3.json b/sdk-details/sdks/flutter/data/engine/92ae191c17a53144bf4d62f3863c110be08e3fd3.json similarity index 100% rename from flutter_hash/engine/92ae191c17a53144bf4d62f3863c110be08e3fd3.json rename to sdk-details/sdks/flutter/data/engine/92ae191c17a53144bf4d62f3863c110be08e3fd3.json diff --git a/flutter_hash/engine/94ad32791f07d59fefc62ddc8e34a6a73f56cc4c.json b/sdk-details/sdks/flutter/data/engine/94ad32791f07d59fefc62ddc8e34a6a73f56cc4c.json similarity index 100% rename from flutter_hash/engine/94ad32791f07d59fefc62ddc8e34a6a73f56cc4c.json rename to sdk-details/sdks/flutter/data/engine/94ad32791f07d59fefc62ddc8e34a6a73f56cc4c.json diff --git a/flutter_hash/engine/968e2945c75c817f594e2e737bdd7bf68cba6bc0.json b/sdk-details/sdks/flutter/data/engine/968e2945c75c817f594e2e737bdd7bf68cba6bc0.json similarity index 100% rename from flutter_hash/engine/968e2945c75c817f594e2e737bdd7bf68cba6bc0.json rename to sdk-details/sdks/flutter/data/engine/968e2945c75c817f594e2e737bdd7bf68cba6bc0.json diff --git a/flutter_hash/engine/97550907b70f4f3b328b6c1600df21fac1a1889a.json b/sdk-details/sdks/flutter/data/engine/97550907b70f4f3b328b6c1600df21fac1a1889a.json similarity index 100% rename from flutter_hash/engine/97550907b70f4f3b328b6c1600df21fac1a1889a.json rename to sdk-details/sdks/flutter/data/engine/97550907b70f4f3b328b6c1600df21fac1a1889a.json diff --git a/flutter_hash/engine/975a8aa5752e5774ffcd342a6f987d61bd5d84a5.json b/sdk-details/sdks/flutter/data/engine/975a8aa5752e5774ffcd342a6f987d61bd5d84a5.json similarity index 100% rename from flutter_hash/engine/975a8aa5752e5774ffcd342a6f987d61bd5d84a5.json rename to sdk-details/sdks/flutter/data/engine/975a8aa5752e5774ffcd342a6f987d61bd5d84a5.json diff --git a/flutter_hash/engine/97b22348c8d5cba471418dc94f9e384e384e796f.json b/sdk-details/sdks/flutter/data/engine/97b22348c8d5cba471418dc94f9e384e384e796f.json similarity index 100% rename from flutter_hash/engine/97b22348c8d5cba471418dc94f9e384e384e796f.json rename to sdk-details/sdks/flutter/data/engine/97b22348c8d5cba471418dc94f9e384e384e796f.json diff --git a/flutter_hash/engine/9828a8bf3fe26ba43a8aecf7e8eb1033ac285808.json b/sdk-details/sdks/flutter/data/engine/9828a8bf3fe26ba43a8aecf7e8eb1033ac285808.json similarity index 100% rename from flutter_hash/engine/9828a8bf3fe26ba43a8aecf7e8eb1033ac285808.json rename to sdk-details/sdks/flutter/data/engine/9828a8bf3fe26ba43a8aecf7e8eb1033ac285808.json diff --git a/flutter_hash/engine/9869d47a2736e75470985949137241c48457bf50.json b/sdk-details/sdks/flutter/data/engine/9869d47a2736e75470985949137241c48457bf50.json similarity index 100% rename from flutter_hash/engine/9869d47a2736e75470985949137241c48457bf50.json rename to sdk-details/sdks/flutter/data/engine/9869d47a2736e75470985949137241c48457bf50.json diff --git a/flutter_hash/engine/98820f0a7716715df150f6adc5edd3444a088196.json b/sdk-details/sdks/flutter/data/engine/98820f0a7716715df150f6adc5edd3444a088196.json similarity index 100% rename from flutter_hash/engine/98820f0a7716715df150f6adc5edd3444a088196.json rename to sdk-details/sdks/flutter/data/engine/98820f0a7716715df150f6adc5edd3444a088196.json diff --git a/flutter_hash/engine/992cdb6cd409a30ebf91a33841575a1c7fd1bb1d.json b/sdk-details/sdks/flutter/data/engine/992cdb6cd409a30ebf91a33841575a1c7fd1bb1d.json similarity index 100% rename from flutter_hash/engine/992cdb6cd409a30ebf91a33841575a1c7fd1bb1d.json rename to sdk-details/sdks/flutter/data/engine/992cdb6cd409a30ebf91a33841575a1c7fd1bb1d.json diff --git a/flutter_hash/engine/9970fb5500710471c031cb86f899bfc3f4a6bafd.json b/sdk-details/sdks/flutter/data/engine/9970fb5500710471c031cb86f899bfc3f4a6bafd.json similarity index 100% rename from flutter_hash/engine/9970fb5500710471c031cb86f899bfc3f4a6bafd.json rename to sdk-details/sdks/flutter/data/engine/9970fb5500710471c031cb86f899bfc3f4a6bafd.json diff --git a/flutter_hash/engine/99c2b3a2455511c3fd37521d9b00972c5345b75b.json b/sdk-details/sdks/flutter/data/engine/99c2b3a2455511c3fd37521d9b00972c5345b75b.json similarity index 100% rename from flutter_hash/engine/99c2b3a2455511c3fd37521d9b00972c5345b75b.json rename to sdk-details/sdks/flutter/data/engine/99c2b3a2455511c3fd37521d9b00972c5345b75b.json diff --git a/flutter_hash/engine/99f3f7a9c246f1ebedc6eefd867cde250b370380.json b/sdk-details/sdks/flutter/data/engine/99f3f7a9c246f1ebedc6eefd867cde250b370380.json similarity index 100% rename from flutter_hash/engine/99f3f7a9c246f1ebedc6eefd867cde250b370380.json rename to sdk-details/sdks/flutter/data/engine/99f3f7a9c246f1ebedc6eefd867cde250b370380.json diff --git a/flutter_hash/engine/9a28c3bcf40ce64fee61e807ee3e1395fd6bd954.json b/sdk-details/sdks/flutter/data/engine/9a28c3bcf40ce64fee61e807ee3e1395fd6bd954.json similarity index 100% rename from flutter_hash/engine/9a28c3bcf40ce64fee61e807ee3e1395fd6bd954.json rename to sdk-details/sdks/flutter/data/engine/9a28c3bcf40ce64fee61e807ee3e1395fd6bd954.json diff --git a/flutter_hash/engine/9aa7816315095c86410527932918c718cb35e7d6.json b/sdk-details/sdks/flutter/data/engine/9aa7816315095c86410527932918c718cb35e7d6.json similarity index 100% rename from flutter_hash/engine/9aa7816315095c86410527932918c718cb35e7d6.json rename to sdk-details/sdks/flutter/data/engine/9aa7816315095c86410527932918c718cb35e7d6.json diff --git a/flutter_hash/engine/9ae10ef702e76585ea498bdfb2b40181017623ad.json b/sdk-details/sdks/flutter/data/engine/9ae10ef702e76585ea498bdfb2b40181017623ad.json similarity index 100% rename from flutter_hash/engine/9ae10ef702e76585ea498bdfb2b40181017623ad.json rename to sdk-details/sdks/flutter/data/engine/9ae10ef702e76585ea498bdfb2b40181017623ad.json diff --git a/flutter_hash/engine/9af82c5a1a79ae02477db13e721c8365f31a4840.json b/sdk-details/sdks/flutter/data/engine/9af82c5a1a79ae02477db13e721c8365f31a4840.json similarity index 100% rename from flutter_hash/engine/9af82c5a1a79ae02477db13e721c8365f31a4840.json rename to sdk-details/sdks/flutter/data/engine/9af82c5a1a79ae02477db13e721c8365f31a4840.json diff --git a/flutter_hash/engine/9b2472da99dd27fd1cd817ae47cd2e3328d1049b.json b/sdk-details/sdks/flutter/data/engine/9b2472da99dd27fd1cd817ae47cd2e3328d1049b.json similarity index 100% rename from flutter_hash/engine/9b2472da99dd27fd1cd817ae47cd2e3328d1049b.json rename to sdk-details/sdks/flutter/data/engine/9b2472da99dd27fd1cd817ae47cd2e3328d1049b.json diff --git a/flutter_hash/engine/9b297b3b51228d5009b47a09cc7c8e9774877f5e.json b/sdk-details/sdks/flutter/data/engine/9b297b3b51228d5009b47a09cc7c8e9774877f5e.json similarity index 100% rename from flutter_hash/engine/9b297b3b51228d5009b47a09cc7c8e9774877f5e.json rename to sdk-details/sdks/flutter/data/engine/9b297b3b51228d5009b47a09cc7c8e9774877f5e.json diff --git a/flutter_hash/engine/9d517f475ba1282b619477bde8e708d6a34287cf.json b/sdk-details/sdks/flutter/data/engine/9d517f475ba1282b619477bde8e708d6a34287cf.json similarity index 100% rename from flutter_hash/engine/9d517f475ba1282b619477bde8e708d6a34287cf.json rename to sdk-details/sdks/flutter/data/engine/9d517f475ba1282b619477bde8e708d6a34287cf.json diff --git a/flutter_hash/engine/9d5b21729ff53dbf8eadd8bc97e0e30d77abec95.json b/sdk-details/sdks/flutter/data/engine/9d5b21729ff53dbf8eadd8bc97e0e30d77abec95.json similarity index 100% rename from flutter_hash/engine/9d5b21729ff53dbf8eadd8bc97e0e30d77abec95.json rename to sdk-details/sdks/flutter/data/engine/9d5b21729ff53dbf8eadd8bc97e0e30d77abec95.json diff --git a/flutter_hash/engine/9e315e64659ea966eba58bada2b51112b07d284c.json b/sdk-details/sdks/flutter/data/engine/9e315e64659ea966eba58bada2b51112b07d284c.json similarity index 100% rename from flutter_hash/engine/9e315e64659ea966eba58bada2b51112b07d284c.json rename to sdk-details/sdks/flutter/data/engine/9e315e64659ea966eba58bada2b51112b07d284c.json diff --git a/flutter_hash/engine/9e6314d348f9b5521e3c66856324d7a9c4a928c9.json b/sdk-details/sdks/flutter/data/engine/9e6314d348f9b5521e3c66856324d7a9c4a928c9.json similarity index 100% rename from flutter_hash/engine/9e6314d348f9b5521e3c66856324d7a9c4a928c9.json rename to sdk-details/sdks/flutter/data/engine/9e6314d348f9b5521e3c66856324d7a9c4a928c9.json diff --git a/flutter_hash/engine/9f4341a2b869ade738bdce64d13075d4fe4a5677.json b/sdk-details/sdks/flutter/data/engine/9f4341a2b869ade738bdce64d13075d4fe4a5677.json similarity index 100% rename from flutter_hash/engine/9f4341a2b869ade738bdce64d13075d4fe4a5677.json rename to sdk-details/sdks/flutter/data/engine/9f4341a2b869ade738bdce64d13075d4fe4a5677.json diff --git a/flutter_hash/engine/a00f8e8bc0f3d08ec0c0ca24b01226441bcaf03a.json b/sdk-details/sdks/flutter/data/engine/a00f8e8bc0f3d08ec0c0ca24b01226441bcaf03a.json similarity index 100% rename from flutter_hash/engine/a00f8e8bc0f3d08ec0c0ca24b01226441bcaf03a.json rename to sdk-details/sdks/flutter/data/engine/a00f8e8bc0f3d08ec0c0ca24b01226441bcaf03a.json diff --git a/flutter_hash/engine/a0605af402ac9b9e54b33ad900da60845ab77961.json b/sdk-details/sdks/flutter/data/engine/a0605af402ac9b9e54b33ad900da60845ab77961.json similarity index 100% rename from flutter_hash/engine/a0605af402ac9b9e54b33ad900da60845ab77961.json rename to sdk-details/sdks/flutter/data/engine/a0605af402ac9b9e54b33ad900da60845ab77961.json diff --git a/flutter_hash/engine/a0d89b1a543d3db982744179d846fb8e8397e889.json b/sdk-details/sdks/flutter/data/engine/a0d89b1a543d3db982744179d846fb8e8397e889.json similarity index 100% rename from flutter_hash/engine/a0d89b1a543d3db982744179d846fb8e8397e889.json rename to sdk-details/sdks/flutter/data/engine/a0d89b1a543d3db982744179d846fb8e8397e889.json diff --git a/flutter_hash/engine/a10d8ac38de835021c8d2f920dbf50a920ccc030.json b/sdk-details/sdks/flutter/data/engine/a10d8ac38de835021c8d2f920dbf50a920ccc030.json similarity index 100% rename from flutter_hash/engine/a10d8ac38de835021c8d2f920dbf50a920ccc030.json rename to sdk-details/sdks/flutter/data/engine/a10d8ac38de835021c8d2f920dbf50a920ccc030.json diff --git a/flutter_hash/engine/a123e75c6082da3a08f229b9c565e64b5b24a8a3.json b/sdk-details/sdks/flutter/data/engine/a123e75c6082da3a08f229b9c565e64b5b24a8a3.json similarity index 100% rename from flutter_hash/engine/a123e75c6082da3a08f229b9c565e64b5b24a8a3.json rename to sdk-details/sdks/flutter/data/engine/a123e75c6082da3a08f229b9c565e64b5b24a8a3.json diff --git a/flutter_hash/engine/a1440ca392ca23e874a105c5f3248b495bd0e247.json b/sdk-details/sdks/flutter/data/engine/a1440ca392ca23e874a105c5f3248b495bd0e247.json similarity index 100% rename from flutter_hash/engine/a1440ca392ca23e874a105c5f3248b495bd0e247.json rename to sdk-details/sdks/flutter/data/engine/a1440ca392ca23e874a105c5f3248b495bd0e247.json diff --git a/flutter_hash/engine/a18df97ca57a249df5d8d68cd0820600223ce262.json b/sdk-details/sdks/flutter/data/engine/a18df97ca57a249df5d8d68cd0820600223ce262.json similarity index 100% rename from flutter_hash/engine/a18df97ca57a249df5d8d68cd0820600223ce262.json rename to sdk-details/sdks/flutter/data/engine/a18df97ca57a249df5d8d68cd0820600223ce262.json diff --git a/flutter_hash/engine/a24b1ea55dedf3ce992cae0fbc1012b22b373290.json b/sdk-details/sdks/flutter/data/engine/a24b1ea55dedf3ce992cae0fbc1012b22b373290.json similarity index 100% rename from flutter_hash/engine/a24b1ea55dedf3ce992cae0fbc1012b22b373290.json rename to sdk-details/sdks/flutter/data/engine/a24b1ea55dedf3ce992cae0fbc1012b22b373290.json diff --git a/flutter_hash/engine/a252ec09b74cca0f8d8d3450566bf77c77f81e8d.json b/sdk-details/sdks/flutter/data/engine/a252ec09b74cca0f8d8d3450566bf77c77f81e8d.json similarity index 100% rename from flutter_hash/engine/a252ec09b74cca0f8d8d3450566bf77c77f81e8d.json rename to sdk-details/sdks/flutter/data/engine/a252ec09b74cca0f8d8d3450566bf77c77f81e8d.json diff --git a/flutter_hash/engine/a32df2c9280033c93a7ed089c294566dabfbf693.json b/sdk-details/sdks/flutter/data/engine/a32df2c9280033c93a7ed089c294566dabfbf693.json similarity index 100% rename from flutter_hash/engine/a32df2c9280033c93a7ed089c294566dabfbf693.json rename to sdk-details/sdks/flutter/data/engine/a32df2c9280033c93a7ed089c294566dabfbf693.json diff --git a/flutter_hash/engine/a4ce257c68517c1410f4b48ac9852ab5642a3f8d.json b/sdk-details/sdks/flutter/data/engine/a4ce257c68517c1410f4b48ac9852ab5642a3f8d.json similarity index 100% rename from flutter_hash/engine/a4ce257c68517c1410f4b48ac9852ab5642a3f8d.json rename to sdk-details/sdks/flutter/data/engine/a4ce257c68517c1410f4b48ac9852ab5642a3f8d.json diff --git a/flutter_hash/engine/a4ff2c53d84ca78702bc3be6c7ef0788ffca01d3.json b/sdk-details/sdks/flutter/data/engine/a4ff2c53d84ca78702bc3be6c7ef0788ffca01d3.json similarity index 100% rename from flutter_hash/engine/a4ff2c53d84ca78702bc3be6c7ef0788ffca01d3.json rename to sdk-details/sdks/flutter/data/engine/a4ff2c53d84ca78702bc3be6c7ef0788ffca01d3.json diff --git a/flutter_hash/engine/a5c24f538d05aaf66f7972fb23959d8cafb9f95a.json b/sdk-details/sdks/flutter/data/engine/a5c24f538d05aaf66f7972fb23959d8cafb9f95a.json similarity index 100% rename from flutter_hash/engine/a5c24f538d05aaf66f7972fb23959d8cafb9f95a.json rename to sdk-details/sdks/flutter/data/engine/a5c24f538d05aaf66f7972fb23959d8cafb9f95a.json diff --git a/flutter_hash/engine/a5cb96369ef86c7e85abf5d662a1ca5d89775053.json b/sdk-details/sdks/flutter/data/engine/a5cb96369ef86c7e85abf5d662a1ca5d89775053.json similarity index 100% rename from flutter_hash/engine/a5cb96369ef86c7e85abf5d662a1ca5d89775053.json rename to sdk-details/sdks/flutter/data/engine/a5cb96369ef86c7e85abf5d662a1ca5d89775053.json diff --git a/flutter_hash/engine/a63ef4cb4fde6a486818467d806b912f938e57f5.json b/sdk-details/sdks/flutter/data/engine/a63ef4cb4fde6a486818467d806b912f938e57f5.json similarity index 100% rename from flutter_hash/engine/a63ef4cb4fde6a486818467d806b912f938e57f5.json rename to sdk-details/sdks/flutter/data/engine/a63ef4cb4fde6a486818467d806b912f938e57f5.json diff --git a/flutter_hash/engine/a645b36a9b8133090a73112cb03b09fb58a5c506.json b/sdk-details/sdks/flutter/data/engine/a645b36a9b8133090a73112cb03b09fb58a5c506.json similarity index 100% rename from flutter_hash/engine/a645b36a9b8133090a73112cb03b09fb58a5c506.json rename to sdk-details/sdks/flutter/data/engine/a645b36a9b8133090a73112cb03b09fb58a5c506.json diff --git a/flutter_hash/engine/a67792536ca236a971d0efbcfd7af4efb8f6c119.json b/sdk-details/sdks/flutter/data/engine/a67792536ca236a971d0efbcfd7af4efb8f6c119.json similarity index 100% rename from flutter_hash/engine/a67792536ca236a971d0efbcfd7af4efb8f6c119.json rename to sdk-details/sdks/flutter/data/engine/a67792536ca236a971d0efbcfd7af4efb8f6c119.json diff --git a/flutter_hash/engine/a6bd3f1de158bb61090e0c8053df93a10cb548e1.json b/sdk-details/sdks/flutter/data/engine/a6bd3f1de158bb61090e0c8053df93a10cb548e1.json similarity index 100% rename from flutter_hash/engine/a6bd3f1de158bb61090e0c8053df93a10cb548e1.json rename to sdk-details/sdks/flutter/data/engine/a6bd3f1de158bb61090e0c8053df93a10cb548e1.json diff --git a/flutter_hash/engine/a751393804dcc8655c3361c1faf256c9291bf26b.json b/sdk-details/sdks/flutter/data/engine/a751393804dcc8655c3361c1faf256c9291bf26b.json similarity index 100% rename from flutter_hash/engine/a751393804dcc8655c3361c1faf256c9291bf26b.json rename to sdk-details/sdks/flutter/data/engine/a751393804dcc8655c3361c1faf256c9291bf26b.json diff --git a/flutter_hash/engine/a75e3b80f9c1ffb30bbe736c5a42e4a815a79197.json b/sdk-details/sdks/flutter/data/engine/a75e3b80f9c1ffb30bbe736c5a42e4a815a79197.json similarity index 100% rename from flutter_hash/engine/a75e3b80f9c1ffb30bbe736c5a42e4a815a79197.json rename to sdk-details/sdks/flutter/data/engine/a75e3b80f9c1ffb30bbe736c5a42e4a815a79197.json diff --git a/flutter_hash/engine/a794cf2681c6c9fe7b260e0e84de96298dc9c18b.json b/sdk-details/sdks/flutter/data/engine/a794cf2681c6c9fe7b260e0e84de96298dc9c18b.json similarity index 100% rename from flutter_hash/engine/a794cf2681c6c9fe7b260e0e84de96298dc9c18b.json rename to sdk-details/sdks/flutter/data/engine/a794cf2681c6c9fe7b260e0e84de96298dc9c18b.json diff --git a/flutter_hash/engine/a83b37d35acd8afd82be3f567a4b7231d5bdb928.json b/sdk-details/sdks/flutter/data/engine/a83b37d35acd8afd82be3f567a4b7231d5bdb928.json similarity index 100% rename from flutter_hash/engine/a83b37d35acd8afd82be3f567a4b7231d5bdb928.json rename to sdk-details/sdks/flutter/data/engine/a83b37d35acd8afd82be3f567a4b7231d5bdb928.json diff --git a/flutter_hash/engine/a83ed0e5e3b9cd2b5e2f07ef31c72f43c55e93b7.json b/sdk-details/sdks/flutter/data/engine/a83ed0e5e3b9cd2b5e2f07ef31c72f43c55e93b7.json similarity index 100% rename from flutter_hash/engine/a83ed0e5e3b9cd2b5e2f07ef31c72f43c55e93b7.json rename to sdk-details/sdks/flutter/data/engine/a83ed0e5e3b9cd2b5e2f07ef31c72f43c55e93b7.json diff --git a/flutter_hash/engine/a850016454f6d33da64d03dbd1ea71fd0fac299f.json b/sdk-details/sdks/flutter/data/engine/a850016454f6d33da64d03dbd1ea71fd0fac299f.json similarity index 100% rename from flutter_hash/engine/a850016454f6d33da64d03dbd1ea71fd0fac299f.json rename to sdk-details/sdks/flutter/data/engine/a850016454f6d33da64d03dbd1ea71fd0fac299f.json diff --git a/flutter_hash/engine/a86e74cf06f7a7f5f3a52a9d6c1e8f62ef1253dc.json b/sdk-details/sdks/flutter/data/engine/a86e74cf06f7a7f5f3a52a9d6c1e8f62ef1253dc.json similarity index 100% rename from flutter_hash/engine/a86e74cf06f7a7f5f3a52a9d6c1e8f62ef1253dc.json rename to sdk-details/sdks/flutter/data/engine/a86e74cf06f7a7f5f3a52a9d6c1e8f62ef1253dc.json diff --git a/flutter_hash/engine/a877f6fed68e1b961f76ec0fece9e7c684679e75.json b/sdk-details/sdks/flutter/data/engine/a877f6fed68e1b961f76ec0fece9e7c684679e75.json similarity index 100% rename from flutter_hash/engine/a877f6fed68e1b961f76ec0fece9e7c684679e75.json rename to sdk-details/sdks/flutter/data/engine/a877f6fed68e1b961f76ec0fece9e7c684679e75.json diff --git a/flutter_hash/engine/a8bfdfc394deaed5c57bd45a64ac4294dc976a72.json b/sdk-details/sdks/flutter/data/engine/a8bfdfc394deaed5c57bd45a64ac4294dc976a72.json similarity index 100% rename from flutter_hash/engine/a8bfdfc394deaed5c57bd45a64ac4294dc976a72.json rename to sdk-details/sdks/flutter/data/engine/a8bfdfc394deaed5c57bd45a64ac4294dc976a72.json diff --git a/flutter_hash/engine/a9a0b89b1c82aa657708eece3e690bf39cf0ead5.json b/sdk-details/sdks/flutter/data/engine/a9a0b89b1c82aa657708eece3e690bf39cf0ead5.json similarity index 100% rename from flutter_hash/engine/a9a0b89b1c82aa657708eece3e690bf39cf0ead5.json rename to sdk-details/sdks/flutter/data/engine/a9a0b89b1c82aa657708eece3e690bf39cf0ead5.json diff --git a/flutter_hash/engine/a9d88a4d182bdae23e3a4989abfb7ea25954aad1.json b/sdk-details/sdks/flutter/data/engine/a9d88a4d182bdae23e3a4989abfb7ea25954aad1.json similarity index 100% rename from flutter_hash/engine/a9d88a4d182bdae23e3a4989abfb7ea25954aad1.json rename to sdk-details/sdks/flutter/data/engine/a9d88a4d182bdae23e3a4989abfb7ea25954aad1.json diff --git a/flutter_hash/engine/aa8fcbb65283bfd8ab37475043ae2ac8fe8671f4.json b/sdk-details/sdks/flutter/data/engine/aa8fcbb65283bfd8ab37475043ae2ac8fe8671f4.json similarity index 100% rename from flutter_hash/engine/aa8fcbb65283bfd8ab37475043ae2ac8fe8671f4.json rename to sdk-details/sdks/flutter/data/engine/aa8fcbb65283bfd8ab37475043ae2ac8fe8671f4.json diff --git a/flutter_hash/engine/ab14aba1d5564df418f0e87f6772916c80a9a00a.json b/sdk-details/sdks/flutter/data/engine/ab14aba1d5564df418f0e87f6772916c80a9a00a.json similarity index 100% rename from flutter_hash/engine/ab14aba1d5564df418f0e87f6772916c80a9a00a.json rename to sdk-details/sdks/flutter/data/engine/ab14aba1d5564df418f0e87f6772916c80a9a00a.json diff --git a/flutter_hash/engine/ab46186b246f5a36bd1f3f295d14a43abb1e2f38.json b/sdk-details/sdks/flutter/data/engine/ab46186b246f5a36bd1f3f295d14a43abb1e2f38.json similarity index 100% rename from flutter_hash/engine/ab46186b246f5a36bd1f3f295d14a43abb1e2f38.json rename to sdk-details/sdks/flutter/data/engine/ab46186b246f5a36bd1f3f295d14a43abb1e2f38.json diff --git a/flutter_hash/engine/abdaabc6dc88e20dd0fe290a2d3dfcac03b2706f.json b/sdk-details/sdks/flutter/data/engine/abdaabc6dc88e20dd0fe290a2d3dfcac03b2706f.json similarity index 100% rename from flutter_hash/engine/abdaabc6dc88e20dd0fe290a2d3dfcac03b2706f.json rename to sdk-details/sdks/flutter/data/engine/abdaabc6dc88e20dd0fe290a2d3dfcac03b2706f.json diff --git a/flutter_hash/engine/ac5c83dd5ff1ddfae2f642401f67db550428aee3.json b/sdk-details/sdks/flutter/data/engine/ac5c83dd5ff1ddfae2f642401f67db550428aee3.json similarity index 100% rename from flutter_hash/engine/ac5c83dd5ff1ddfae2f642401f67db550428aee3.json rename to sdk-details/sdks/flutter/data/engine/ac5c83dd5ff1ddfae2f642401f67db550428aee3.json diff --git a/flutter_hash/engine/ac9391978e7c0693b75a82c219e059b6ffee35c4.json b/sdk-details/sdks/flutter/data/engine/ac9391978e7c0693b75a82c219e059b6ffee35c4.json similarity index 100% rename from flutter_hash/engine/ac9391978e7c0693b75a82c219e059b6ffee35c4.json rename to sdk-details/sdks/flutter/data/engine/ac9391978e7c0693b75a82c219e059b6ffee35c4.json diff --git a/flutter_hash/engine/ac95267aef5175b3f6c3387d502070c68f588ad5.json b/sdk-details/sdks/flutter/data/engine/ac95267aef5175b3f6c3387d502070c68f588ad5.json similarity index 100% rename from flutter_hash/engine/ac95267aef5175b3f6c3387d502070c68f588ad5.json rename to sdk-details/sdks/flutter/data/engine/ac95267aef5175b3f6c3387d502070c68f588ad5.json diff --git a/flutter_hash/engine/ad14574949f5cd0b5eddfd7bc4fd54bb56e00c72.json b/sdk-details/sdks/flutter/data/engine/ad14574949f5cd0b5eddfd7bc4fd54bb56e00c72.json similarity index 100% rename from flutter_hash/engine/ad14574949f5cd0b5eddfd7bc4fd54bb56e00c72.json rename to sdk-details/sdks/flutter/data/engine/ad14574949f5cd0b5eddfd7bc4fd54bb56e00c72.json diff --git a/flutter_hash/engine/ad3d868e0d174f5a8447b011bd714d18a5f2abec.json b/sdk-details/sdks/flutter/data/engine/ad3d868e0d174f5a8447b011bd714d18a5f2abec.json similarity index 100% rename from flutter_hash/engine/ad3d868e0d174f5a8447b011bd714d18a5f2abec.json rename to sdk-details/sdks/flutter/data/engine/ad3d868e0d174f5a8447b011bd714d18a5f2abec.json diff --git a/flutter_hash/engine/ada363ee93b17cfe31587b5102679885cb40837e.json b/sdk-details/sdks/flutter/data/engine/ada363ee93b17cfe31587b5102679885cb40837e.json similarity index 100% rename from flutter_hash/engine/ada363ee93b17cfe31587b5102679885cb40837e.json rename to sdk-details/sdks/flutter/data/engine/ada363ee93b17cfe31587b5102679885cb40837e.json diff --git a/flutter_hash/engine/ae470c12d363f9b7c6ace259891b783b0fab64dc.json b/sdk-details/sdks/flutter/data/engine/ae470c12d363f9b7c6ace259891b783b0fab64dc.json similarity index 100% rename from flutter_hash/engine/ae470c12d363f9b7c6ace259891b783b0fab64dc.json rename to sdk-details/sdks/flutter/data/engine/ae470c12d363f9b7c6ace259891b783b0fab64dc.json diff --git a/flutter_hash/engine/ae8e6d9f46990b9585dc1fb5b8aabe491c08aaf3.json b/sdk-details/sdks/flutter/data/engine/ae8e6d9f46990b9585dc1fb5b8aabe491c08aaf3.json similarity index 100% rename from flutter_hash/engine/ae8e6d9f46990b9585dc1fb5b8aabe491c08aaf3.json rename to sdk-details/sdks/flutter/data/engine/ae8e6d9f46990b9585dc1fb5b8aabe491c08aaf3.json diff --git a/flutter_hash/engine/ae90085a8437c0ae94d6b5ad2741739ebc742cb4.json b/sdk-details/sdks/flutter/data/engine/ae90085a8437c0ae94d6b5ad2741739ebc742cb4.json similarity index 100% rename from flutter_hash/engine/ae90085a8437c0ae94d6b5ad2741739ebc742cb4.json rename to sdk-details/sdks/flutter/data/engine/ae90085a8437c0ae94d6b5ad2741739ebc742cb4.json diff --git a/flutter_hash/engine/af04338413c3ed73316350f64248a152433073b6.json b/sdk-details/sdks/flutter/data/engine/af04338413c3ed73316350f64248a152433073b6.json similarity index 100% rename from flutter_hash/engine/af04338413c3ed73316350f64248a152433073b6.json rename to sdk-details/sdks/flutter/data/engine/af04338413c3ed73316350f64248a152433073b6.json diff --git a/flutter_hash/engine/af0f0d559c8a87d912a20971bbd84afc80a54b0f.json b/sdk-details/sdks/flutter/data/engine/af0f0d559c8a87d912a20971bbd84afc80a54b0f.json similarity index 100% rename from flutter_hash/engine/af0f0d559c8a87d912a20971bbd84afc80a54b0f.json rename to sdk-details/sdks/flutter/data/engine/af0f0d559c8a87d912a20971bbd84afc80a54b0f.json diff --git a/flutter_hash/engine/af42b6dc95bd9f719e43c4e9f29a00640f0f0bba.json b/sdk-details/sdks/flutter/data/engine/af42b6dc95bd9f719e43c4e9f29a00640f0f0bba.json similarity index 100% rename from flutter_hash/engine/af42b6dc95bd9f719e43c4e9f29a00640f0f0bba.json rename to sdk-details/sdks/flutter/data/engine/af42b6dc95bd9f719e43c4e9f29a00640f0f0bba.json diff --git a/flutter_hash/engine/af51afceb8886cc11e25047523c4e0c7e1f5d408.json b/sdk-details/sdks/flutter/data/engine/af51afceb8886cc11e25047523c4e0c7e1f5d408.json similarity index 100% rename from flutter_hash/engine/af51afceb8886cc11e25047523c4e0c7e1f5d408.json rename to sdk-details/sdks/flutter/data/engine/af51afceb8886cc11e25047523c4e0c7e1f5d408.json diff --git a/flutter_hash/engine/b04955656c87de0d80d259792e3a0e4a23b7c260.json b/sdk-details/sdks/flutter/data/engine/b04955656c87de0d80d259792e3a0e4a23b7c260.json similarity index 100% rename from flutter_hash/engine/b04955656c87de0d80d259792e3a0e4a23b7c260.json rename to sdk-details/sdks/flutter/data/engine/b04955656c87de0d80d259792e3a0e4a23b7c260.json diff --git a/flutter_hash/engine/b09f014e9658da6647361e7e416d1a159d34192d.json b/sdk-details/sdks/flutter/data/engine/b09f014e9658da6647361e7e416d1a159d34192d.json similarity index 100% rename from flutter_hash/engine/b09f014e9658da6647361e7e416d1a159d34192d.json rename to sdk-details/sdks/flutter/data/engine/b09f014e9658da6647361e7e416d1a159d34192d.json diff --git a/flutter_hash/engine/b0b19d6ce1d23a5ca766ecc08199df1e27028d43.json b/sdk-details/sdks/flutter/data/engine/b0b19d6ce1d23a5ca766ecc08199df1e27028d43.json similarity index 100% rename from flutter_hash/engine/b0b19d6ce1d23a5ca766ecc08199df1e27028d43.json rename to sdk-details/sdks/flutter/data/engine/b0b19d6ce1d23a5ca766ecc08199df1e27028d43.json diff --git a/flutter_hash/engine/b1cb0d9e9b44393efeb735f664672a74732cdc8b.json b/sdk-details/sdks/flutter/data/engine/b1cb0d9e9b44393efeb735f664672a74732cdc8b.json similarity index 100% rename from flutter_hash/engine/b1cb0d9e9b44393efeb735f664672a74732cdc8b.json rename to sdk-details/sdks/flutter/data/engine/b1cb0d9e9b44393efeb735f664672a74732cdc8b.json diff --git a/flutter_hash/engine/b20183e04096094bcc37d9cde2a4b96f5cc684cf.json b/sdk-details/sdks/flutter/data/engine/b20183e04096094bcc37d9cde2a4b96f5cc684cf.json similarity index 100% rename from flutter_hash/engine/b20183e04096094bcc37d9cde2a4b96f5cc684cf.json rename to sdk-details/sdks/flutter/data/engine/b20183e04096094bcc37d9cde2a4b96f5cc684cf.json diff --git a/flutter_hash/engine/b24591ed328a2d4ce6505819e2f5898a78132f7f.json b/sdk-details/sdks/flutter/data/engine/b24591ed328a2d4ce6505819e2f5898a78132f7f.json similarity index 100% rename from flutter_hash/engine/b24591ed328a2d4ce6505819e2f5898a78132f7f.json rename to sdk-details/sdks/flutter/data/engine/b24591ed328a2d4ce6505819e2f5898a78132f7f.json diff --git a/flutter_hash/engine/b267090e310ab697b55c84373da954674f653b37.json b/sdk-details/sdks/flutter/data/engine/b267090e310ab697b55c84373da954674f653b37.json similarity index 100% rename from flutter_hash/engine/b267090e310ab697b55c84373da954674f653b37.json rename to sdk-details/sdks/flutter/data/engine/b267090e310ab697b55c84373da954674f653b37.json diff --git a/flutter_hash/engine/b2bdeb3f0f1683f3e0562f491b5e316240dfbc2c.json b/sdk-details/sdks/flutter/data/engine/b2bdeb3f0f1683f3e0562f491b5e316240dfbc2c.json similarity index 100% rename from flutter_hash/engine/b2bdeb3f0f1683f3e0562f491b5e316240dfbc2c.json rename to sdk-details/sdks/flutter/data/engine/b2bdeb3f0f1683f3e0562f491b5e316240dfbc2c.json diff --git a/flutter_hash/engine/b358dc58fbcec7b235a40f550445c8d6877342e1.json b/sdk-details/sdks/flutter/data/engine/b358dc58fbcec7b235a40f550445c8d6877342e1.json similarity index 100% rename from flutter_hash/engine/b358dc58fbcec7b235a40f550445c8d6877342e1.json rename to sdk-details/sdks/flutter/data/engine/b358dc58fbcec7b235a40f550445c8d6877342e1.json diff --git a/flutter_hash/engine/b3af521a050e6ef076778bcaf16e27b2521df8f8.json b/sdk-details/sdks/flutter/data/engine/b3af521a050e6ef076778bcaf16e27b2521df8f8.json similarity index 100% rename from flutter_hash/engine/b3af521a050e6ef076778bcaf16e27b2521df8f8.json rename to sdk-details/sdks/flutter/data/engine/b3af521a050e6ef076778bcaf16e27b2521df8f8.json diff --git a/flutter_hash/engine/b4bfd459865a8d636f26aca0d330ae297c006c3c.json b/sdk-details/sdks/flutter/data/engine/b4bfd459865a8d636f26aca0d330ae297c006c3c.json similarity index 100% rename from flutter_hash/engine/b4bfd459865a8d636f26aca0d330ae297c006c3c.json rename to sdk-details/sdks/flutter/data/engine/b4bfd459865a8d636f26aca0d330ae297c006c3c.json diff --git a/flutter_hash/engine/b4fb11214dd2dda6ce012dd98ea498e9e8b91262.json b/sdk-details/sdks/flutter/data/engine/b4fb11214dd2dda6ce012dd98ea498e9e8b91262.json similarity index 100% rename from flutter_hash/engine/b4fb11214dd2dda6ce012dd98ea498e9e8b91262.json rename to sdk-details/sdks/flutter/data/engine/b4fb11214dd2dda6ce012dd98ea498e9e8b91262.json diff --git a/flutter_hash/engine/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.json b/sdk-details/sdks/flutter/data/engine/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.json similarity index 100% rename from flutter_hash/engine/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.json rename to sdk-details/sdks/flutter/data/engine/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.json diff --git a/flutter_hash/engine/b5cdf57426107e7a8eebf469a017833e01389438.json b/sdk-details/sdks/flutter/data/engine/b5cdf57426107e7a8eebf469a017833e01389438.json similarity index 100% rename from flutter_hash/engine/b5cdf57426107e7a8eebf469a017833e01389438.json rename to sdk-details/sdks/flutter/data/engine/b5cdf57426107e7a8eebf469a017833e01389438.json diff --git a/flutter_hash/engine/b6b54fd60631a3828c2e2c9b079b5d1d2d8c8c37.json b/sdk-details/sdks/flutter/data/engine/b6b54fd60631a3828c2e2c9b079b5d1d2d8c8c37.json similarity index 100% rename from flutter_hash/engine/b6b54fd60631a3828c2e2c9b079b5d1d2d8c8c37.json rename to sdk-details/sdks/flutter/data/engine/b6b54fd60631a3828c2e2c9b079b5d1d2d8c8c37.json diff --git a/flutter_hash/engine/b754eabc98fb5dc75d90b8b5fca440ce8aac4c44.json b/sdk-details/sdks/flutter/data/engine/b754eabc98fb5dc75d90b8b5fca440ce8aac4c44.json similarity index 100% rename from flutter_hash/engine/b754eabc98fb5dc75d90b8b5fca440ce8aac4c44.json rename to sdk-details/sdks/flutter/data/engine/b754eabc98fb5dc75d90b8b5fca440ce8aac4c44.json diff --git a/flutter_hash/engine/b77f509e0bb80f3e5988d36df34d4841cf344fa4.json b/sdk-details/sdks/flutter/data/engine/b77f509e0bb80f3e5988d36df34d4841cf344fa4.json similarity index 100% rename from flutter_hash/engine/b77f509e0bb80f3e5988d36df34d4841cf344fa4.json rename to sdk-details/sdks/flutter/data/engine/b77f509e0bb80f3e5988d36df34d4841cf344fa4.json diff --git a/flutter_hash/engine/b84ad1ad30cca8d303b4bcb2bbd77573e4d66122.json b/sdk-details/sdks/flutter/data/engine/b84ad1ad30cca8d303b4bcb2bbd77573e4d66122.json similarity index 100% rename from flutter_hash/engine/b84ad1ad30cca8d303b4bcb2bbd77573e4d66122.json rename to sdk-details/sdks/flutter/data/engine/b84ad1ad30cca8d303b4bcb2bbd77573e4d66122.json diff --git a/flutter_hash/engine/b851c718295a896918dc93cb1ff14f2f895a1b90.json b/sdk-details/sdks/flutter/data/engine/b851c718295a896918dc93cb1ff14f2f895a1b90.json similarity index 100% rename from flutter_hash/engine/b851c718295a896918dc93cb1ff14f2f895a1b90.json rename to sdk-details/sdks/flutter/data/engine/b851c718295a896918dc93cb1ff14f2f895a1b90.json diff --git a/flutter_hash/engine/b863200c37df4ed378042de11c4e9ff34e4e58c9.json b/sdk-details/sdks/flutter/data/engine/b863200c37df4ed378042de11c4e9ff34e4e58c9.json similarity index 100% rename from flutter_hash/engine/b863200c37df4ed378042de11c4e9ff34e4e58c9.json rename to sdk-details/sdks/flutter/data/engine/b863200c37df4ed378042de11c4e9ff34e4e58c9.json diff --git a/flutter_hash/engine/b8752bbfff0419c8bf616b602bc59fd28f6a3d1b.json b/sdk-details/sdks/flutter/data/engine/b8752bbfff0419c8bf616b602bc59fd28f6a3d1b.json similarity index 100% rename from flutter_hash/engine/b8752bbfff0419c8bf616b602bc59fd28f6a3d1b.json rename to sdk-details/sdks/flutter/data/engine/b8752bbfff0419c8bf616b602bc59fd28f6a3d1b.json diff --git a/flutter_hash/engine/b8800d88be4866db1b15f8b954ab2573bba9960f.json b/sdk-details/sdks/flutter/data/engine/b8800d88be4866db1b15f8b954ab2573bba9960f.json similarity index 100% rename from flutter_hash/engine/b8800d88be4866db1b15f8b954ab2573bba9960f.json rename to sdk-details/sdks/flutter/data/engine/b8800d88be4866db1b15f8b954ab2573bba9960f.json diff --git a/flutter_hash/engine/b8d35810e91ab8fc39ba5e7a41bff6f697e8e3a8.json b/sdk-details/sdks/flutter/data/engine/b8d35810e91ab8fc39ba5e7a41bff6f697e8e3a8.json similarity index 100% rename from flutter_hash/engine/b8d35810e91ab8fc39ba5e7a41bff6f697e8e3a8.json rename to sdk-details/sdks/flutter/data/engine/b8d35810e91ab8fc39ba5e7a41bff6f697e8e3a8.json diff --git a/flutter_hash/engine/b93c76ab94207adc619e02b061f864e967983c22.json b/sdk-details/sdks/flutter/data/engine/b93c76ab94207adc619e02b061f864e967983c22.json similarity index 100% rename from flutter_hash/engine/b93c76ab94207adc619e02b061f864e967983c22.json rename to sdk-details/sdks/flutter/data/engine/b93c76ab94207adc619e02b061f864e967983c22.json diff --git a/flutter_hash/engine/b9afb03275c7cf04906cb5b94faa60005561fc83.json b/sdk-details/sdks/flutter/data/engine/b9afb03275c7cf04906cb5b94faa60005561fc83.json similarity index 100% rename from flutter_hash/engine/b9afb03275c7cf04906cb5b94faa60005561fc83.json rename to sdk-details/sdks/flutter/data/engine/b9afb03275c7cf04906cb5b94faa60005561fc83.json diff --git a/flutter_hash/engine/b9ce2500d9e57389c8b873fbbd016852c8ed8d0a.json b/sdk-details/sdks/flutter/data/engine/b9ce2500d9e57389c8b873fbbd016852c8ed8d0a.json similarity index 100% rename from flutter_hash/engine/b9ce2500d9e57389c8b873fbbd016852c8ed8d0a.json rename to sdk-details/sdks/flutter/data/engine/b9ce2500d9e57389c8b873fbbd016852c8ed8d0a.json diff --git a/flutter_hash/engine/bb10c5466638e963479ba5e64e601e42d1a43447.json b/sdk-details/sdks/flutter/data/engine/bb10c5466638e963479ba5e64e601e42d1a43447.json similarity index 100% rename from flutter_hash/engine/bb10c5466638e963479ba5e64e601e42d1a43447.json rename to sdk-details/sdks/flutter/data/engine/bb10c5466638e963479ba5e64e601e42d1a43447.json diff --git a/flutter_hash/engine/bbba2b2437d739a455ecafb66a22a46d31b233ed.json b/sdk-details/sdks/flutter/data/engine/bbba2b2437d739a455ecafb66a22a46d31b233ed.json similarity index 100% rename from flutter_hash/engine/bbba2b2437d739a455ecafb66a22a46d31b233ed.json rename to sdk-details/sdks/flutter/data/engine/bbba2b2437d739a455ecafb66a22a46d31b233ed.json diff --git a/flutter_hash/engine/bbebee146508eb837aadb52388069f1fb4037a55.json b/sdk-details/sdks/flutter/data/engine/bbebee146508eb837aadb52388069f1fb4037a55.json similarity index 100% rename from flutter_hash/engine/bbebee146508eb837aadb52388069f1fb4037a55.json rename to sdk-details/sdks/flutter/data/engine/bbebee146508eb837aadb52388069f1fb4037a55.json diff --git a/flutter_hash/engine/bc41ab513932694fccaed8c2d40e2e66630fdc88.json b/sdk-details/sdks/flutter/data/engine/bc41ab513932694fccaed8c2d40e2e66630fdc88.json similarity index 100% rename from flutter_hash/engine/bc41ab513932694fccaed8c2d40e2e66630fdc88.json rename to sdk-details/sdks/flutter/data/engine/bc41ab513932694fccaed8c2d40e2e66630fdc88.json diff --git a/flutter_hash/engine/bcc2b7f12cada3d1359e353c416568b4c3f6df69.json b/sdk-details/sdks/flutter/data/engine/bcc2b7f12cada3d1359e353c416568b4c3f6df69.json similarity index 100% rename from flutter_hash/engine/bcc2b7f12cada3d1359e353c416568b4c3f6df69.json rename to sdk-details/sdks/flutter/data/engine/bcc2b7f12cada3d1359e353c416568b4c3f6df69.json diff --git a/flutter_hash/engine/bd390c0310ed240f5781b55b6eb6d5b9f0e2955f.json b/sdk-details/sdks/flutter/data/engine/bd390c0310ed240f5781b55b6eb6d5b9f0e2955f.json similarity index 100% rename from flutter_hash/engine/bd390c0310ed240f5781b55b6eb6d5b9f0e2955f.json rename to sdk-details/sdks/flutter/data/engine/bd390c0310ed240f5781b55b6eb6d5b9f0e2955f.json diff --git a/flutter_hash/engine/bd539267b42051b0da3d16ffa8f48949dce8aa8f.json b/sdk-details/sdks/flutter/data/engine/bd539267b42051b0da3d16ffa8f48949dce8aa8f.json similarity index 100% rename from flutter_hash/engine/bd539267b42051b0da3d16ffa8f48949dce8aa8f.json rename to sdk-details/sdks/flutter/data/engine/bd539267b42051b0da3d16ffa8f48949dce8aa8f.json diff --git a/flutter_hash/engine/bd986c5ed20a62dc34b7718c50abc782beae4c33.json b/sdk-details/sdks/flutter/data/engine/bd986c5ed20a62dc34b7718c50abc782beae4c33.json similarity index 100% rename from flutter_hash/engine/bd986c5ed20a62dc34b7718c50abc782beae4c33.json rename to sdk-details/sdks/flutter/data/engine/bd986c5ed20a62dc34b7718c50abc782beae4c33.json diff --git a/flutter_hash/engine/bdc9708d235e582483d299642ad8682826ebb90d.json b/sdk-details/sdks/flutter/data/engine/bdc9708d235e582483d299642ad8682826ebb90d.json similarity index 100% rename from flutter_hash/engine/bdc9708d235e582483d299642ad8682826ebb90d.json rename to sdk-details/sdks/flutter/data/engine/bdc9708d235e582483d299642ad8682826ebb90d.json diff --git a/flutter_hash/engine/be973ea196127383f356d39be466e2f3bd163083.json b/sdk-details/sdks/flutter/data/engine/be973ea196127383f356d39be466e2f3bd163083.json similarity index 100% rename from flutter_hash/engine/be973ea196127383f356d39be466e2f3bd163083.json rename to sdk-details/sdks/flutter/data/engine/be973ea196127383f356d39be466e2f3bd163083.json diff --git a/flutter_hash/engine/beb8a7ec48f6b980a778d19eeda613635c3897c9.json b/sdk-details/sdks/flutter/data/engine/beb8a7ec48f6b980a778d19eeda613635c3897c9.json similarity index 100% rename from flutter_hash/engine/beb8a7ec48f6b980a778d19eeda613635c3897c9.json rename to sdk-details/sdks/flutter/data/engine/beb8a7ec48f6b980a778d19eeda613635c3897c9.json diff --git a/flutter_hash/engine/bf377896ff0fc190301436ff32a592f3bab75e6b.json b/sdk-details/sdks/flutter/data/engine/bf377896ff0fc190301436ff32a592f3bab75e6b.json similarity index 100% rename from flutter_hash/engine/bf377896ff0fc190301436ff32a592f3bab75e6b.json rename to sdk-details/sdks/flutter/data/engine/bf377896ff0fc190301436ff32a592f3bab75e6b.json diff --git a/flutter_hash/engine/c08d7d5efc9aa6eb3c30cfb3be6dc09bca5e7631.json b/sdk-details/sdks/flutter/data/engine/c08d7d5efc9aa6eb3c30cfb3be6dc09bca5e7631.json similarity index 100% rename from flutter_hash/engine/c08d7d5efc9aa6eb3c30cfb3be6dc09bca5e7631.json rename to sdk-details/sdks/flutter/data/engine/c08d7d5efc9aa6eb3c30cfb3be6dc09bca5e7631.json diff --git a/flutter_hash/engine/c0e6f6a6e665b8b5f66038819f15701dbfe2f0da.json b/sdk-details/sdks/flutter/data/engine/c0e6f6a6e665b8b5f66038819f15701dbfe2f0da.json similarity index 100% rename from flutter_hash/engine/c0e6f6a6e665b8b5f66038819f15701dbfe2f0da.json rename to sdk-details/sdks/flutter/data/engine/c0e6f6a6e665b8b5f66038819f15701dbfe2f0da.json diff --git a/flutter_hash/engine/c0ee647ca4226fcb38a5af178a97ce8ba9129184.json b/sdk-details/sdks/flutter/data/engine/c0ee647ca4226fcb38a5af178a97ce8ba9129184.json similarity index 100% rename from flutter_hash/engine/c0ee647ca4226fcb38a5af178a97ce8ba9129184.json rename to sdk-details/sdks/flutter/data/engine/c0ee647ca4226fcb38a5af178a97ce8ba9129184.json diff --git a/flutter_hash/engine/c15efb9231a49e6a2fb21c87bc1289e6aeee71a9.json b/sdk-details/sdks/flutter/data/engine/c15efb9231a49e6a2fb21c87bc1289e6aeee71a9.json similarity index 100% rename from flutter_hash/engine/c15efb9231a49e6a2fb21c87bc1289e6aeee71a9.json rename to sdk-details/sdks/flutter/data/engine/c15efb9231a49e6a2fb21c87bc1289e6aeee71a9.json diff --git a/flutter_hash/engine/c1e322b685a81c11c16bddd22282925b7d0272e8.json b/sdk-details/sdks/flutter/data/engine/c1e322b685a81c11c16bddd22282925b7d0272e8.json similarity index 100% rename from flutter_hash/engine/c1e322b685a81c11c16bddd22282925b7d0272e8.json rename to sdk-details/sdks/flutter/data/engine/c1e322b685a81c11c16bddd22282925b7d0272e8.json diff --git a/flutter_hash/engine/c1f977f72b68da673ec493ab5df0beacacc7a88b.json b/sdk-details/sdks/flutter/data/engine/c1f977f72b68da673ec493ab5df0beacacc7a88b.json similarity index 100% rename from flutter_hash/engine/c1f977f72b68da673ec493ab5df0beacacc7a88b.json rename to sdk-details/sdks/flutter/data/engine/c1f977f72b68da673ec493ab5df0beacacc7a88b.json diff --git a/flutter_hash/engine/c23690f0d751898a0ed5eab4c5242a9e182b54b0.json b/sdk-details/sdks/flutter/data/engine/c23690f0d751898a0ed5eab4c5242a9e182b54b0.json similarity index 100% rename from flutter_hash/engine/c23690f0d751898a0ed5eab4c5242a9e182b54b0.json rename to sdk-details/sdks/flutter/data/engine/c23690f0d751898a0ed5eab4c5242a9e182b54b0.json diff --git a/flutter_hash/engine/c29809135135e262a912cf583b2c90deb9ded610.json b/sdk-details/sdks/flutter/data/engine/c29809135135e262a912cf583b2c90deb9ded610.json similarity index 100% rename from flutter_hash/engine/c29809135135e262a912cf583b2c90deb9ded610.json rename to sdk-details/sdks/flutter/data/engine/c29809135135e262a912cf583b2c90deb9ded610.json diff --git a/flutter_hash/engine/c3976b3c7183f479717bffed3f640fb92afbd3dc.json b/sdk-details/sdks/flutter/data/engine/c3976b3c7183f479717bffed3f640fb92afbd3dc.json similarity index 100% rename from flutter_hash/engine/c3976b3c7183f479717bffed3f640fb92afbd3dc.json rename to sdk-details/sdks/flutter/data/engine/c3976b3c7183f479717bffed3f640fb92afbd3dc.json diff --git a/flutter_hash/engine/c416acfeb8126e097f758c664aaa3da929e27da0.json b/sdk-details/sdks/flutter/data/engine/c416acfeb8126e097f758c664aaa3da929e27da0.json similarity index 100% rename from flutter_hash/engine/c416acfeb8126e097f758c664aaa3da929e27da0.json rename to sdk-details/sdks/flutter/data/engine/c416acfeb8126e097f758c664aaa3da929e27da0.json diff --git a/flutter_hash/engine/c4229bfbbae455ad69c967be19aee3fadd6486e1.json b/sdk-details/sdks/flutter/data/engine/c4229bfbbae455ad69c967be19aee3fadd6486e1.json similarity index 100% rename from flutter_hash/engine/c4229bfbbae455ad69c967be19aee3fadd6486e1.json rename to sdk-details/sdks/flutter/data/engine/c4229bfbbae455ad69c967be19aee3fadd6486e1.json diff --git a/flutter_hash/engine/c43739ba53ce7c0d6d6f5c9ab90a832302c0b623.json b/sdk-details/sdks/flutter/data/engine/c43739ba53ce7c0d6d6f5c9ab90a832302c0b623.json similarity index 100% rename from flutter_hash/engine/c43739ba53ce7c0d6d6f5c9ab90a832302c0b623.json rename to sdk-details/sdks/flutter/data/engine/c43739ba53ce7c0d6d6f5c9ab90a832302c0b623.json diff --git a/flutter_hash/engine/c4cd48e186460b32d44585ce3c103271ab676355.json b/sdk-details/sdks/flutter/data/engine/c4cd48e186460b32d44585ce3c103271ab676355.json similarity index 100% rename from flutter_hash/engine/c4cd48e186460b32d44585ce3c103271ab676355.json rename to sdk-details/sdks/flutter/data/engine/c4cd48e186460b32d44585ce3c103271ab676355.json diff --git a/flutter_hash/engine/c4d14a00716fa616b69d51bab957aee483bdc9c2.json b/sdk-details/sdks/flutter/data/engine/c4d14a00716fa616b69d51bab957aee483bdc9c2.json similarity index 100% rename from flutter_hash/engine/c4d14a00716fa616b69d51bab957aee483bdc9c2.json rename to sdk-details/sdks/flutter/data/engine/c4d14a00716fa616b69d51bab957aee483bdc9c2.json diff --git a/flutter_hash/engine/c5caf749fe75db788dba8def502c46c094435605.json b/sdk-details/sdks/flutter/data/engine/c5caf749fe75db788dba8def502c46c094435605.json similarity index 100% rename from flutter_hash/engine/c5caf749fe75db788dba8def502c46c094435605.json rename to sdk-details/sdks/flutter/data/engine/c5caf749fe75db788dba8def502c46c094435605.json diff --git a/flutter_hash/engine/c633b2a6a04ffe81308cdd8916c062725a8ed1e1.json b/sdk-details/sdks/flutter/data/engine/c633b2a6a04ffe81308cdd8916c062725a8ed1e1.json similarity index 100% rename from flutter_hash/engine/c633b2a6a04ffe81308cdd8916c062725a8ed1e1.json rename to sdk-details/sdks/flutter/data/engine/c633b2a6a04ffe81308cdd8916c062725a8ed1e1.json diff --git a/flutter_hash/engine/c63d1cf9c9ba8c7d8546f24c1248433bdf827153.json b/sdk-details/sdks/flutter/data/engine/c63d1cf9c9ba8c7d8546f24c1248433bdf827153.json similarity index 100% rename from flutter_hash/engine/c63d1cf9c9ba8c7d8546f24c1248433bdf827153.json rename to sdk-details/sdks/flutter/data/engine/c63d1cf9c9ba8c7d8546f24c1248433bdf827153.json diff --git a/flutter_hash/engine/c779894d089554620134408b3cb6ea515489dc14.json b/sdk-details/sdks/flutter/data/engine/c779894d089554620134408b3cb6ea515489dc14.json similarity index 100% rename from flutter_hash/engine/c779894d089554620134408b3cb6ea515489dc14.json rename to sdk-details/sdks/flutter/data/engine/c779894d089554620134408b3cb6ea515489dc14.json diff --git a/flutter_hash/engine/c7f9725521c0dff7712d54f26322ac3463572394.json b/sdk-details/sdks/flutter/data/engine/c7f9725521c0dff7712d54f26322ac3463572394.json similarity index 100% rename from flutter_hash/engine/c7f9725521c0dff7712d54f26322ac3463572394.json rename to sdk-details/sdks/flutter/data/engine/c7f9725521c0dff7712d54f26322ac3463572394.json diff --git a/flutter_hash/engine/c85c7257fc89546563dc92a0764cc96c4445b2b2.json b/sdk-details/sdks/flutter/data/engine/c85c7257fc89546563dc92a0764cc96c4445b2b2.json similarity index 100% rename from flutter_hash/engine/c85c7257fc89546563dc92a0764cc96c4445b2b2.json rename to sdk-details/sdks/flutter/data/engine/c85c7257fc89546563dc92a0764cc96c4445b2b2.json diff --git a/flutter_hash/engine/c89ac6347b7e88a562ebc826a5ee9a07c7b4cab7.json b/sdk-details/sdks/flutter/data/engine/c89ac6347b7e88a562ebc826a5ee9a07c7b4cab7.json similarity index 100% rename from flutter_hash/engine/c89ac6347b7e88a562ebc826a5ee9a07c7b4cab7.json rename to sdk-details/sdks/flutter/data/engine/c89ac6347b7e88a562ebc826a5ee9a07c7b4cab7.json diff --git a/flutter_hash/engine/c8e3b9485386425213e2973126d6f57e7ed83c54.json b/sdk-details/sdks/flutter/data/engine/c8e3b9485386425213e2973126d6f57e7ed83c54.json similarity index 100% rename from flutter_hash/engine/c8e3b9485386425213e2973126d6f57e7ed83c54.json rename to sdk-details/sdks/flutter/data/engine/c8e3b9485386425213e2973126d6f57e7ed83c54.json diff --git a/flutter_hash/engine/c903c217a1a8206cdebdab1703b52ec6180edf37.json b/sdk-details/sdks/flutter/data/engine/c903c217a1a8206cdebdab1703b52ec6180edf37.json similarity index 100% rename from flutter_hash/engine/c903c217a1a8206cdebdab1703b52ec6180edf37.json rename to sdk-details/sdks/flutter/data/engine/c903c217a1a8206cdebdab1703b52ec6180edf37.json diff --git a/flutter_hash/engine/c9506cb8e93e5e8879152ff5c948b175abb5b997.json b/sdk-details/sdks/flutter/data/engine/c9506cb8e93e5e8879152ff5c948b175abb5b997.json similarity index 100% rename from flutter_hash/engine/c9506cb8e93e5e8879152ff5c948b175abb5b997.json rename to sdk-details/sdks/flutter/data/engine/c9506cb8e93e5e8879152ff5c948b175abb5b997.json diff --git a/flutter_hash/engine/c9b9d5780da342eb3f0f5e439a7db06f7d112575.json b/sdk-details/sdks/flutter/data/engine/c9b9d5780da342eb3f0f5e439a7db06f7d112575.json similarity index 100% rename from flutter_hash/engine/c9b9d5780da342eb3f0f5e439a7db06f7d112575.json rename to sdk-details/sdks/flutter/data/engine/c9b9d5780da342eb3f0f5e439a7db06f7d112575.json diff --git a/flutter_hash/engine/ca31a7c57bada458fa7f5c0d3f36bc1af4ccbc79.json b/sdk-details/sdks/flutter/data/engine/ca31a7c57bada458fa7f5c0d3f36bc1af4ccbc79.json similarity index 100% rename from flutter_hash/engine/ca31a7c57bada458fa7f5c0d3f36bc1af4ccbc79.json rename to sdk-details/sdks/flutter/data/engine/ca31a7c57bada458fa7f5c0d3f36bc1af4ccbc79.json diff --git a/flutter_hash/engine/caaafc5604ee9172293eb84a381be6aadd660317.json b/sdk-details/sdks/flutter/data/engine/caaafc5604ee9172293eb84a381be6aadd660317.json similarity index 100% rename from flutter_hash/engine/caaafc5604ee9172293eb84a381be6aadd660317.json rename to sdk-details/sdks/flutter/data/engine/caaafc5604ee9172293eb84a381be6aadd660317.json diff --git a/flutter_hash/engine/cafcda5721a78a7884db92f13c5e89f7643d52dd.json b/sdk-details/sdks/flutter/data/engine/cafcda5721a78a7884db92f13c5e89f7643d52dd.json similarity index 100% rename from flutter_hash/engine/cafcda5721a78a7884db92f13c5e89f7643d52dd.json rename to sdk-details/sdks/flutter/data/engine/cafcda5721a78a7884db92f13c5e89f7643d52dd.json diff --git a/flutter_hash/engine/cb3376c5dedb71cec7a88b8a8904acc5dd6c6ba1.json b/sdk-details/sdks/flutter/data/engine/cb3376c5dedb71cec7a88b8a8904acc5dd6c6ba1.json similarity index 100% rename from flutter_hash/engine/cb3376c5dedb71cec7a88b8a8904acc5dd6c6ba1.json rename to sdk-details/sdks/flutter/data/engine/cb3376c5dedb71cec7a88b8a8904acc5dd6c6ba1.json diff --git a/flutter_hash/engine/cb467e31a54207dc987aca5bb0941c4d2e3fd9ed.json b/sdk-details/sdks/flutter/data/engine/cb467e31a54207dc987aca5bb0941c4d2e3fd9ed.json similarity index 100% rename from flutter_hash/engine/cb467e31a54207dc987aca5bb0941c4d2e3fd9ed.json rename to sdk-details/sdks/flutter/data/engine/cb467e31a54207dc987aca5bb0941c4d2e3fd9ed.json diff --git a/flutter_hash/engine/cb4b5fff73850b2e42bd4de7cb9a4310a78ac40d.json b/sdk-details/sdks/flutter/data/engine/cb4b5fff73850b2e42bd4de7cb9a4310a78ac40d.json similarity index 100% rename from flutter_hash/engine/cb4b5fff73850b2e42bd4de7cb9a4310a78ac40d.json rename to sdk-details/sdks/flutter/data/engine/cb4b5fff73850b2e42bd4de7cb9a4310a78ac40d.json diff --git a/flutter_hash/engine/cc115500b9cb2b27d59627f202e6cd6bb87f49fc.json b/sdk-details/sdks/flutter/data/engine/cc115500b9cb2b27d59627f202e6cd6bb87f49fc.json similarity index 100% rename from flutter_hash/engine/cc115500b9cb2b27d59627f202e6cd6bb87f49fc.json rename to sdk-details/sdks/flutter/data/engine/cc115500b9cb2b27d59627f202e6cd6bb87f49fc.json diff --git a/flutter_hash/engine/cc88fa45dbf4c55bc23cecea17fb90f43bccf588.json b/sdk-details/sdks/flutter/data/engine/cc88fa45dbf4c55bc23cecea17fb90f43bccf588.json similarity index 100% rename from flutter_hash/engine/cc88fa45dbf4c55bc23cecea17fb90f43bccf588.json rename to sdk-details/sdks/flutter/data/engine/cc88fa45dbf4c55bc23cecea17fb90f43bccf588.json diff --git a/flutter_hash/engine/cdbeda788a293fa29665dc3fa3d6e63bd221cb0d.json b/sdk-details/sdks/flutter/data/engine/cdbeda788a293fa29665dc3fa3d6e63bd221cb0d.json similarity index 100% rename from flutter_hash/engine/cdbeda788a293fa29665dc3fa3d6e63bd221cb0d.json rename to sdk-details/sdks/flutter/data/engine/cdbeda788a293fa29665dc3fa3d6e63bd221cb0d.json diff --git a/flutter_hash/engine/cf56914b326edb0ccb123ffdc60f00060bd513fa.json b/sdk-details/sdks/flutter/data/engine/cf56914b326edb0ccb123ffdc60f00060bd513fa.json similarity index 100% rename from flutter_hash/engine/cf56914b326edb0ccb123ffdc60f00060bd513fa.json rename to sdk-details/sdks/flutter/data/engine/cf56914b326edb0ccb123ffdc60f00060bd513fa.json diff --git a/flutter_hash/engine/cf7a9d0800f2a5da166dbe0eb9fb2476018269b1.json b/sdk-details/sdks/flutter/data/engine/cf7a9d0800f2a5da166dbe0eb9fb2476018269b1.json similarity index 100% rename from flutter_hash/engine/cf7a9d0800f2a5da166dbe0eb9fb2476018269b1.json rename to sdk-details/sdks/flutter/data/engine/cf7a9d0800f2a5da166dbe0eb9fb2476018269b1.json diff --git a/flutter_hash/engine/d004bcd4d619fc3574761d63d7cf7b7291332c79.json b/sdk-details/sdks/flutter/data/engine/d004bcd4d619fc3574761d63d7cf7b7291332c79.json similarity index 100% rename from flutter_hash/engine/d004bcd4d619fc3574761d63d7cf7b7291332c79.json rename to sdk-details/sdks/flutter/data/engine/d004bcd4d619fc3574761d63d7cf7b7291332c79.json diff --git a/flutter_hash/engine/d17c84e7af9081ea95cc4563559fd53e119e6038.json b/sdk-details/sdks/flutter/data/engine/d17c84e7af9081ea95cc4563559fd53e119e6038.json similarity index 100% rename from flutter_hash/engine/d17c84e7af9081ea95cc4563559fd53e119e6038.json rename to sdk-details/sdks/flutter/data/engine/d17c84e7af9081ea95cc4563559fd53e119e6038.json diff --git a/flutter_hash/engine/d1b9a6938ad77326ac3a94d92bbc77933ed829ed.json b/sdk-details/sdks/flutter/data/engine/d1b9a6938ad77326ac3a94d92bbc77933ed829ed.json similarity index 100% rename from flutter_hash/engine/d1b9a6938ad77326ac3a94d92bbc77933ed829ed.json rename to sdk-details/sdks/flutter/data/engine/d1b9a6938ad77326ac3a94d92bbc77933ed829ed.json diff --git a/flutter_hash/engine/d1bc06f032f9d6c148ea6b96b48261d6f545004f.json b/sdk-details/sdks/flutter/data/engine/d1bc06f032f9d6c148ea6b96b48261d6f545004f.json similarity index 100% rename from flutter_hash/engine/d1bc06f032f9d6c148ea6b96b48261d6f545004f.json rename to sdk-details/sdks/flutter/data/engine/d1bc06f032f9d6c148ea6b96b48261d6f545004f.json diff --git a/flutter_hash/engine/d1cac77d5a4edb64901341253fe9e756cb94dc34.json b/sdk-details/sdks/flutter/data/engine/d1cac77d5a4edb64901341253fe9e756cb94dc34.json similarity index 100% rename from flutter_hash/engine/d1cac77d5a4edb64901341253fe9e756cb94dc34.json rename to sdk-details/sdks/flutter/data/engine/d1cac77d5a4edb64901341253fe9e756cb94dc34.json diff --git a/flutter_hash/engine/d1e7dc18bf272f7f2be1c9094307fa0462787ff2.json b/sdk-details/sdks/flutter/data/engine/d1e7dc18bf272f7f2be1c9094307fa0462787ff2.json similarity index 100% rename from flutter_hash/engine/d1e7dc18bf272f7f2be1c9094307fa0462787ff2.json rename to sdk-details/sdks/flutter/data/engine/d1e7dc18bf272f7f2be1c9094307fa0462787ff2.json diff --git a/flutter_hash/engine/d2913632a4578ee4d0b8b1c4a69888c8a0672c4b.json b/sdk-details/sdks/flutter/data/engine/d2913632a4578ee4d0b8b1c4a69888c8a0672c4b.json similarity index 100% rename from flutter_hash/engine/d2913632a4578ee4d0b8b1c4a69888c8a0672c4b.json rename to sdk-details/sdks/flutter/data/engine/d2913632a4578ee4d0b8b1c4a69888c8a0672c4b.json diff --git a/flutter_hash/engine/d2a2e93510ad6cfc3d62a90d903b7056e4da8264.json b/sdk-details/sdks/flutter/data/engine/d2a2e93510ad6cfc3d62a90d903b7056e4da8264.json similarity index 100% rename from flutter_hash/engine/d2a2e93510ad6cfc3d62a90d903b7056e4da8264.json rename to sdk-details/sdks/flutter/data/engine/d2a2e93510ad6cfc3d62a90d903b7056e4da8264.json diff --git a/flutter_hash/engine/d2b69fec751d6d11f62019c863b2cba4ce575bfe.json b/sdk-details/sdks/flutter/data/engine/d2b69fec751d6d11f62019c863b2cba4ce575bfe.json similarity index 100% rename from flutter_hash/engine/d2b69fec751d6d11f62019c863b2cba4ce575bfe.json rename to sdk-details/sdks/flutter/data/engine/d2b69fec751d6d11f62019c863b2cba4ce575bfe.json diff --git a/flutter_hash/engine/d2ec21221e299b56e6ecb297e7710c63e7b7ba87.json b/sdk-details/sdks/flutter/data/engine/d2ec21221e299b56e6ecb297e7710c63e7b7ba87.json similarity index 100% rename from flutter_hash/engine/d2ec21221e299b56e6ecb297e7710c63e7b7ba87.json rename to sdk-details/sdks/flutter/data/engine/d2ec21221e299b56e6ecb297e7710c63e7b7ba87.json diff --git a/flutter_hash/engine/d33bbff47055bc3f1cddfb768881b395c4ac19c2.json b/sdk-details/sdks/flutter/data/engine/d33bbff47055bc3f1cddfb768881b395c4ac19c2.json similarity index 100% rename from flutter_hash/engine/d33bbff47055bc3f1cddfb768881b395c4ac19c2.json rename to sdk-details/sdks/flutter/data/engine/d33bbff47055bc3f1cddfb768881b395c4ac19c2.json diff --git a/flutter_hash/engine/d3d45dcf251823c1769909cd43698d126db38deb.json b/sdk-details/sdks/flutter/data/engine/d3d45dcf251823c1769909cd43698d126db38deb.json similarity index 100% rename from flutter_hash/engine/d3d45dcf251823c1769909cd43698d126db38deb.json rename to sdk-details/sdks/flutter/data/engine/d3d45dcf251823c1769909cd43698d126db38deb.json diff --git a/flutter_hash/engine/d3ea636dc5d16b56819f3266241e1f708979c233.json b/sdk-details/sdks/flutter/data/engine/d3ea636dc5d16b56819f3266241e1f708979c233.json similarity index 100% rename from flutter_hash/engine/d3ea636dc5d16b56819f3266241e1f708979c233.json rename to sdk-details/sdks/flutter/data/engine/d3ea636dc5d16b56819f3266241e1f708979c233.json diff --git a/flutter_hash/engine/d4453f601890ec682bbf8f5659b70f15cce1d67d.json b/sdk-details/sdks/flutter/data/engine/d4453f601890ec682bbf8f5659b70f15cce1d67d.json similarity index 100% rename from flutter_hash/engine/d4453f601890ec682bbf8f5659b70f15cce1d67d.json rename to sdk-details/sdks/flutter/data/engine/d4453f601890ec682bbf8f5659b70f15cce1d67d.json diff --git a/flutter_hash/engine/d44b5a94c976fbb65815374f61ab5392a220b084.json b/sdk-details/sdks/flutter/data/engine/d44b5a94c976fbb65815374f61ab5392a220b084.json similarity index 100% rename from flutter_hash/engine/d44b5a94c976fbb65815374f61ab5392a220b084.json rename to sdk-details/sdks/flutter/data/engine/d44b5a94c976fbb65815374f61ab5392a220b084.json diff --git a/flutter_hash/engine/d48085141c2f201b1c534e6926eb39bb52d9db3e.json b/sdk-details/sdks/flutter/data/engine/d48085141c2f201b1c534e6926eb39bb52d9db3e.json similarity index 100% rename from flutter_hash/engine/d48085141c2f201b1c534e6926eb39bb52d9db3e.json rename to sdk-details/sdks/flutter/data/engine/d48085141c2f201b1c534e6926eb39bb52d9db3e.json diff --git a/flutter_hash/engine/d4d4883216fd1c1dfc17d41418a960c002cfff57.json b/sdk-details/sdks/flutter/data/engine/d4d4883216fd1c1dfc17d41418a960c002cfff57.json similarity index 100% rename from flutter_hash/engine/d4d4883216fd1c1dfc17d41418a960c002cfff57.json rename to sdk-details/sdks/flutter/data/engine/d4d4883216fd1c1dfc17d41418a960c002cfff57.json diff --git a/flutter_hash/engine/d5adde01dd672ba4f6819d85218beb01142dca27.json b/sdk-details/sdks/flutter/data/engine/d5adde01dd672ba4f6819d85218beb01142dca27.json similarity index 100% rename from flutter_hash/engine/d5adde01dd672ba4f6819d85218beb01142dca27.json rename to sdk-details/sdks/flutter/data/engine/d5adde01dd672ba4f6819d85218beb01142dca27.json diff --git a/flutter_hash/engine/d6aa099de7c700e7ce44f4ddeb0fc1a078bd0067.json b/sdk-details/sdks/flutter/data/engine/d6aa099de7c700e7ce44f4ddeb0fc1a078bd0067.json similarity index 100% rename from flutter_hash/engine/d6aa099de7c700e7ce44f4ddeb0fc1a078bd0067.json rename to sdk-details/sdks/flutter/data/engine/d6aa099de7c700e7ce44f4ddeb0fc1a078bd0067.json diff --git a/flutter_hash/engine/d6ee1499c27a156a797d9f1539ffb7892855c1d0.json b/sdk-details/sdks/flutter/data/engine/d6ee1499c27a156a797d9f1539ffb7892855c1d0.json similarity index 100% rename from flutter_hash/engine/d6ee1499c27a156a797d9f1539ffb7892855c1d0.json rename to sdk-details/sdks/flutter/data/engine/d6ee1499c27a156a797d9f1539ffb7892855c1d0.json diff --git a/flutter_hash/engine/d7a00b8b09b09d299f12ff0709438896153082a6.json b/sdk-details/sdks/flutter/data/engine/d7a00b8b09b09d299f12ff0709438896153082a6.json similarity index 100% rename from flutter_hash/engine/d7a00b8b09b09d299f12ff0709438896153082a6.json rename to sdk-details/sdks/flutter/data/engine/d7a00b8b09b09d299f12ff0709438896153082a6.json diff --git a/flutter_hash/engine/d7ec7e8064d93a8d8bdd418103ec48cfafbc4841.json b/sdk-details/sdks/flutter/data/engine/d7ec7e8064d93a8d8bdd418103ec48cfafbc4841.json similarity index 100% rename from flutter_hash/engine/d7ec7e8064d93a8d8bdd418103ec48cfafbc4841.json rename to sdk-details/sdks/flutter/data/engine/d7ec7e8064d93a8d8bdd418103ec48cfafbc4841.json diff --git a/flutter_hash/engine/d8756bc5ef1a76d727745d21fd1cf195340c1020.json b/sdk-details/sdks/flutter/data/engine/d8756bc5ef1a76d727745d21fd1cf195340c1020.json similarity index 100% rename from flutter_hash/engine/d8756bc5ef1a76d727745d21fd1cf195340c1020.json rename to sdk-details/sdks/flutter/data/engine/d8756bc5ef1a76d727745d21fd1cf195340c1020.json diff --git a/flutter_hash/engine/d89dd85f25cf4a3e15465a59594f4125b7f48d39.json b/sdk-details/sdks/flutter/data/engine/d89dd85f25cf4a3e15465a59594f4125b7f48d39.json similarity index 100% rename from flutter_hash/engine/d89dd85f25cf4a3e15465a59594f4125b7f48d39.json rename to sdk-details/sdks/flutter/data/engine/d89dd85f25cf4a3e15465a59594f4125b7f48d39.json diff --git a/flutter_hash/engine/d96f962ca21a104b08836f34814eb6b267937511.json b/sdk-details/sdks/flutter/data/engine/d96f962ca21a104b08836f34814eb6b267937511.json similarity index 100% rename from flutter_hash/engine/d96f962ca21a104b08836f34814eb6b267937511.json rename to sdk-details/sdks/flutter/data/engine/d96f962ca21a104b08836f34814eb6b267937511.json diff --git a/flutter_hash/engine/db0cbb2145c227cdac34b7a6a866e274f06e6e12.json b/sdk-details/sdks/flutter/data/engine/db0cbb2145c227cdac34b7a6a866e274f06e6e12.json similarity index 100% rename from flutter_hash/engine/db0cbb2145c227cdac34b7a6a866e274f06e6e12.json rename to sdk-details/sdks/flutter/data/engine/db0cbb2145c227cdac34b7a6a866e274f06e6e12.json diff --git a/flutter_hash/engine/db373eb85a06eb3d706af362a45d42d0972f4b46.json b/sdk-details/sdks/flutter/data/engine/db373eb85a06eb3d706af362a45d42d0972f4b46.json similarity index 100% rename from flutter_hash/engine/db373eb85a06eb3d706af362a45d42d0972f4b46.json rename to sdk-details/sdks/flutter/data/engine/db373eb85a06eb3d706af362a45d42d0972f4b46.json diff --git a/flutter_hash/engine/db49896cf25ceabc44096d5f088d86414e05a7aa.json b/sdk-details/sdks/flutter/data/engine/db49896cf25ceabc44096d5f088d86414e05a7aa.json similarity index 100% rename from flutter_hash/engine/db49896cf25ceabc44096d5f088d86414e05a7aa.json rename to sdk-details/sdks/flutter/data/engine/db49896cf25ceabc44096d5f088d86414e05a7aa.json diff --git a/flutter_hash/engine/dc7b5eb89da31cddc2abc91aa5b30bcc6d66e70c.json b/sdk-details/sdks/flutter/data/engine/dc7b5eb89da31cddc2abc91aa5b30bcc6d66e70c.json similarity index 100% rename from flutter_hash/engine/dc7b5eb89da31cddc2abc91aa5b30bcc6d66e70c.json rename to sdk-details/sdks/flutter/data/engine/dc7b5eb89da31cddc2abc91aa5b30bcc6d66e70c.json diff --git a/flutter_hash/engine/dd6be2fd83710de8392fb554927a5d495684a13e.json b/sdk-details/sdks/flutter/data/engine/dd6be2fd83710de8392fb554927a5d495684a13e.json similarity index 100% rename from flutter_hash/engine/dd6be2fd83710de8392fb554927a5d495684a13e.json rename to sdk-details/sdks/flutter/data/engine/dd6be2fd83710de8392fb554927a5d495684a13e.json diff --git a/flutter_hash/engine/dd6f46c485192f4506035088c9065b9f5dbba9ab.json b/sdk-details/sdks/flutter/data/engine/dd6f46c485192f4506035088c9065b9f5dbba9ab.json similarity index 100% rename from flutter_hash/engine/dd6f46c485192f4506035088c9065b9f5dbba9ab.json rename to sdk-details/sdks/flutter/data/engine/dd6f46c485192f4506035088c9065b9f5dbba9ab.json diff --git a/flutter_hash/engine/dd93de6fb1776398bf586cbd477deade1391c7e4.json b/sdk-details/sdks/flutter/data/engine/dd93de6fb1776398bf586cbd477deade1391c7e4.json similarity index 100% rename from flutter_hash/engine/dd93de6fb1776398bf586cbd477deade1391c7e4.json rename to sdk-details/sdks/flutter/data/engine/dd93de6fb1776398bf586cbd477deade1391c7e4.json diff --git a/flutter_hash/engine/ddbac024d165c373396e1f125666848d1539a38d.json b/sdk-details/sdks/flutter/data/engine/ddbac024d165c373396e1f125666848d1539a38d.json similarity index 100% rename from flutter_hash/engine/ddbac024d165c373396e1f125666848d1539a38d.json rename to sdk-details/sdks/flutter/data/engine/ddbac024d165c373396e1f125666848d1539a38d.json diff --git a/flutter_hash/engine/ddf47dd3ff96dbde6d9c614db0d7f019d7c7a2b7.json b/sdk-details/sdks/flutter/data/engine/ddf47dd3ff96dbde6d9c614db0d7f019d7c7a2b7.json similarity index 100% rename from flutter_hash/engine/ddf47dd3ff96dbde6d9c614db0d7f019d7c7a2b7.json rename to sdk-details/sdks/flutter/data/engine/ddf47dd3ff96dbde6d9c614db0d7f019d7c7a2b7.json diff --git a/flutter_hash/engine/de4c7a53f21cd0d2dd1cce9ea000e7f6a5398c2f.json b/sdk-details/sdks/flutter/data/engine/de4c7a53f21cd0d2dd1cce9ea000e7f6a5398c2f.json similarity index 100% rename from flutter_hash/engine/de4c7a53f21cd0d2dd1cce9ea000e7f6a5398c2f.json rename to sdk-details/sdks/flutter/data/engine/de4c7a53f21cd0d2dd1cce9ea000e7f6a5398c2f.json diff --git a/flutter_hash/engine/de6e1adf9730aad8e531690d2b3752b663ebbdaa.json b/sdk-details/sdks/flutter/data/engine/de6e1adf9730aad8e531690d2b3752b663ebbdaa.json similarity index 100% rename from flutter_hash/engine/de6e1adf9730aad8e531690d2b3752b663ebbdaa.json rename to sdk-details/sdks/flutter/data/engine/de6e1adf9730aad8e531690d2b3752b663ebbdaa.json diff --git a/flutter_hash/engine/dec409804a77c9fc71d894d8c818682c744c78b6.json b/sdk-details/sdks/flutter/data/engine/dec409804a77c9fc71d894d8c818682c744c78b6.json similarity index 100% rename from flutter_hash/engine/dec409804a77c9fc71d894d8c818682c744c78b6.json rename to sdk-details/sdks/flutter/data/engine/dec409804a77c9fc71d894d8c818682c744c78b6.json diff --git a/flutter_hash/engine/defa8be2b10650dad50dfee9324ed8d16eeec13f.json b/sdk-details/sdks/flutter/data/engine/defa8be2b10650dad50dfee9324ed8d16eeec13f.json similarity index 100% rename from flutter_hash/engine/defa8be2b10650dad50dfee9324ed8d16eeec13f.json rename to sdk-details/sdks/flutter/data/engine/defa8be2b10650dad50dfee9324ed8d16eeec13f.json diff --git a/flutter_hash/engine/df257e59c24175e1f7181db7524c6df605e50031.json b/sdk-details/sdks/flutter/data/engine/df257e59c24175e1f7181db7524c6df605e50031.json similarity index 100% rename from flutter_hash/engine/df257e59c24175e1f7181db7524c6df605e50031.json rename to sdk-details/sdks/flutter/data/engine/df257e59c24175e1f7181db7524c6df605e50031.json diff --git a/flutter_hash/engine/df39e5c51517a73e61647286ab21252074512c63.json b/sdk-details/sdks/flutter/data/engine/df39e5c51517a73e61647286ab21252074512c63.json similarity index 100% rename from flutter_hash/engine/df39e5c51517a73e61647286ab21252074512c63.json rename to sdk-details/sdks/flutter/data/engine/df39e5c51517a73e61647286ab21252074512c63.json diff --git a/flutter_hash/engine/dff66925dcfaced89a892b75a695b2d05a676c5e.json b/sdk-details/sdks/flutter/data/engine/dff66925dcfaced89a892b75a695b2d05a676c5e.json similarity index 100% rename from flutter_hash/engine/dff66925dcfaced89a892b75a695b2d05a676c5e.json rename to sdk-details/sdks/flutter/data/engine/dff66925dcfaced89a892b75a695b2d05a676c5e.json diff --git a/flutter_hash/engine/e133da723c603eb43c5bf03aeb27e79c06a50e0c.json b/sdk-details/sdks/flutter/data/engine/e133da723c603eb43c5bf03aeb27e79c06a50e0c.json similarity index 100% rename from flutter_hash/engine/e133da723c603eb43c5bf03aeb27e79c06a50e0c.json rename to sdk-details/sdks/flutter/data/engine/e133da723c603eb43c5bf03aeb27e79c06a50e0c.json diff --git a/flutter_hash/engine/e136d637a87379658ee8f326c4e7875315d1f926.json b/sdk-details/sdks/flutter/data/engine/e136d637a87379658ee8f326c4e7875315d1f926.json similarity index 100% rename from flutter_hash/engine/e136d637a87379658ee8f326c4e7875315d1f926.json rename to sdk-details/sdks/flutter/data/engine/e136d637a87379658ee8f326c4e7875315d1f926.json diff --git a/flutter_hash/engine/e14db68a86199a9fa5fd9628d8e290aafc0f6917.json b/sdk-details/sdks/flutter/data/engine/e14db68a86199a9fa5fd9628d8e290aafc0f6917.json similarity index 100% rename from flutter_hash/engine/e14db68a86199a9fa5fd9628d8e290aafc0f6917.json rename to sdk-details/sdks/flutter/data/engine/e14db68a86199a9fa5fd9628d8e290aafc0f6917.json diff --git a/flutter_hash/engine/e1e6ced81d029258d449bdec2ba3cddca9c2ca0c.json b/sdk-details/sdks/flutter/data/engine/e1e6ced81d029258d449bdec2ba3cddca9c2ca0c.json similarity index 100% rename from flutter_hash/engine/e1e6ced81d029258d449bdec2ba3cddca9c2ca0c.json rename to sdk-details/sdks/flutter/data/engine/e1e6ced81d029258d449bdec2ba3cddca9c2ca0c.json diff --git a/flutter_hash/engine/e27c867c30dfa24461a9fab356ff57a4bb22650e.json b/sdk-details/sdks/flutter/data/engine/e27c867c30dfa24461a9fab356ff57a4bb22650e.json similarity index 100% rename from flutter_hash/engine/e27c867c30dfa24461a9fab356ff57a4bb22650e.json rename to sdk-details/sdks/flutter/data/engine/e27c867c30dfa24461a9fab356ff57a4bb22650e.json diff --git a/flutter_hash/engine/e28d26e3054ef005ec273fbedbaad257d5d393cf.json b/sdk-details/sdks/flutter/data/engine/e28d26e3054ef005ec273fbedbaad257d5d393cf.json similarity index 100% rename from flutter_hash/engine/e28d26e3054ef005ec273fbedbaad257d5d393cf.json rename to sdk-details/sdks/flutter/data/engine/e28d26e3054ef005ec273fbedbaad257d5d393cf.json diff --git a/flutter_hash/engine/e3559935720ea88dfcdf9079c394ffdb5146ceab.json b/sdk-details/sdks/flutter/data/engine/e3559935720ea88dfcdf9079c394ffdb5146ceab.json similarity index 100% rename from flutter_hash/engine/e3559935720ea88dfcdf9079c394ffdb5146ceab.json rename to sdk-details/sdks/flutter/data/engine/e3559935720ea88dfcdf9079c394ffdb5146ceab.json diff --git a/flutter_hash/engine/e3687f70c7ece72000b32ee1b3c02755ba5361ac.json b/sdk-details/sdks/flutter/data/engine/e3687f70c7ece72000b32ee1b3c02755ba5361ac.json similarity index 100% rename from flutter_hash/engine/e3687f70c7ece72000b32ee1b3c02755ba5361ac.json rename to sdk-details/sdks/flutter/data/engine/e3687f70c7ece72000b32ee1b3c02755ba5361ac.json diff --git a/flutter_hash/engine/e3772232c2d24c174beac7ef03dff63907cdda46.json b/sdk-details/sdks/flutter/data/engine/e3772232c2d24c174beac7ef03dff63907cdda46.json similarity index 100% rename from flutter_hash/engine/e3772232c2d24c174beac7ef03dff63907cdda46.json rename to sdk-details/sdks/flutter/data/engine/e3772232c2d24c174beac7ef03dff63907cdda46.json diff --git a/flutter_hash/engine/e39301f23f324d1685678bcbb1682643e22b3a67.json b/sdk-details/sdks/flutter/data/engine/e39301f23f324d1685678bcbb1682643e22b3a67.json similarity index 100% rename from flutter_hash/engine/e39301f23f324d1685678bcbb1682643e22b3a67.json rename to sdk-details/sdks/flutter/data/engine/e39301f23f324d1685678bcbb1682643e22b3a67.json diff --git a/flutter_hash/engine/e44cd55fc452ba5524147280c451fb3ace350ec4.json b/sdk-details/sdks/flutter/data/engine/e44cd55fc452ba5524147280c451fb3ace350ec4.json similarity index 100% rename from flutter_hash/engine/e44cd55fc452ba5524147280c451fb3ace350ec4.json rename to sdk-details/sdks/flutter/data/engine/e44cd55fc452ba5524147280c451fb3ace350ec4.json diff --git a/flutter_hash/engine/e4b8dca3f1b4ede4c30371002441c88c12187ed6.json b/sdk-details/sdks/flutter/data/engine/e4b8dca3f1b4ede4c30371002441c88c12187ed6.json similarity index 100% rename from flutter_hash/engine/e4b8dca3f1b4ede4c30371002441c88c12187ed6.json rename to sdk-details/sdks/flutter/data/engine/e4b8dca3f1b4ede4c30371002441c88c12187ed6.json diff --git a/flutter_hash/engine/e61bb9ac3a3fd789754e2e54220bcfc27076a857.json b/sdk-details/sdks/flutter/data/engine/e61bb9ac3a3fd789754e2e54220bcfc27076a857.json similarity index 100% rename from flutter_hash/engine/e61bb9ac3a3fd789754e2e54220bcfc27076a857.json rename to sdk-details/sdks/flutter/data/engine/e61bb9ac3a3fd789754e2e54220bcfc27076a857.json diff --git a/flutter_hash/engine/e672b006cb34c921db85b8e2f482ed3144a4574b.json b/sdk-details/sdks/flutter/data/engine/e672b006cb34c921db85b8e2f482ed3144a4574b.json similarity index 100% rename from flutter_hash/engine/e672b006cb34c921db85b8e2f482ed3144a4574b.json rename to sdk-details/sdks/flutter/data/engine/e672b006cb34c921db85b8e2f482ed3144a4574b.json diff --git a/flutter_hash/engine/e75f6de01fee738eb15f24efb0ec549587009f1a.json b/sdk-details/sdks/flutter/data/engine/e75f6de01fee738eb15f24efb0ec549587009f1a.json similarity index 100% rename from flutter_hash/engine/e75f6de01fee738eb15f24efb0ec549587009f1a.json rename to sdk-details/sdks/flutter/data/engine/e75f6de01fee738eb15f24efb0ec549587009f1a.json diff --git a/flutter_hash/engine/e76c956498841e1ab458577d3892003e553e4f3c.json b/sdk-details/sdks/flutter/data/engine/e76c956498841e1ab458577d3892003e553e4f3c.json similarity index 100% rename from flutter_hash/engine/e76c956498841e1ab458577d3892003e553e4f3c.json rename to sdk-details/sdks/flutter/data/engine/e76c956498841e1ab458577d3892003e553e4f3c.json diff --git a/flutter_hash/engine/e7939e091e2c995db93e8febd2814e9235225925.json b/sdk-details/sdks/flutter/data/engine/e7939e091e2c995db93e8febd2814e9235225925.json similarity index 100% rename from flutter_hash/engine/e7939e091e2c995db93e8febd2814e9235225925.json rename to sdk-details/sdks/flutter/data/engine/e7939e091e2c995db93e8febd2814e9235225925.json diff --git a/flutter_hash/engine/e7f9ef6aa0b9040102d1b3c9a6ae934df746ef94.json b/sdk-details/sdks/flutter/data/engine/e7f9ef6aa0b9040102d1b3c9a6ae934df746ef94.json similarity index 100% rename from flutter_hash/engine/e7f9ef6aa0b9040102d1b3c9a6ae934df746ef94.json rename to sdk-details/sdks/flutter/data/engine/e7f9ef6aa0b9040102d1b3c9a6ae934df746ef94.json diff --git a/flutter_hash/engine/e85ea0e79c6d894c120cda4ee8ee10fe6745e187.json b/sdk-details/sdks/flutter/data/engine/e85ea0e79c6d894c120cda4ee8ee10fe6745e187.json similarity index 100% rename from flutter_hash/engine/e85ea0e79c6d894c120cda4ee8ee10fe6745e187.json rename to sdk-details/sdks/flutter/data/engine/e85ea0e79c6d894c120cda4ee8ee10fe6745e187.json diff --git a/flutter_hash/engine/e8c13aa012c915c6a290d2a85950af67303e75f9.json b/sdk-details/sdks/flutter/data/engine/e8c13aa012c915c6a290d2a85950af67303e75f9.json similarity index 100% rename from flutter_hash/engine/e8c13aa012c915c6a290d2a85950af67303e75f9.json rename to sdk-details/sdks/flutter/data/engine/e8c13aa012c915c6a290d2a85950af67303e75f9.json diff --git a/flutter_hash/engine/e976be13c51448f89107d082ec81e2b6731671fa.json b/sdk-details/sdks/flutter/data/engine/e976be13c51448f89107d082ec81e2b6731671fa.json similarity index 100% rename from flutter_hash/engine/e976be13c51448f89107d082ec81e2b6731671fa.json rename to sdk-details/sdks/flutter/data/engine/e976be13c51448f89107d082ec81e2b6731671fa.json diff --git a/flutter_hash/engine/e9e4fda4a7ae5bc3e795bd17190fa7a9bc694b03.json b/sdk-details/sdks/flutter/data/engine/e9e4fda4a7ae5bc3e795bd17190fa7a9bc694b03.json similarity index 100% rename from flutter_hash/engine/e9e4fda4a7ae5bc3e795bd17190fa7a9bc694b03.json rename to sdk-details/sdks/flutter/data/engine/e9e4fda4a7ae5bc3e795bd17190fa7a9bc694b03.json diff --git a/flutter_hash/engine/e9eae9a1af77400d02c498f0ad943f2858845398.json b/sdk-details/sdks/flutter/data/engine/e9eae9a1af77400d02c498f0ad943f2858845398.json similarity index 100% rename from flutter_hash/engine/e9eae9a1af77400d02c498f0ad943f2858845398.json rename to sdk-details/sdks/flutter/data/engine/e9eae9a1af77400d02c498f0ad943f2858845398.json diff --git a/flutter_hash/engine/e9f57b5d0f56ea3288c7206f56717ca19ffe5358.json b/sdk-details/sdks/flutter/data/engine/e9f57b5d0f56ea3288c7206f56717ca19ffe5358.json similarity index 100% rename from flutter_hash/engine/e9f57b5d0f56ea3288c7206f56717ca19ffe5358.json rename to sdk-details/sdks/flutter/data/engine/e9f57b5d0f56ea3288c7206f56717ca19ffe5358.json diff --git a/flutter_hash/engine/ead227f118077d1f2b57842a32abaf105b573b8a.json b/sdk-details/sdks/flutter/data/engine/ead227f118077d1f2b57842a32abaf105b573b8a.json similarity index 100% rename from flutter_hash/engine/ead227f118077d1f2b57842a32abaf105b573b8a.json rename to sdk-details/sdks/flutter/data/engine/ead227f118077d1f2b57842a32abaf105b573b8a.json diff --git a/flutter_hash/engine/eb139936eb2c17694aba3fd922adfe8a85c5e8df.json b/sdk-details/sdks/flutter/data/engine/eb139936eb2c17694aba3fd922adfe8a85c5e8df.json similarity index 100% rename from flutter_hash/engine/eb139936eb2c17694aba3fd922adfe8a85c5e8df.json rename to sdk-details/sdks/flutter/data/engine/eb139936eb2c17694aba3fd922adfe8a85c5e8df.json diff --git a/flutter_hash/engine/ec611470b571c35156723a163fdcacd1f58b1809.json b/sdk-details/sdks/flutter/data/engine/ec611470b571c35156723a163fdcacd1f58b1809.json similarity index 100% rename from flutter_hash/engine/ec611470b571c35156723a163fdcacd1f58b1809.json rename to sdk-details/sdks/flutter/data/engine/ec611470b571c35156723a163fdcacd1f58b1809.json diff --git a/flutter_hash/engine/ec975089acb540fc60752606a3d3ba809dd1528b.json b/sdk-details/sdks/flutter/data/engine/ec975089acb540fc60752606a3d3ba809dd1528b.json similarity index 100% rename from flutter_hash/engine/ec975089acb540fc60752606a3d3ba809dd1528b.json rename to sdk-details/sdks/flutter/data/engine/ec975089acb540fc60752606a3d3ba809dd1528b.json diff --git a/flutter_hash/engine/ecc74c966d1433bf4f5e233a4aad17dfe8ce1bdd.json b/sdk-details/sdks/flutter/data/engine/ecc74c966d1433bf4f5e233a4aad17dfe8ce1bdd.json similarity index 100% rename from flutter_hash/engine/ecc74c966d1433bf4f5e233a4aad17dfe8ce1bdd.json rename to sdk-details/sdks/flutter/data/engine/ecc74c966d1433bf4f5e233a4aad17dfe8ce1bdd.json diff --git a/flutter_hash/engine/ed25e8f01efe6e778cdc65a1858ba3c5ce629786.json b/sdk-details/sdks/flutter/data/engine/ed25e8f01efe6e778cdc65a1858ba3c5ce629786.json similarity index 100% rename from flutter_hash/engine/ed25e8f01efe6e778cdc65a1858ba3c5ce629786.json rename to sdk-details/sdks/flutter/data/engine/ed25e8f01efe6e778cdc65a1858ba3c5ce629786.json diff --git a/flutter_hash/engine/edd8546116457bdf1c5bdfb13ecb9463d2bb5ed4.json b/sdk-details/sdks/flutter/data/engine/edd8546116457bdf1c5bdfb13ecb9463d2bb5ed4.json similarity index 100% rename from flutter_hash/engine/edd8546116457bdf1c5bdfb13ecb9463d2bb5ed4.json rename to sdk-details/sdks/flutter/data/engine/edd8546116457bdf1c5bdfb13ecb9463d2bb5ed4.json diff --git a/flutter_hash/engine/ee76268252c22f5c11e82a7b87423ca3982e51a7.json b/sdk-details/sdks/flutter/data/engine/ee76268252c22f5c11e82a7b87423ca3982e51a7.json similarity index 100% rename from flutter_hash/engine/ee76268252c22f5c11e82a7b87423ca3982e51a7.json rename to sdk-details/sdks/flutter/data/engine/ee76268252c22f5c11e82a7b87423ca3982e51a7.json diff --git a/flutter_hash/engine/eebc6a58958587203f624528ff46b1d4b2b0f2fa.json b/sdk-details/sdks/flutter/data/engine/eebc6a58958587203f624528ff46b1d4b2b0f2fa.json similarity index 100% rename from flutter_hash/engine/eebc6a58958587203f624528ff46b1d4b2b0f2fa.json rename to sdk-details/sdks/flutter/data/engine/eebc6a58958587203f624528ff46b1d4b2b0f2fa.json diff --git a/flutter_hash/engine/eec74e5c92313f01a28dfbeb78d96e81231edab7.json b/sdk-details/sdks/flutter/data/engine/eec74e5c92313f01a28dfbeb78d96e81231edab7.json similarity index 100% rename from flutter_hash/engine/eec74e5c92313f01a28dfbeb78d96e81231edab7.json rename to sdk-details/sdks/flutter/data/engine/eec74e5c92313f01a28dfbeb78d96e81231edab7.json diff --git a/flutter_hash/engine/ef0cd000916d64fa0c5d09cc809fa7ad244a5767.json b/sdk-details/sdks/flutter/data/engine/ef0cd000916d64fa0c5d09cc809fa7ad244a5767.json similarity index 100% rename from flutter_hash/engine/ef0cd000916d64fa0c5d09cc809fa7ad244a5767.json rename to sdk-details/sdks/flutter/data/engine/ef0cd000916d64fa0c5d09cc809fa7ad244a5767.json diff --git a/flutter_hash/engine/ef9215ceb2884ddf520d321bcd822d1461330876.json b/sdk-details/sdks/flutter/data/engine/ef9215ceb2884ddf520d321bcd822d1461330876.json similarity index 100% rename from flutter_hash/engine/ef9215ceb2884ddf520d321bcd822d1461330876.json rename to sdk-details/sdks/flutter/data/engine/ef9215ceb2884ddf520d321bcd822d1461330876.json diff --git a/flutter_hash/engine/effb529ecec86cbcad2ced2a567cb14ab20b10d5.json b/sdk-details/sdks/flutter/data/engine/effb529ecec86cbcad2ced2a567cb14ab20b10d5.json similarity index 100% rename from flutter_hash/engine/effb529ecec86cbcad2ced2a567cb14ab20b10d5.json rename to sdk-details/sdks/flutter/data/engine/effb529ecec86cbcad2ced2a567cb14ab20b10d5.json diff --git a/flutter_hash/engine/f001ea29f1b9664d928acfddbbd9c76a942e2238.json b/sdk-details/sdks/flutter/data/engine/f001ea29f1b9664d928acfddbbd9c76a942e2238.json similarity index 100% rename from flutter_hash/engine/f001ea29f1b9664d928acfddbbd9c76a942e2238.json rename to sdk-details/sdks/flutter/data/engine/f001ea29f1b9664d928acfddbbd9c76a942e2238.json diff --git a/flutter_hash/engine/f0826da7ef2d301eb8f4ead91aaf026aa2b52881.json b/sdk-details/sdks/flutter/data/engine/f0826da7ef2d301eb8f4ead91aaf026aa2b52881.json similarity index 100% rename from flutter_hash/engine/f0826da7ef2d301eb8f4ead91aaf026aa2b52881.json rename to sdk-details/sdks/flutter/data/engine/f0826da7ef2d301eb8f4ead91aaf026aa2b52881.json diff --git a/flutter_hash/engine/f15f824b57476e369b5e656f53d4c431c5b04b9a.json b/sdk-details/sdks/flutter/data/engine/f15f824b57476e369b5e656f53d4c431c5b04b9a.json similarity index 100% rename from flutter_hash/engine/f15f824b57476e369b5e656f53d4c431c5b04b9a.json rename to sdk-details/sdks/flutter/data/engine/f15f824b57476e369b5e656f53d4c431c5b04b9a.json diff --git a/flutter_hash/engine/f16e757d5d68c164d084b61d84e3b7cd14eacba9.json b/sdk-details/sdks/flutter/data/engine/f16e757d5d68c164d084b61d84e3b7cd14eacba9.json similarity index 100% rename from flutter_hash/engine/f16e757d5d68c164d084b61d84e3b7cd14eacba9.json rename to sdk-details/sdks/flutter/data/engine/f16e757d5d68c164d084b61d84e3b7cd14eacba9.json diff --git a/flutter_hash/engine/f1f19bba8f0089490962316867bd222727510ac5.json b/sdk-details/sdks/flutter/data/engine/f1f19bba8f0089490962316867bd222727510ac5.json similarity index 100% rename from flutter_hash/engine/f1f19bba8f0089490962316867bd222727510ac5.json rename to sdk-details/sdks/flutter/data/engine/f1f19bba8f0089490962316867bd222727510ac5.json diff --git a/flutter_hash/engine/f34bc65bee49e1ac33d7bab178d1e4b4dd346881.json b/sdk-details/sdks/flutter/data/engine/f34bc65bee49e1ac33d7bab178d1e4b4dd346881.json similarity index 100% rename from flutter_hash/engine/f34bc65bee49e1ac33d7bab178d1e4b4dd346881.json rename to sdk-details/sdks/flutter/data/engine/f34bc65bee49e1ac33d7bab178d1e4b4dd346881.json diff --git a/flutter_hash/engine/f3761ba8d01fc6213db44b702c3c38bfdc5c887a.json b/sdk-details/sdks/flutter/data/engine/f3761ba8d01fc6213db44b702c3c38bfdc5c887a.json similarity index 100% rename from flutter_hash/engine/f3761ba8d01fc6213db44b702c3c38bfdc5c887a.json rename to sdk-details/sdks/flutter/data/engine/f3761ba8d01fc6213db44b702c3c38bfdc5c887a.json diff --git a/flutter_hash/engine/f40b73f8a4d5bc2bf50b21e3c0fb478b8f282486.json b/sdk-details/sdks/flutter/data/engine/f40b73f8a4d5bc2bf50b21e3c0fb478b8f282486.json similarity index 100% rename from flutter_hash/engine/f40b73f8a4d5bc2bf50b21e3c0fb478b8f282486.json rename to sdk-details/sdks/flutter/data/engine/f40b73f8a4d5bc2bf50b21e3c0fb478b8f282486.json diff --git a/flutter_hash/engine/f40e976bedff57e69e1b3d89a7c2a3c617a03dad.json b/sdk-details/sdks/flutter/data/engine/f40e976bedff57e69e1b3d89a7c2a3c617a03dad.json similarity index 100% rename from flutter_hash/engine/f40e976bedff57e69e1b3d89a7c2a3c617a03dad.json rename to sdk-details/sdks/flutter/data/engine/f40e976bedff57e69e1b3d89a7c2a3c617a03dad.json diff --git a/flutter_hash/engine/f43bd5c131fd7baae97c31896004d45f85bde6a7.json b/sdk-details/sdks/flutter/data/engine/f43bd5c131fd7baae97c31896004d45f85bde6a7.json similarity index 100% rename from flutter_hash/engine/f43bd5c131fd7baae97c31896004d45f85bde6a7.json rename to sdk-details/sdks/flutter/data/engine/f43bd5c131fd7baae97c31896004d45f85bde6a7.json diff --git a/flutter_hash/engine/f4951df193a7966f9ed4da43d555eee0913d84d1.json b/sdk-details/sdks/flutter/data/engine/f4951df193a7966f9ed4da43d555eee0913d84d1.json similarity index 100% rename from flutter_hash/engine/f4951df193a7966f9ed4da43d555eee0913d84d1.json rename to sdk-details/sdks/flutter/data/engine/f4951df193a7966f9ed4da43d555eee0913d84d1.json diff --git a/flutter_hash/engine/f52c0b9270de3b2fc3e2785dfa7355e70a0b5fc7.json b/sdk-details/sdks/flutter/data/engine/f52c0b9270de3b2fc3e2785dfa7355e70a0b5fc7.json similarity index 100% rename from flutter_hash/engine/f52c0b9270de3b2fc3e2785dfa7355e70a0b5fc7.json rename to sdk-details/sdks/flutter/data/engine/f52c0b9270de3b2fc3e2785dfa7355e70a0b5fc7.json diff --git a/flutter_hash/engine/f56e678e7fa9f1249253f06c8c0797ddc67a9df2.json b/sdk-details/sdks/flutter/data/engine/f56e678e7fa9f1249253f06c8c0797ddc67a9df2.json similarity index 100% rename from flutter_hash/engine/f56e678e7fa9f1249253f06c8c0797ddc67a9df2.json rename to sdk-details/sdks/flutter/data/engine/f56e678e7fa9f1249253f06c8c0797ddc67a9df2.json diff --git a/flutter_hash/engine/f613b678245991e74839f201ecd3f22b75465813.json b/sdk-details/sdks/flutter/data/engine/f613b678245991e74839f201ecd3f22b75465813.json similarity index 100% rename from flutter_hash/engine/f613b678245991e74839f201ecd3f22b75465813.json rename to sdk-details/sdks/flutter/data/engine/f613b678245991e74839f201ecd3f22b75465813.json diff --git a/flutter_hash/engine/f6344b75dcf861d8bf1f1322780b8811f982e31a.json b/sdk-details/sdks/flutter/data/engine/f6344b75dcf861d8bf1f1322780b8811f982e31a.json similarity index 100% rename from flutter_hash/engine/f6344b75dcf861d8bf1f1322780b8811f982e31a.json rename to sdk-details/sdks/flutter/data/engine/f6344b75dcf861d8bf1f1322780b8811f982e31a.json diff --git a/flutter_hash/engine/f6af1f20ba92a819401d66ae4b2179b0775b0e12.json b/sdk-details/sdks/flutter/data/engine/f6af1f20ba92a819401d66ae4b2179b0775b0e12.json similarity index 100% rename from flutter_hash/engine/f6af1f20ba92a819401d66ae4b2179b0775b0e12.json rename to sdk-details/sdks/flutter/data/engine/f6af1f20ba92a819401d66ae4b2179b0775b0e12.json diff --git a/flutter_hash/engine/f73bfc4522dd0bc87bbcdb4bb3088082755c5e87.json b/sdk-details/sdks/flutter/data/engine/f73bfc4522dd0bc87bbcdb4bb3088082755c5e87.json similarity index 100% rename from flutter_hash/engine/f73bfc4522dd0bc87bbcdb4bb3088082755c5e87.json rename to sdk-details/sdks/flutter/data/engine/f73bfc4522dd0bc87bbcdb4bb3088082755c5e87.json diff --git a/flutter_hash/engine/f763b5b9b936872bc6c84b4395286ce684e3b431.json b/sdk-details/sdks/flutter/data/engine/f763b5b9b936872bc6c84b4395286ce684e3b431.json similarity index 100% rename from flutter_hash/engine/f763b5b9b936872bc6c84b4395286ce684e3b431.json rename to sdk-details/sdks/flutter/data/engine/f763b5b9b936872bc6c84b4395286ce684e3b431.json diff --git a/flutter_hash/engine/f7ac42e8a273548af89f8b005179bf2b4b1bb2f1.json b/sdk-details/sdks/flutter/data/engine/f7ac42e8a273548af89f8b005179bf2b4b1bb2f1.json similarity index 100% rename from flutter_hash/engine/f7ac42e8a273548af89f8b005179bf2b4b1bb2f1.json rename to sdk-details/sdks/flutter/data/engine/f7ac42e8a273548af89f8b005179bf2b4b1bb2f1.json diff --git a/flutter_hash/engine/f85f6b62b6db2a8725cafa75360ec960d581a809.json b/sdk-details/sdks/flutter/data/engine/f85f6b62b6db2a8725cafa75360ec960d581a809.json similarity index 100% rename from flutter_hash/engine/f85f6b62b6db2a8725cafa75360ec960d581a809.json rename to sdk-details/sdks/flutter/data/engine/f85f6b62b6db2a8725cafa75360ec960d581a809.json diff --git a/flutter_hash/engine/f8c4546eb44556ea40efdf4b108cb11477266a5e.json b/sdk-details/sdks/flutter/data/engine/f8c4546eb44556ea40efdf4b108cb11477266a5e.json similarity index 100% rename from flutter_hash/engine/f8c4546eb44556ea40efdf4b108cb11477266a5e.json rename to sdk-details/sdks/flutter/data/engine/f8c4546eb44556ea40efdf4b108cb11477266a5e.json diff --git a/flutter_hash/engine/fad1b23c42b96197a097fe42d37171f32459fecb.json b/sdk-details/sdks/flutter/data/engine/fad1b23c42b96197a097fe42d37171f32459fecb.json similarity index 100% rename from flutter_hash/engine/fad1b23c42b96197a097fe42d37171f32459fecb.json rename to sdk-details/sdks/flutter/data/engine/fad1b23c42b96197a097fe42d37171f32459fecb.json diff --git a/flutter_hash/engine/fb9b91428b4401fee584934f4c7ffc90ff84581b.json b/sdk-details/sdks/flutter/data/engine/fb9b91428b4401fee584934f4c7ffc90ff84581b.json similarity index 100% rename from flutter_hash/engine/fb9b91428b4401fee584934f4c7ffc90ff84581b.json rename to sdk-details/sdks/flutter/data/engine/fb9b91428b4401fee584934f4c7ffc90ff84581b.json diff --git a/flutter_hash/engine/fbeb7e22bd6d594a16c487cc138970fbd2a77d40.json b/sdk-details/sdks/flutter/data/engine/fbeb7e22bd6d594a16c487cc138970fbd2a77d40.json similarity index 100% rename from flutter_hash/engine/fbeb7e22bd6d594a16c487cc138970fbd2a77d40.json rename to sdk-details/sdks/flutter/data/engine/fbeb7e22bd6d594a16c487cc138970fbd2a77d40.json diff --git a/flutter_hash/engine/fc5b44c901ceb37d3f98715b2b9d857ca64e4db6.json b/sdk-details/sdks/flutter/data/engine/fc5b44c901ceb37d3f98715b2b9d857ca64e4db6.json similarity index 100% rename from flutter_hash/engine/fc5b44c901ceb37d3f98715b2b9d857ca64e4db6.json rename to sdk-details/sdks/flutter/data/engine/fc5b44c901ceb37d3f98715b2b9d857ca64e4db6.json diff --git a/flutter_hash/engine/fcde2c8b2f0891c80e1f0f794bc7c26dd50f2949.json b/sdk-details/sdks/flutter/data/engine/fcde2c8b2f0891c80e1f0f794bc7c26dd50f2949.json similarity index 100% rename from flutter_hash/engine/fcde2c8b2f0891c80e1f0f794bc7c26dd50f2949.json rename to sdk-details/sdks/flutter/data/engine/fcde2c8b2f0891c80e1f0f794bc7c26dd50f2949.json diff --git a/flutter_hash/engine/fd131c385ee2a2d0484c49ed859911798e4e177b.json b/sdk-details/sdks/flutter/data/engine/fd131c385ee2a2d0484c49ed859911798e4e177b.json similarity index 100% rename from flutter_hash/engine/fd131c385ee2a2d0484c49ed859911798e4e177b.json rename to sdk-details/sdks/flutter/data/engine/fd131c385ee2a2d0484c49ed859911798e4e177b.json diff --git a/flutter_hash/engine/fd269f60bfc6fffba5ca9598761361d1f5ed6105.json b/sdk-details/sdks/flutter/data/engine/fd269f60bfc6fffba5ca9598761361d1f5ed6105.json similarity index 100% rename from flutter_hash/engine/fd269f60bfc6fffba5ca9598761361d1f5ed6105.json rename to sdk-details/sdks/flutter/data/engine/fd269f60bfc6fffba5ca9598761361d1f5ed6105.json diff --git a/flutter_hash/engine/fdd427241b7790a1ad86794725b311245ed3b470.json b/sdk-details/sdks/flutter/data/engine/fdd427241b7790a1ad86794725b311245ed3b470.json similarity index 100% rename from flutter_hash/engine/fdd427241b7790a1ad86794725b311245ed3b470.json rename to sdk-details/sdks/flutter/data/engine/fdd427241b7790a1ad86794725b311245ed3b470.json diff --git a/flutter_hash/engine/fe14e03236ca03f4c98056fbccd66e89b5281e15.json b/sdk-details/sdks/flutter/data/engine/fe14e03236ca03f4c98056fbccd66e89b5281e15.json similarity index 100% rename from flutter_hash/engine/fe14e03236ca03f4c98056fbccd66e89b5281e15.json rename to sdk-details/sdks/flutter/data/engine/fe14e03236ca03f4c98056fbccd66e89b5281e15.json diff --git a/flutter_hash/engine/fee001c93f25a1e7258e762781a7361f122d29f5.json b/sdk-details/sdks/flutter/data/engine/fee001c93f25a1e7258e762781a7361f122d29f5.json similarity index 100% rename from flutter_hash/engine/fee001c93f25a1e7258e762781a7361f122d29f5.json rename to sdk-details/sdks/flutter/data/engine/fee001c93f25a1e7258e762781a7361f122d29f5.json diff --git a/flutter_hash/engine/fee6f9e5333472a1931d00f521252901d60e0c76.json b/sdk-details/sdks/flutter/data/engine/fee6f9e5333472a1931d00f521252901d60e0c76.json similarity index 100% rename from flutter_hash/engine/fee6f9e5333472a1931d00f521252901d60e0c76.json rename to sdk-details/sdks/flutter/data/engine/fee6f9e5333472a1931d00f521252901d60e0c76.json diff --git a/flutter_hash/engine/ff1bcdc00941188ba27123a4857b443e3c9392bb.json b/sdk-details/sdks/flutter/data/engine/ff1bcdc00941188ba27123a4857b443e3c9392bb.json similarity index 100% rename from flutter_hash/engine/ff1bcdc00941188ba27123a4857b443e3c9392bb.json rename to sdk-details/sdks/flutter/data/engine/ff1bcdc00941188ba27123a4857b443e3c9392bb.json diff --git a/flutter_hash/engine/ffe7b86a1e5b5cb63c8385ae1adc759e372ee8f4.json b/sdk-details/sdks/flutter/data/engine/ffe7b86a1e5b5cb63c8385ae1adc759e372ee8f4.json similarity index 100% rename from flutter_hash/engine/ffe7b86a1e5b5cb63c8385ae1adc759e372ee8f4.json rename to sdk-details/sdks/flutter/data/engine/ffe7b86a1e5b5cb63c8385ae1adc759e372ee8f4.json diff --git a/sdk-details/sdks/flutter/definition.json b/sdk-details/sdks/flutter/definition.json new file mode 100644 index 00000000..e8c8969e --- /dev/null +++ b/sdk-details/sdks/flutter/definition.json @@ -0,0 +1,111 @@ +{ + "schema_version": 1, + "sdk_id": "flutter", + "target_uuids": [ + "AEF9680F-4A43-4EDC-A5B8-8119D23BCD21" + ], + "probes": [ + { + "id": "flutter_engine", + "source": { + "operator": "package_file", + "file_name": "libflutter.so", + "archive_paths": [ + "lib/arm64-v8a/libflutter.so", + "lib/armeabi-v7a/libflutter.so", + "lib/x86_64/libflutter.so", + "lib/x86/libflutter.so" + ] + }, + "reader": { + "operator": "ascii_strings", + "max_bytes_per_file": 67108864, + "max_total_bytes": 134217728 + }, + "captures": [ + { + "output": "engine_revisions", + "type": "sha1", + "max_results": 2 + }, + { + "output": "dart_versions", + "type": "semver_channel", + "max_results": 2 + } + ] + } + ], + "lookups": [ + { + "input": "engine_revisions", + "path_template": "sdk-details/sdks/flutter/data/engine/{value}.json", + "expected_field": "engine", + "items_field": "releases", + "max_requests": 2, + "max_items": 20, + "outputs": [ + { + "output": "flutter_versions", + "field": "flutter" + }, + { + "output": "dart_versions", + "field": "dart" + }, + { + "output": "channels", + "field": "channel" + }, + { + "output": "framework_revisions", + "field": "framework" + } + ] + } + ], + "presentation": { + "summary": [ + { + "label": { + "default": "Flutter" + }, + "source": "flutter_versions", + "max_values": 3 + }, + { + "label": { + "default": "Dart" + }, + "source": "dart_versions", + "max_values": 3 + } + ], + "details": [ + { + "label": { + "default": "Channel", + "zh-Hans": "渠道" + }, + "source": "channels", + "max_values": 3 + }, + { + "label": { + "default": "Engine revision", + "zh-Hans": "引擎版本" + }, + "source": "engine_revisions", + "max_values": 2 + }, + { + "label": { + "default": "Framework revision", + "zh-Hans": "框架版本" + }, + "source": "framework_revisions", + "max_values": 3 + } + ] + } +} diff --git a/flutter_hash/tools/fetcher.py b/sdk-details/sdks/flutter/provider.py similarity index 94% rename from flutter_hash/tools/fetcher.py rename to sdk-details/sdks/flutter/provider.py index 6abacf65..2ce733db 100644 --- a/flutter_hash/tools/fetcher.py +++ b/sdk-details/sdks/flutter/provider.py @@ -5,13 +5,9 @@ from concurrent.futures import ThreadPoolExecutor, as_completed from pathlib import Path -import requests -from requests.adapters import HTTPAdapter -from urllib3.util.retry import Retry - - -FLUTTER_HASH_DIR = Path(__file__).resolve().parent.parent -ENGINE_DIR = FLUTTER_HASH_DIR / "engine" +SDK_DIR = Path(__file__).resolve().parent +ENGINE_DIR = SDK_DIR / "data" / "engine" +SDK_ID = "flutter" RELEASE_INDEX_URLS = ( "https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json", "https://storage.googleapis.com/flutter_infra_release/releases/releases_macos.json", @@ -29,6 +25,10 @@ def create_session(): + import requests + from requests.adapters import HTTPAdapter + from urllib3.util.retry import Retry + session = requests.Session() retry = Retry( total=4, @@ -239,18 +239,17 @@ def parse_args(): return parser.parse_args() -def main(): - args = parse_args() - if args.check: - mappings, _ = load_existing_mappings(ENGINE_DIR) - if not mappings: - raise ValueError(f"No engine mappings found in {ENGINE_DIR}") - print( - f"Validated {len(mappings)} engine mappings for " - f"{sum(len(item['releases']) for item in mappings.values())} releases" - ) - return +def validate(): + mappings, _ = load_existing_mappings(ENGINE_DIR) + if not mappings: + raise ValueError(f"No engine mappings found in {ENGINE_DIR}") + print( + f"Validated {len(mappings)} engine mappings for " + f"{sum(len(item['releases']) for item in mappings.values())} releases" + ) + +def update(): session = create_session() official_releases = collect_official_releases(session) existing_mappings, framework_to_engine = load_existing_mappings(ENGINE_DIR) @@ -264,5 +263,13 @@ def main(): ) +def main(): + args = parse_args() + if args.check: + validate() + else: + update() + + if __name__ == "__main__": main() diff --git a/flutter_hash/tools/test_fetcher.py b/sdk-details/sdks/flutter/tests/test_provider.py similarity index 91% rename from flutter_hash/tools/test_fetcher.py rename to sdk-details/sdks/flutter/tests/test_provider.py index bfdf600d..340b0469 100644 --- a/flutter_hash/tools/test_fetcher.py +++ b/sdk-details/sdks/flutter/tests/test_provider.py @@ -1,9 +1,11 @@ import json +import sys import tempfile import unittest from pathlib import Path -import fetcher +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) +import provider class FetcherTest(unittest.TestCase): @@ -46,7 +48,7 @@ def resolver(framework): calls.append(framework) return resolved[framework] - mappings = fetcher.build_mappings( + mappings = provider.build_mappings( official, existing, {framework_old: engine_a}, @@ -62,7 +64,7 @@ def resolver(framework): with tempfile.TemporaryDirectory() as directory: output = Path(directory) - fetcher.write_mappings(mappings, output) + provider.write_mappings(mappings, output) written = json.loads((output / f"{engine_a}.json").read_text()) self.assertEqual(engine_a, written["engine"]) self.assertEqual(2, len(written["releases"])) @@ -74,7 +76,7 @@ def test_rejects_mismatched_engine_filename(self): json.dumps({"engine": "b" * 40, "releases": []}) ) with self.assertRaises(ValueError): - fetcher.load_existing_mappings(engine_dir) + provider.load_existing_mappings(engine_dir) def test_preserves_historical_release_missing_from_official_index(self): engine = "a" * 40 @@ -95,7 +97,7 @@ def test_preserves_historical_release_missing_from_official_index(self): } } - mappings = fetcher.build_mappings( + mappings = provider.build_mappings( {current_framework: self.release(current_framework, "2.0.0", "3.0.0")}, existing, {historical_framework: engine}, @@ -126,8 +128,8 @@ def test_write_skips_unchanged_mapping(self): } with tempfile.TemporaryDirectory() as directory: output = Path(directory) - self.assertEqual(1, fetcher.write_mappings(mappings, output)) - self.assertEqual(0, fetcher.write_mappings(mappings, output)) + self.assertEqual(1, provider.write_mappings(mappings, output)) + self.assertEqual(0, provider.write_mappings(mappings, output)) def test_rejects_duplicate_framework_across_engines(self): framework = "1" * 40 @@ -147,7 +149,7 @@ def test_rejects_duplicate_framework_across_engines(self): for engine, version in (("a" * 40, "1.0.0"), ("b" * 40, "2.0.0")) } with self.assertRaises(ValueError): - fetcher.validate_mappings(mappings) + provider.validate_mappings(mappings) @staticmethod def release(framework, version, dart): diff --git a/sdk-details/tools/test.py b/sdk-details/tools/test.py new file mode 100644 index 00000000..adc7fbf5 --- /dev/null +++ b/sdk-details/tools/test.py @@ -0,0 +1,30 @@ +import sys +import unittest +from pathlib import Path + + +SDK_DETAILS_DIR = Path(__file__).resolve().parents[1] + + +def main(): + suite = unittest.TestSuite() + test_directories = sorted( + path for path in SDK_DETAILS_DIR.rglob("tests") if path.is_dir() + ) + for directory in test_directories: + suite.addTests( + unittest.defaultTestLoader.discover( + start_dir=str(directory), + pattern="test_*.py", + top_level_dir=str(directory), + ) + ) + result = unittest.TextTestRunner(verbosity=2).run(suite) + if result.testsRun == 0: + raise RuntimeError("No SDK details tests were discovered") + if not result.wasSuccessful(): + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/sdk-details/tools/tests/test_validate.py b/sdk-details/tools/tests/test_validate.py new file mode 100644 index 00000000..36bc0275 --- /dev/null +++ b/sdk-details/tools/tests/test_validate.py @@ -0,0 +1,32 @@ +import json +import sys +import tempfile +import unittest +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) +import validate + + +class ValidateTest(unittest.TestCase): + def test_rejects_remote_path_escape(self): + for value in ( + "../sdk-details/config.json", + "sdk-details/../secret.json", + "https://example.com/config.json", + "sdk-details\\config.json", + ): + with self.subTest(value=value), self.assertRaises(ValueError): + validate.validate_remote_path(value, "test path") + + def test_catalog_is_deterministic(self): + first = validate.serialized_catalog() + second = validate.serialized_catalog() + self.assertEqual(first, second) + catalog = json.loads(first) + self.assertEqual(1, catalog["schema_version"]) + self.assertEqual("flutter", catalog["entries"][0]["sdk_id"]) + + +if __name__ == "__main__": + unittest.main() diff --git a/sdk-details/tools/update.py b/sdk-details/tools/update.py new file mode 100644 index 00000000..68859afb --- /dev/null +++ b/sdk-details/tools/update.py @@ -0,0 +1,65 @@ +import argparse +import importlib.util +from pathlib import Path + +import validate + + +SDKS_DIR = Path(__file__).resolve().parents[1] / "sdks" + + +def load_providers(): + providers = {} + for path in sorted(SDKS_DIR.glob("*/provider.py")): + module_name = f"sdk_details_provider_{path.parent.name}" + spec = importlib.util.spec_from_file_location(module_name, path) + if spec is None or spec.loader is None: + raise ValueError(f"Unable to load provider: {path}") + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + sdk_id = getattr(module, "SDK_ID", None) + if sdk_id != path.parent.name: + raise ValueError(f"Provider SDK_ID must match directory name: {path}") + if sdk_id in providers: + raise ValueError(f"Duplicate SDK details provider: {sdk_id}") + if not callable(getattr(module, "update", None)) or not callable( + getattr(module, "validate", None) + ): + raise ValueError(f"Provider must expose update() and validate(): {path}") + providers[sdk_id] = module + return providers + + +def main(): + parser = argparse.ArgumentParser(description="Update generated SDK detail data") + selection = parser.add_mutually_exclusive_group() + selection.add_argument("--all", action="store_true", help="update every provider") + selection.add_argument("--sdk", help="update one SDK provider") + selection.add_argument("--check", action="store_true", help="validate without network access") + args = parser.parse_args() + + providers = load_providers() + if args.check: + for provider in providers.values(): + provider.validate() + validate.check_catalog() + return + + selected = providers + if args.sdk: + if args.sdk not in providers: + raise ValueError(f"Unknown SDK details provider: {args.sdk}") + selected = {args.sdk: providers[args.sdk]} + elif not args.all: + parser.error("choose --all, --sdk, or --check") + + validate.write_catalog() + for sdk_id, provider in selected.items(): + print(f"Updating SDK details provider: {sdk_id}") + provider.update() + provider.validate() + validate.check_catalog() + + +if __name__ == "__main__": + main() diff --git a/sdk-details/tools/validate.py b/sdk-details/tools/validate.py new file mode 100644 index 00000000..0ce4a5b4 --- /dev/null +++ b/sdk-details/tools/validate.py @@ -0,0 +1,244 @@ +import argparse +import json +import re +from pathlib import Path, PurePosixPath + + +ROOT = Path(__file__).resolve().parents[2] +SDK_DETAILS_DIR = ROOT / "sdk-details" +SDKS_DIR = SDK_DETAILS_DIR / "sdks" +CATALOG_PATH = SDK_DETAILS_DIR / "catalog.json" +UUID_PATTERN = re.compile( + r"^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$" +) +SDK_ID_PATTERN = re.compile(r"^[a-z0-9][a-z0-9_-]{0,63}$") +SUPPORTED_SOURCE_OPERATORS = {"package_file"} +SUPPORTED_READER_OPERATORS = {"ascii_strings"} +SUPPORTED_CAPTURE_TYPES = {"sha1", "semver_channel"} +MAX_TARGET_UUIDS = 32 +MAX_CATALOG_ENTRIES = 128 +MAX_FILE_NAME_LENGTH = 128 +MAX_ARCHIVE_PATH_LENGTH = 256 +MAX_LABELS = 16 +MAX_LABEL_LENGTH = 80 + + +def load_json(path): + with path.open(encoding="utf-8") as source: + return json.load(source) + + +def validate_remote_path(value, field): + if not isinstance(value, str) or not value.startswith("sdk-details/"): + raise ValueError(f"{field} must stay under sdk-details/: {value!r}") + path = PurePosixPath(value) + if path.is_absolute() or ".." in path.parts or "://" in value or "\\" in value: + raise ValueError(f"Unsafe {field}: {value!r}") + + +def require_int(value, field, minimum, maximum): + if not isinstance(value, int) or not minimum <= value <= maximum: + raise ValueError(f"Invalid {field}: {value!r}") + + +def validate_definition(path, data): + if data.get("schema_version") != 1: + raise ValueError(f"Unsupported schema_version in {path}") + sdk_id = data.get("sdk_id") + if not isinstance(sdk_id, str) or not SDK_ID_PATTERN.fullmatch(sdk_id): + raise ValueError(f"Invalid sdk_id in {path}: {sdk_id!r}") + if path.parent.name != sdk_id: + raise ValueError(f"sdk_id must match directory name in {path}") + + target_uuids = data.get("target_uuids") + if ( + not isinstance(target_uuids, list) + or not target_uuids + or len(target_uuids) > MAX_TARGET_UUIDS + ): + raise ValueError(f"target_uuids must be a non-empty list in {path}") + if len(target_uuids) != len(set(target_uuids)): + raise ValueError(f"Duplicate target UUID in {path}") + for target_uuid in target_uuids: + if not isinstance(target_uuid, str) or not UUID_PATTERN.fullmatch(target_uuid): + raise ValueError(f"Invalid target UUID in {path}: {target_uuid!r}") + + outputs = set() + probes = data.get("probes") + if not isinstance(probes, list) or not 1 <= len(probes) <= 8: + raise ValueError(f"Invalid probes in {path}") + for probe in probes: + probe_id = probe.get("id") + if not isinstance(probe_id, str) or not SDK_ID_PATTERN.fullmatch(probe_id): + raise ValueError(f"Invalid probe id in {path}") + source = probe.get("source", {}) + reader = probe.get("reader", {}) + if source.get("operator") not in SUPPORTED_SOURCE_OPERATORS: + raise ValueError(f"Unsupported source operator in {path}") + if reader.get("operator") not in SUPPORTED_READER_OPERATORS: + raise ValueError(f"Unsupported reader operator in {path}") + file_name = source.get("file_name") + if ( + not isinstance(file_name, str) + or not file_name + or len(file_name) > MAX_FILE_NAME_LENGTH + or "/" in file_name + or "\\" in file_name + ): + raise ValueError(f"Invalid package file name in {path}") + archive_paths = source.get("archive_paths") + if not isinstance(archive_paths, list) or not 1 <= len(archive_paths) <= 16: + raise ValueError(f"Invalid archive paths in {path}") + if len(archive_paths) != len(set(archive_paths)): + raise ValueError(f"Duplicate archive path in {path}") + for archive_path in archive_paths: + if ( + not isinstance(archive_path, str) + or not archive_path + or len(archive_path) > MAX_ARCHIVE_PATH_LENGTH + or archive_path.startswith("/") + or ".." in PurePosixPath(archive_path).parts + or "\\" in archive_path + ): + raise ValueError(f"Unsafe archive path in {path}: {archive_path!r}") + require_int(reader.get("max_bytes_per_file"), "max_bytes_per_file", 1, 64 * 1024 * 1024) + require_int(reader.get("max_total_bytes"), "max_total_bytes", 1, 128 * 1024 * 1024) + captures = probe.get("captures") + if not isinstance(captures, list) or not 1 <= len(captures) <= 8: + raise ValueError(f"Invalid captures in {path}") + for capture in captures: + output = capture.get("output") + if not isinstance(output, str) or not SDK_ID_PATTERN.fullmatch(output): + raise ValueError(f"Invalid capture output in {path}") + if capture.get("type") not in SUPPORTED_CAPTURE_TYPES: + raise ValueError(f"Unsupported capture type in {path}") + require_int(capture.get("max_results"), "max_results", 1, 16) + outputs.add(output) + + lookups = data.get("lookups", []) + if not isinstance(lookups, list) or len(lookups) > 8: + raise ValueError(f"Invalid lookups in {path}") + for lookup in lookups: + if lookup.get("input") not in outputs: + raise ValueError(f"Lookup input is not produced in {path}") + validate_remote_path(lookup.get("path_template"), "path_template") + if lookup["path_template"].count("{value}") != 1: + raise ValueError(f"path_template must contain one {{value}} in {path}") + require_int(lookup.get("max_requests"), "max_requests", 1, 4) + require_int(lookup.get("max_items"), "max_items", 1, 50) + for field_name in ("expected_field", "items_field"): + field_value = lookup.get(field_name) + if field_value is not None and ( + not isinstance(field_value, str) + or not SDK_ID_PATTERN.fullmatch(field_value) + ): + raise ValueError(f"Invalid {field_name} in {path}") + lookup_outputs = lookup.get("outputs") + if not isinstance(lookup_outputs, list) or not 1 <= len(lookup_outputs) <= 16: + raise ValueError(f"Invalid lookup outputs in {path}") + for output_mapping in lookup_outputs: + output = output_mapping.get("output") + field = output_mapping.get("field") + if not isinstance(output, str) or not SDK_ID_PATTERN.fullmatch(output): + raise ValueError(f"Invalid lookup output in {path}") + if not isinstance(field, str) or not SDK_ID_PATTERN.fullmatch(field): + raise ValueError(f"Invalid lookup field in {path}") + outputs.add(output) + + presentation = data.get("presentation", {}) + summary = presentation.get("summary") + details = presentation.get("details", []) + if not isinstance(summary, list) or not 1 <= len(summary) <= 2: + raise ValueError(f"Presentation summary must contain one or two fields in {path}") + if not isinstance(details, list) or len(details) > 8: + raise ValueError(f"Invalid presentation details in {path}") + for item in summary + details: + labels = item.get("label") + if not isinstance(labels, dict) or not isinstance(labels.get("default"), str): + raise ValueError(f"Presentation label requires a default value in {path}") + if not 1 <= len(labels) <= MAX_LABELS or any( + not isinstance(label, str) + or not label + or len(label) > MAX_LABEL_LENGTH + for label in labels.values() + ): + raise ValueError(f"Invalid presentation labels in {path}") + if item.get("source") not in outputs: + raise ValueError(f"Presentation source is not produced in {path}") + require_int(item.get("max_values"), "max_values", 1, 8) + + return sdk_id, target_uuids + + +def collect_rule_uuids(): + uuids = set() + for path in ROOT.glob("*-libs/**/*.json"): + data = load_json(path) + value = data.get("uuid") if isinstance(data, dict) else None + if isinstance(value, str): + uuids.add(value) + return uuids + + +def build_catalog(): + rule_uuids = collect_rule_uuids() + uuid_owners = {} + entries = [] + for path in sorted(SDKS_DIR.glob("*/definition.json")): + data = load_json(path) + sdk_id, target_uuids = validate_definition(path, data) + for target_uuid in target_uuids: + if target_uuid not in rule_uuids: + raise ValueError(f"Unknown rule UUID {target_uuid} in {path}") + previous = uuid_owners.setdefault(target_uuid, sdk_id) + if previous != sdk_id: + raise ValueError(f"Rule UUID {target_uuid} belongs to multiple SDKs") + relative_path = path.relative_to(ROOT).as_posix() + validate_remote_path(relative_path, "definition") + entries.append( + { + "sdk_id": sdk_id, + "library_uuids": sorted(target_uuids), + "definition": relative_path, + } + ) + if not entries: + raise ValueError("No SDK detail definitions found") + if len(entries) > MAX_CATALOG_ENTRIES: + raise ValueError("Too many SDK detail definitions") + return {"schema_version": 1, "entries": entries} + + +def serialized_catalog(): + return json.dumps(build_catalog(), ensure_ascii=False, indent=2) + "\n" + + +def write_catalog(): + content = serialized_catalog() + if CATALOG_PATH.exists() and CATALOG_PATH.read_text(encoding="utf-8") == content: + return False + temporary = CATALOG_PATH.with_suffix(".json.tmp") + temporary.write_text(content, encoding="utf-8") + temporary.replace(CATALOG_PATH) + return True + + +def check_catalog(): + expected = serialized_catalog() + if not CATALOG_PATH.exists() or CATALOG_PATH.read_text(encoding="utf-8") != expected: + raise ValueError("sdk-details/catalog.json is stale; run validate.py --write") + print(f"Validated {len(json.loads(expected)['entries'])} SDK detail definitions") + + +def main(): + parser = argparse.ArgumentParser(description="Validate SDK detail definitions and catalog") + parser.add_argument("--write", action="store_true", help="regenerate catalog.json") + args = parser.parse_args() + if args.write: + changed = write_catalog() + print("Updated SDK details catalog" if changed else "SDK details catalog is current") + check_catalog() + + +if __name__ == "__main__": + main()