From af3abb2afdb7de3a0d083800d94841e753b3bffe Mon Sep 17 00:00:00 2001 From: Matt Date: Tue, 3 Jun 2025 16:49:59 +0200 Subject: [PATCH] edits --- project/.bolt/config.json | 3 + project/.bolt/prompt | 8 + project/.dockerignore | 42 + project/.env | 3 + project/.env.example | 3 + project/.git_disabled/COMMIT_EDITMSG | 10 + project/.git_disabled/FETCH_HEAD | 1 + project/.git_disabled/HEAD | 1 + project/.git_disabled/ORIG_HEAD | 1 + project/.git_disabled/config | 16 + project/.git_disabled/description | 1 + .../.git_disabled/hooks/applypatch-msg.sample | 15 + project/.git_disabled/hooks/commit-msg.sample | 24 + .../hooks/fsmonitor-watchman.sample | 174 + .../.git_disabled/hooks/post-update.sample | 8 + .../.git_disabled/hooks/pre-applypatch.sample | 14 + project/.git_disabled/hooks/pre-commit.sample | 49 + .../hooks/pre-merge-commit.sample | 13 + project/.git_disabled/hooks/pre-push.sample | 53 + project/.git_disabled/hooks/pre-rebase.sample | 169 + .../.git_disabled/hooks/pre-receive.sample | 24 + .../hooks/prepare-commit-msg.sample | 42 + .../hooks/push-to-checkout.sample | 78 + .../hooks/sendemail-validate.sample | 77 + project/.git_disabled/hooks/update.sample | 128 + project/.git_disabled/index | Bin 0 -> 5208 bytes project/.git_disabled/info/exclude | 6 + .../04/160a2fd22d14bd7cbf70e2ad153bfa490c400f | 2 + .../06/768cb8b412d5fdc2c765d3f7e3dc4cfe8253c2 | Bin 0 -> 876 bytes .../09/3f67e430468b89de4134d8e49a0ca03ceda04d | Bin 0 -> 5904 bytes .../09/6ae1b3e1a67fe2b485da544d12335d61b5a654 | Bin 0 -> 303 bytes .../0a/311c141052951d2279c27fc96ba4dda13e6323 | Bin 0 -> 304 bytes .../0c/e149bf891d6dc25ee582960e4584f0a56c5890 | Bin 0 -> 153 bytes .../0d/3d71446a455c5f997e3cffb25099dab0f74a9b | Bin 0 -> 286 bytes .../0f/342091087cf5612c67553b900951fa4b45afc3 | Bin 0 -> 85 bytes .../11/2904aa0df0d886a5a3a4a8f96ddb5f2d785d80 | Bin 0 -> 838 bytes .../11/6903bf210c49bc4b1c18443b33e2183468495a | Bin 0 -> 967 bytes .../11/8ee90549ef8ca690349babe1fc12840b3482f1 | Bin 0 -> 304 bytes .../12/1b1264b7da4073dd9f26326a0f2984d8778b40 | Bin 0 -> 127 bytes .../13/1d21c20e800b8752a58056b6dc86003cf74b01 | Bin 0 -> 228 bytes .../14/22acd0dc135f8b4ef80e646a68a9e1dad1b822 | 2 + .../16/0d8a94f24d78838c4f04b65147a739a5b0b005 | Bin 0 -> 3067 bytes .../1a/aeeb96fa99f4f9bf65da077b9c825b0057a70e | Bin 0 -> 403 bytes .../1b/636852411c7ef969a3352f58caed9602c3efdb | Bin 0 -> 85 bytes .../1b/f3b2470ed87591fe84ef437e8d4c2e5e15c6f2 | Bin 0 -> 53 bytes .../1d/54044db13d12ea104619da582906b6388f6613 | Bin 0 -> 403 bytes .../1f/fef600d959ec9e396d5a260bd3f5b927b2cef8 | Bin 0 -> 96 bytes .../20/5975e6d01bba1ff22617ecc9ff9e8146a9f20f | Bin 0 -> 303 bytes .../21/4c7400eb4b2dbc1ead6d2c734f6d1a17643c92 | Bin 0 -> 303 bytes .../23/7620537102a30df5203067ee47e514464efa41 | 2 + .../23/fafb9da0510a2353f22287b851fde594270bc6 | Bin 0 -> 3969 bytes .../27/9098e9fa34030017cef48e0c0e7e46f95bd30c | 2 + .../28/20b97dafcfe569c2bf3853143fae3789326677 | Bin 0 -> 85 bytes .../28/a87caff04583e9527f75f10faf578bbc6766b6 | Bin 0 -> 906 bytes .../29/099a701aa79c28941e67172b0770e5fb4b8d5d | Bin 0 -> 806 bytes .../2a/540db28bdef4e91de30c51e6e2f58ed9b21cab | Bin 0 -> 876 bytes .../2a/a7205d4b402a1bdfbe07110c61df920b370066 | Bin 0 -> 83 bytes .../2c/cd9792422d03c979b5b72a44d45c04c563bd8d | Bin 0 -> 404 bytes .../2d/8005edc4dae70788318c3c75d91a8b17d701a5 | Bin 0 -> 4274 bytes .../2e/02dad998d13644fc43668bd7bf4e3c824b5514 | Bin 0 -> 1129 bytes .../2f/7f26e4fd306485d81e6a7c8202f7e85869e2d0 | 2 + .../30/64b4386eb92c12236809ec3aad0f39b03b9b8c | Bin 0 -> 838 bytes .../30/b61119238d273640bc33639d7915516a8a1b5e | Bin 0 -> 4841 bytes .../32/edcbd78e031deb9cf77d86f1b7d6f82e9e639e | Bin 0 -> 6089 bytes .../34/b07e2efd0bbd9aa8164ea5225736eba803dc53 | Bin 0 -> 313 bytes .../36/19cc0d8a8febd19e41a338330f040369ddd88d | Bin 0 -> 168 bytes .../36/5d3514f251161b6e00c8b0b0192c3e0e1fb362 | Bin 0 -> 4342 bytes .../36/b64295e4c7535951b8821d501179ab0cba9c4c | Bin 0 -> 745 bytes .../3a/081599aba8943dca8bdb4366241c9f8cf10048 | Bin 0 -> 403 bytes .../3e/e6fba76d78914002e60798d7008fcb0800c718 | Bin 0 -> 4147 bytes .../41/105e22153e29ff19b3d9695b784d58ffa5909a | 2 + .../41/af4c78e854c974bb81b5ff0f205c82cdd4778c | 2 + .../43/fca42b7f06d04645f6f9da5877cbc91db8f663 | 3 + .../44/4ab364a4ed3e52703f79cbc90e0c238a0b4643 | 2 + .../44/4cf260e65eb3fae24aa5ce71dca8d2b56c0ed7 | Bin 0 -> 875 bytes .../45/19ecfc9ae4276613664f3092d8555880e04b34 | Bin 0 -> 876 bytes .../48/3ba7ebd0dd92219fd5d68a7c48051231159ff3 | Bin 0 -> 85 bytes .../4b/23ffda06d9299bfd136a1115158216d19a9dee | Bin 0 -> 798 bytes .../4e/ecf2bbe122cb54108063a78841731877438af2 | Bin 0 -> 303 bytes .../4f/3f7173b383e385a857dd12b86cfbbfd93ac7a7 | Bin 0 -> 876 bytes .../4f/56a32d7d5b29507380ea7538ed2b1e81682840 | Bin 0 -> 403 bytes .../52/d8a1d0c182f38c71b95027a911c57fad77534a | Bin 0 -> 240 bytes .../53/08cb61d1624204c36af92a7ec04d1f7ac6caac | 3 + .../53/635cf234b122cf1abbd36636611572e9002e7a | Bin 0 -> 404 bytes .../53/64cae7afd5c8cd90a633f63b1b7d60a002786a | Bin 0 -> 4299 bytes .../54/18b71424f15c6cdd7cf6a5a600ad4d680ce61a | Bin 0 -> 875 bytes .../56/3275c22e2a44ab504059ea8ddc0dbfd1205cd0 | Bin 0 -> 403 bytes .../56/3a66fa267f050cad0c400ee061f427a6c7605a | Bin 0 -> 2231 bytes .../57/d22e9ac5e7d1e47431389a24b644ea2dad3fdd | Bin 0 -> 64641 bytes .../5a/0e466738df771bf28c877d4061f7414d166417 | Bin 0 -> 4442 bytes .../5d/0cfdef478da816595a7f8379f202a27c4165fb | 1 + .../5d/583cb120323273d8f8b1457b9bbeefd01f2b63 | Bin 0 -> 3459 bytes .../5e/36703bffa22e619c253b5e25399882750ff505 | Bin 0 -> 116 bytes .../5e/4f7cb2f76ef5492540c60867eb86fae557e0ab | Bin 0 -> 121 bytes .../60/643ef4a8770eee550cdeb81b5fa40eef61cb17 | Bin 0 -> 385 bytes .../61/81eeeb0161de3e5bd640641d3ae999a7e99608 | Bin 0 -> 4718 bytes .../63/3e369d83b85a1ceb4de0903ac3efa1c9f90f2a | Bin 0 -> 2163 bytes .../64/31b79510c6b090e799173b4fd5c8290c2f69bc | Bin 0 -> 940 bytes .../66/b88a2e212b1df685522673d09c9a21c41ec92c | Bin 0 -> 3761 bytes .../67/5d0e41dc652dd00c3f1276fe3133155663f869 | Bin 0 -> 304 bytes .../67/a69bdfd351bd409a3a09515bc37cabc849b685 | Bin 0 -> 1560 bytes .../6b/6787dcd124b08cbe754dca375d4780fe93829d | Bin 0 -> 55 bytes .../6d/3410be9c7010e7ba1c25d79028db3c9f2fa5f0 | Bin 0 -> 876 bytes .../6e/bd2527cdce2b15bd6cc270a499f9d52ffa9af5 | 2 + .../6f/ddb9b73aa728fcbed47d4700059f7f994eea64 | Bin 0 -> 420 bytes .../70/78380060fd2f66b1f7df9d3e0b8cd2bd1f5764 | Bin 0 -> 404 bytes .../71/cfb0fd474f2eac7fd983944c0dc3e97001dee1 | Bin 0 -> 2306 bytes .../77/3a9fd182a19dcee76d0fbd38c77130512c6789 | Bin 0 -> 1316 bytes .../77/4ed9cdaf05d0ef484fe96b619b563c72f69b65 | Bin 0 -> 896 bytes .../7b/be5062e9bb89ec7f2d1dabd54974f02e9b3be4 | Bin 0 -> 893 bytes .../7b/e9fc3722215175a1ca19a7907681291f2ebbe9 | 2 + .../7c/12aefe3047ef4f821042cbd864c09426ac8f7a | Bin 0 -> 540 bytes .../7f/1b905d0e9147e236fee0e24cc1188bfe8b720e | Bin 0 -> 876 bytes .../80/ffcb4d56bc010c94425214ebab7bc39a969f55 | Bin 0 -> 303 bytes .../81/036a412fcfbba8372f7a419b7633081788070c | Bin 0 -> 303 bytes .../81/9ff33f58502cc32f471ee2182c89afa1bee690 | Bin 0 -> 94 bytes .../81/a7a712331a57287829b87d2caeec0bab649d0c | 3 + .../82/c2e20ccc2bae01b6589f5f391cb20f34db41fd | Bin 0 -> 356 bytes .../83/9e956300509098a3a2583c926148a369f1647a | 3 + .../83/f1b4e87e672b28fc615b8c71ddc2418f35b893 | 2 + .../85/326a61aa56a88c4e733845583b6cf7ab0eb29c | Bin 0 -> 876 bytes .../88/482edf1fd75a3f79f83ada8b008abf2b867075 | Bin 0 -> 3494 bytes .../8b/439f9efa9eec5418bc2ac8905b14c8c13e882f | Bin 0 -> 85 bytes .../8c/64fce6ab47fc87c80c268219911f873baa4b58 | Bin 0 -> 5959 bytes .../8c/ad69bb4f23a17172c5119458a08f1805a1a746 | Bin 0 -> 804 bytes .../8e/0f5582007dd9cdeefb2ecd37becc544a0559ef | Bin 0 -> 876 bytes .../8e/acdbb626348adc3d5493c688b21f1129b3bb01 | Bin 0 -> 226 bytes .../8f/8b62eb83c2e168d23f66a99197e3888d0e4e15 | Bin 0 -> 878 bytes .../94/156e7d6d85fe60ae07b319e3ee2c53c0304808 | Bin 0 -> 303 bytes .../95/07f2ba8465b530bfb5c45ecee2cc781a4398a4 | Bin 0 -> 304 bytes .../96/496350ee59fb2fd226eb340094130203514ab8 | 1 + .../98/b57be9edb802938d18d007793bfea810626126 | Bin 0 -> 584 bytes .../99/a27fed78c69481f72290697a2a5c284c3ee0ff | Bin 0 -> 877 bytes .../99/be5d2fc4e6dd2706e6e2cce62c109d149217e4 | Bin 0 -> 85 bytes .../9a/88e8cd6694d77652a4fb4d492628222121d936 | Bin 0 -> 1802 bytes .../9b/867842573f109cf15e4a6eed3abe14f1dbcb3d | 1 + .../9e/617af2850975276c1dca90f1c9a27ebdf81093 | Bin 0 -> 404 bytes .../9e/b5a5df0052086c2f844a4d62ca4bbbc8de9955 | Bin 0 -> 85 bytes .../9f/add0398552242f6e69e3d55805db7eaff17e58 | Bin 0 -> 4139 bytes .../a0/c8b72648677c3915acfdddd7aca0bb6a26fb04 | Bin 0 -> 876 bytes .../a1/4fccc209d999439c04aee9ab45ffd3ff2c1a2a | Bin 0 -> 518 bytes .../a2/846ae74c028b3af2d63b7fd41d5b0457c295a3 | Bin 0 -> 876 bytes .../a3/359637e67b2a43527dfdf35051ebd580e945cb | Bin 0 -> 391 bytes .../a4/003ae8980aa451893c3c30254696cc707e9612 | Bin 0 -> 404 bytes .../a4/751a95c9e121afe4ff6f330b0f54e5c78e6f2d | Bin 0 -> 403 bytes .../a5/47bf36d8d11a4f89c59c144f24795749086dd1 | Bin 0 -> 173 bytes .../a6/26f254fcb5e8bd017768d61c7d5456c0343b6a | Bin 0 -> 823 bytes .../a9/a719a6a64830aae5e1b4e588bccd0b84144d65 | Bin 0 -> 404 bytes .../ad/b9870dfbc9da4ace55cd4d86a80305ffc282b0 | Bin 0 -> 2930 bytes .../b0/adc7efd76a6377e079418dfcb8c72a23431cbe | Bin 0 -> 2133 bytes .../b0/e2109b25d8075179631b8e8482815940ddcc51 | Bin 0 -> 85 bytes .../b2/9eae97ff3862f9fd4e0eaab6b366b8253f9f6f | Bin 0 -> 696 bytes .../b2/d540e0790a850cb385b1e81d5a89ddd88927db | Bin 0 -> 2775 bytes .../b3/b94da1f480f6a330758f6d40411fde31377340 | Bin 0 -> 402 bytes .../b4/89b14e31fbc6d2cb2b824831651c13572d1320 | 1 + .../b4/eee0fb31e438fb4965950fb8366f28d5c57207 | Bin 0 -> 304 bytes .../b5/3fe37af1ea9109ceb3639a23f61f388e37ee0d | Bin 0 -> 6321 bytes .../b5/c54b11ade52984481ebd13ffe4e4f954fd9e61 | Bin 0 -> 876 bytes .../b5/c61c956711f981a41e95f7fcf0038436cfbb22 | Bin 0 -> 55 bytes .../b7/d6c4d32e4629dcdabadc6a830091af62c3a7fc | Bin 0 -> 195 bytes .../ba/16969816de7663935649ffc51681767e27c032 | Bin 0 -> 304 bytes .../ba/55b19e5ef8ce2275f246e8c66f09a7739aecfa | Bin 0 -> 404 bytes .../bc/c94668f2ce3e40696be620b5bb981c81b94e97 | Bin 0 -> 6076 bytes .../be/bac89496a3f6dd1ab7c4a3d4cb6e0f5cbd343a | Bin 0 -> 533 bytes .../be/d33f625c78e83df9d0f90dfd09db67b721a4c6 | Bin 0 -> 304 bytes .../bf/0f362ab7eb0fe1ce44afabfce3f0ca3bceb5e5 | Bin 0 -> 223 bytes .../bf/38357c74ec9071af91e31701f9bb37265f40ca | Bin 0 -> 153 bytes .../bf/f8c370e531596abd134fa788c4a94cbb976398 | Bin 0 -> 6486 bytes .../c1/02821778a4fc2b06e4e9c4e5266e02507f6c81 | Bin 0 -> 58 bytes .../c2/9b15cd0bf4be414a63b0f01d51fa4ecd5a15e4 | 3 + .../c3/d0d185cfb2f49bfcbe62b72c69bab7d03e92c3 | Bin 0 -> 60 bytes .../c4/49095724c50aa2b14617f7c73b0380b0a92220 | Bin 0 -> 505 bytes .../c4/64e59be78fd65a3f17cf89dbf60063c57b650e | Bin 0 -> 830 bytes .../c4/7456dee26fde2b6cf54aae215915a9f04c3756 | Bin 0 -> 1469 bytes .../c8/a9d4f30756d696694d5f417de959b296a91b1f | Bin 0 -> 1953 bytes .../c9/cb2438220ac47eb7e0fe477d30f1470ca72549 | Bin 0 -> 3920 bytes .../c9/ee4596524a279f7fb058a7ae3917f7edfb121f | Bin 0 -> 875 bytes .../cc/782936676ee9d8e87c7e1e352dca4433a8a2f6 | Bin 0 -> 45 bytes .../cd/ab7ca9fe26a45c3526c87cbb63de189efa8fbc | Bin 0 -> 81 bytes .../d0/0925a62e4e73eda639da9581b11b6fb167856c | Bin 0 -> 304 bytes .../d0/c0a8ff5c5a4b33197a6470eab7d3411c179c61 | Bin 0 -> 354 bytes .../d2/dc9d4ddf66aad4668c61419d119dd5ea8a3f4a | Bin 0 -> 456 bytes .../d5/2f6431eafdaac9434a1488e98c4b16ff9e9b7c | Bin 0 -> 3056 bytes .../d6/2d21a3c2b3220c7d47210b2d45cfb5197de0e7 | Bin 0 -> 403 bytes .../d6/518329b7eba9e029ad9a7695c6aec1214ff77e | Bin 0 -> 1710 bytes .../d6/bd4d00abf814e0e4e3eccaa3a5f3ea53d612ab | Bin 0 -> 304 bytes .../d9/549061be9bb96d845452c4170e3b6c167d58f7 | Bin 0 -> 875 bytes .../da/45bd51441b91df70f8d49e3f2899c770489625 | Bin 0 -> 85 bytes .../dc/ed12795a91967440a9a96d9c420bc78ac4a142 | Bin 0 -> 875 bytes .../df/2e11f600834970a66693513a39dff330375d1b | 2 + .../df/c8ed71f10a06b2804cb8fa4451145741b77aab | Bin 0 -> 404 bytes .../e1/619f35ea62a03c5ba4f2b799beb469c8929d3b | Bin 0 -> 86 bytes .../e1/7cc88d306e1e58f859ad17e28310a3bb37ae28 | Bin 0 -> 4918 bytes .../e1/e0e9f703417970972d6e9ebaeec76eafdae136 | Bin 0 -> 6438 bytes .../e1/ec7f938536ebb520c87356a0f72d15c2b8fb83 | 4 + .../e8/045507e926205e3b10480572f232f86256cf25 | 1 + .../e8/16ea48d2b26447d8fea1fa744c4808809e1917 | Bin 0 -> 153 bytes .../ea/7c56093930356b8d0ff7bb228fc5f7ffa17f4f | Bin 0 -> 65119 bytes .../ec/80153cacc78066a77e8c4caeeeff0d8fa149f0 | 1 + .../ec/d83b744fb0ee2bdc1705214646a383bba2e834 | Bin 0 -> 3548 bytes .../f0/a235055d24607ba5e0bedc494ffc35b5956fbb | 1 + .../f0/bbd19b2fd2e3e1e3ef3bc3ab9402f69c467b25 | Bin 0 -> 228 bytes .../f1/31b4569c88af60054df997aa3852762d2bc9ff | Bin 0 -> 4318 bytes .../f1/ed375869c79130cc4cc03eb2c49d95f1234a1a | Bin 0 -> 686 bytes .../f2/fc872e3d5dc7a6783ad54e64a436f75462ad58 | Bin 0 -> 303 bytes .../f3/6864ec393faae6f4079c4e4241fad7d82c86b3 | Bin 0 -> 147 bytes .../f4/31988a5f85f6507bba877e1f80edae989c9fe8 | Bin 0 -> 754 bytes .../f4/56e32a24ac3ac4c76ce3c799e5eb2c837b8e46 | Bin 0 -> 303 bytes .../f9/90bffe00c0b28f28ef199e99f37095e12236de | Bin 0 -> 641 bytes .../f9/e4bc0149a415f9c7af509fd6b8226901eed75b | 2 + .../fc/47823714e47cfe3f0368edd3a80335e27eb030 | 3 + .../fc/5288f38fc15a836b47b345d688e60ecb96e807 | Bin 0 -> 2431 bytes .../ff/df9093d39a28277c6c9db9a92578294d777af5 | Bin 0 -> 304 bytes project/.git_disabled/refs/heads/main | 1 + .../refs/remotes/puffin-offset/HEAD | 1 + .../refs/remotes/puffin-offset/main | 1 + project/.gitignore | 24 + project/Dockerfile | 34 + project/Dockerfile.backend | 27 + project/README.md | 111 + .../node/wren-api-tutorial/.git_disabled/HEAD | 1 + .../wren-api-tutorial/.git_disabled/config | 13 + .../.git_disabled/description | 1 + .../.git_disabled/hooks/applypatch-msg.sample | 15 + .../.git_disabled/hooks/commit-msg.sample | 24 + .../hooks/fsmonitor-watchman.sample | 174 + .../.git_disabled/hooks/post-update.sample | 8 + .../.git_disabled/hooks/pre-applypatch.sample | 14 + .../.git_disabled/hooks/pre-commit.sample | 49 + .../hooks/pre-merge-commit.sample | 13 + .../.git_disabled/hooks/pre-push.sample | 53 + .../.git_disabled/hooks/pre-rebase.sample | 169 + .../.git_disabled/hooks/pre-receive.sample | 24 + .../hooks/prepare-commit-msg.sample | 42 + .../hooks/push-to-checkout.sample | 78 + .../hooks/sendemail-validate.sample | 77 + .../.git_disabled/hooks/update.sample | 128 + .../wren-api-tutorial/.git_disabled/index | Bin 0 -> 449 bytes .../.git_disabled/info/exclude | 6 + ...6c3028698466114383299512d896e3e74fbd97.idx | Bin 0 -> 1744 bytes ...c3028698466114383299512d896e3e74fbd97.pack | Bin 0 -> 5966 bytes ...6c3028698466114383299512d896e3e74fbd97.rev | Bin 0 -> 148 bytes .../.git_disabled/packed-refs | 2 + .../.git_disabled/refs/heads/main | 1 + .../.git_disabled/refs/remotes/origin/HEAD | 1 + .../web/node/wren-api-tutorial/.gitignore | 104 + .../web/node/wren-api-tutorial/README.md | 9 + .../web/node/wren-api-tutorial/app.js | 48 + .../node/wren-api-tutorial/package-lock.json | 41 + .../web/node/wren-api-tutorial/package.json | 6 + .../wren-api-tutorial-web/.git_disabled/HEAD | 1 + .../.git_disabled/config | 13 + .../.git_disabled/description | 1 + .../.git_disabled/hooks/applypatch-msg.sample | 15 + .../.git_disabled/hooks/commit-msg.sample | 24 + .../hooks/fsmonitor-watchman.sample | 174 + .../.git_disabled/hooks/post-update.sample | 8 + .../.git_disabled/hooks/pre-applypatch.sample | 14 + .../.git_disabled/hooks/pre-commit.sample | 49 + .../hooks/pre-merge-commit.sample | 13 + .../.git_disabled/hooks/pre-push.sample | 53 + .../.git_disabled/hooks/pre-rebase.sample | 169 + .../.git_disabled/hooks/pre-receive.sample | 24 + .../hooks/prepare-commit-msg.sample | 42 + .../hooks/push-to-checkout.sample | 78 + .../hooks/sendemail-validate.sample | 77 + .../.git_disabled/hooks/update.sample | 128 + .../wren-api-tutorial-web/.git_disabled/index | Bin 0 -> 297 bytes .../.git_disabled/info/exclude | 6 + ...da7fa73935b7e9739f81c8d6578344271cd402.idx | Bin 0 -> 1604 bytes ...a7fa73935b7e9739f81c8d6578344271cd402.pack | Bin 0 -> 5913 bytes ...da7fa73935b7e9739f81c8d6578344271cd402.rev | Bin 0 -> 128 bytes .../.git_disabled/packed-refs | 2 + .../.git_disabled/refs/heads/main | 1 + .../.git_disabled/refs/remotes/origin/HEAD | 1 + .../web/wren-api-tutorial-web/.gitignore | 104 + .../web/wren-api-tutorial-web/README.md | 9 + .../web/wren-api-tutorial-web/index.html | 80 + project/app.js | 69 + project/docker-compose.yml | 29 + project/env.sh | 36 + project/eslint.config.js | 28 + project/index.html | 72 + project/nginx-host.conf | 153 + project/nginx.conf | 59 + project/package-lock.json | 6593 +++++++++++++++++ project/package.json | 41 + project/postcss.config.js | 6 + project/public/puffin-logo.svg | 20 + project/public/robots.txt | 4 + project/public/sitemap.xml | 28 + project/public/yacht-hero.jpg | 1 + project/src/App.tsx | 243 + project/src/api/aisClient.ts | 72 + project/src/api/wrenClient.ts | 306 + project/src/components/About.tsx | 98 + project/src/components/CarbonOffset.tsx | 208 + project/src/components/Contact.tsx | 217 + project/src/components/CurrencySelect.tsx | 24 + project/src/components/ErrorBoundary.tsx | 54 + project/src/components/Home.tsx | 272 + project/src/components/HowItWorks.tsx | 90 + project/src/components/OffsetOrder.tsx | 567 ++ project/src/components/PuffinAdvantage.tsx | 88 + project/src/components/TripCalculator.tsx | 498 ++ project/src/components/YachtSearch.tsx | 49 + project/src/index.css | 3 + project/src/main.tsx | 13 + project/src/test/setup.ts | 18 + project/src/types.ts | 79 + project/src/utils/__tests__/email.test.ts | 88 + project/src/utils/analytics.ts | 17 + project/src/utils/carbonCalculator.ts | 56 + project/src/utils/config.ts | 54 + project/src/utils/currencies.ts | 37 + project/src/utils/email.ts | 70 + project/src/vite-env.d.ts | 25 + project/tailwind.config.js | 74 + project/tsconfig.app.json | 24 + project/tsconfig.json | 7 + project/tsconfig.node.json | 22 + project/vite.config.ts | 19 + project/vitest.config.ts | 9 + 323 files changed, 13944 insertions(+) create mode 100644 project/.bolt/config.json create mode 100644 project/.bolt/prompt create mode 100644 project/.dockerignore create mode 100644 project/.env create mode 100644 project/.env.example create mode 100644 project/.git_disabled/COMMIT_EDITMSG create mode 100644 project/.git_disabled/FETCH_HEAD create mode 100644 project/.git_disabled/HEAD create mode 100644 project/.git_disabled/ORIG_HEAD create mode 100644 project/.git_disabled/config create mode 100644 project/.git_disabled/description create mode 100644 project/.git_disabled/hooks/applypatch-msg.sample create mode 100644 project/.git_disabled/hooks/commit-msg.sample create mode 100644 project/.git_disabled/hooks/fsmonitor-watchman.sample create mode 100644 project/.git_disabled/hooks/post-update.sample create mode 100644 project/.git_disabled/hooks/pre-applypatch.sample create mode 100644 project/.git_disabled/hooks/pre-commit.sample create mode 100644 project/.git_disabled/hooks/pre-merge-commit.sample create mode 100644 project/.git_disabled/hooks/pre-push.sample create mode 100644 project/.git_disabled/hooks/pre-rebase.sample create mode 100644 project/.git_disabled/hooks/pre-receive.sample create mode 100644 project/.git_disabled/hooks/prepare-commit-msg.sample create mode 100644 project/.git_disabled/hooks/push-to-checkout.sample create mode 100644 project/.git_disabled/hooks/sendemail-validate.sample create mode 100644 project/.git_disabled/hooks/update.sample create mode 100644 project/.git_disabled/index create mode 100644 project/.git_disabled/info/exclude create mode 100644 project/.git_disabled/objects/04/160a2fd22d14bd7cbf70e2ad153bfa490c400f create mode 100644 project/.git_disabled/objects/06/768cb8b412d5fdc2c765d3f7e3dc4cfe8253c2 create mode 100644 project/.git_disabled/objects/09/3f67e430468b89de4134d8e49a0ca03ceda04d create mode 100644 project/.git_disabled/objects/09/6ae1b3e1a67fe2b485da544d12335d61b5a654 create mode 100644 project/.git_disabled/objects/0a/311c141052951d2279c27fc96ba4dda13e6323 create mode 100644 project/.git_disabled/objects/0c/e149bf891d6dc25ee582960e4584f0a56c5890 create mode 100644 project/.git_disabled/objects/0d/3d71446a455c5f997e3cffb25099dab0f74a9b create mode 100644 project/.git_disabled/objects/0f/342091087cf5612c67553b900951fa4b45afc3 create mode 100644 project/.git_disabled/objects/11/2904aa0df0d886a5a3a4a8f96ddb5f2d785d80 create mode 100644 project/.git_disabled/objects/11/6903bf210c49bc4b1c18443b33e2183468495a create mode 100644 project/.git_disabled/objects/11/8ee90549ef8ca690349babe1fc12840b3482f1 create mode 100644 project/.git_disabled/objects/12/1b1264b7da4073dd9f26326a0f2984d8778b40 create mode 100644 project/.git_disabled/objects/13/1d21c20e800b8752a58056b6dc86003cf74b01 create mode 100644 project/.git_disabled/objects/14/22acd0dc135f8b4ef80e646a68a9e1dad1b822 create mode 100644 project/.git_disabled/objects/16/0d8a94f24d78838c4f04b65147a739a5b0b005 create mode 100644 project/.git_disabled/objects/1a/aeeb96fa99f4f9bf65da077b9c825b0057a70e create mode 100644 project/.git_disabled/objects/1b/636852411c7ef969a3352f58caed9602c3efdb create mode 100644 project/.git_disabled/objects/1b/f3b2470ed87591fe84ef437e8d4c2e5e15c6f2 create mode 100644 project/.git_disabled/objects/1d/54044db13d12ea104619da582906b6388f6613 create mode 100644 project/.git_disabled/objects/1f/fef600d959ec9e396d5a260bd3f5b927b2cef8 create mode 100644 project/.git_disabled/objects/20/5975e6d01bba1ff22617ecc9ff9e8146a9f20f create mode 100644 project/.git_disabled/objects/21/4c7400eb4b2dbc1ead6d2c734f6d1a17643c92 create mode 100644 project/.git_disabled/objects/23/7620537102a30df5203067ee47e514464efa41 create mode 100644 project/.git_disabled/objects/23/fafb9da0510a2353f22287b851fde594270bc6 create mode 100644 project/.git_disabled/objects/27/9098e9fa34030017cef48e0c0e7e46f95bd30c create mode 100644 project/.git_disabled/objects/28/20b97dafcfe569c2bf3853143fae3789326677 create mode 100644 project/.git_disabled/objects/28/a87caff04583e9527f75f10faf578bbc6766b6 create mode 100644 project/.git_disabled/objects/29/099a701aa79c28941e67172b0770e5fb4b8d5d create mode 100644 project/.git_disabled/objects/2a/540db28bdef4e91de30c51e6e2f58ed9b21cab create mode 100644 project/.git_disabled/objects/2a/a7205d4b402a1bdfbe07110c61df920b370066 create mode 100644 project/.git_disabled/objects/2c/cd9792422d03c979b5b72a44d45c04c563bd8d create mode 100644 project/.git_disabled/objects/2d/8005edc4dae70788318c3c75d91a8b17d701a5 create mode 100644 project/.git_disabled/objects/2e/02dad998d13644fc43668bd7bf4e3c824b5514 create mode 100644 project/.git_disabled/objects/2f/7f26e4fd306485d81e6a7c8202f7e85869e2d0 create mode 100644 project/.git_disabled/objects/30/64b4386eb92c12236809ec3aad0f39b03b9b8c create mode 100644 project/.git_disabled/objects/30/b61119238d273640bc33639d7915516a8a1b5e create mode 100644 project/.git_disabled/objects/32/edcbd78e031deb9cf77d86f1b7d6f82e9e639e create mode 100644 project/.git_disabled/objects/34/b07e2efd0bbd9aa8164ea5225736eba803dc53 create mode 100644 project/.git_disabled/objects/36/19cc0d8a8febd19e41a338330f040369ddd88d create mode 100644 project/.git_disabled/objects/36/5d3514f251161b6e00c8b0b0192c3e0e1fb362 create mode 100644 project/.git_disabled/objects/36/b64295e4c7535951b8821d501179ab0cba9c4c create mode 100644 project/.git_disabled/objects/3a/081599aba8943dca8bdb4366241c9f8cf10048 create mode 100644 project/.git_disabled/objects/3e/e6fba76d78914002e60798d7008fcb0800c718 create mode 100644 project/.git_disabled/objects/41/105e22153e29ff19b3d9695b784d58ffa5909a create mode 100644 project/.git_disabled/objects/41/af4c78e854c974bb81b5ff0f205c82cdd4778c create mode 100644 project/.git_disabled/objects/43/fca42b7f06d04645f6f9da5877cbc91db8f663 create mode 100644 project/.git_disabled/objects/44/4ab364a4ed3e52703f79cbc90e0c238a0b4643 create mode 100644 project/.git_disabled/objects/44/4cf260e65eb3fae24aa5ce71dca8d2b56c0ed7 create mode 100644 project/.git_disabled/objects/45/19ecfc9ae4276613664f3092d8555880e04b34 create mode 100644 project/.git_disabled/objects/48/3ba7ebd0dd92219fd5d68a7c48051231159ff3 create mode 100644 project/.git_disabled/objects/4b/23ffda06d9299bfd136a1115158216d19a9dee create mode 100644 project/.git_disabled/objects/4e/ecf2bbe122cb54108063a78841731877438af2 create mode 100644 project/.git_disabled/objects/4f/3f7173b383e385a857dd12b86cfbbfd93ac7a7 create mode 100644 project/.git_disabled/objects/4f/56a32d7d5b29507380ea7538ed2b1e81682840 create mode 100644 project/.git_disabled/objects/52/d8a1d0c182f38c71b95027a911c57fad77534a create mode 100644 project/.git_disabled/objects/53/08cb61d1624204c36af92a7ec04d1f7ac6caac create mode 100644 project/.git_disabled/objects/53/635cf234b122cf1abbd36636611572e9002e7a create mode 100644 project/.git_disabled/objects/53/64cae7afd5c8cd90a633f63b1b7d60a002786a create mode 100644 project/.git_disabled/objects/54/18b71424f15c6cdd7cf6a5a600ad4d680ce61a create mode 100644 project/.git_disabled/objects/56/3275c22e2a44ab504059ea8ddc0dbfd1205cd0 create mode 100644 project/.git_disabled/objects/56/3a66fa267f050cad0c400ee061f427a6c7605a create mode 100644 project/.git_disabled/objects/57/d22e9ac5e7d1e47431389a24b644ea2dad3fdd create mode 100644 project/.git_disabled/objects/5a/0e466738df771bf28c877d4061f7414d166417 create mode 100644 project/.git_disabled/objects/5d/0cfdef478da816595a7f8379f202a27c4165fb create mode 100644 project/.git_disabled/objects/5d/583cb120323273d8f8b1457b9bbeefd01f2b63 create mode 100644 project/.git_disabled/objects/5e/36703bffa22e619c253b5e25399882750ff505 create mode 100644 project/.git_disabled/objects/5e/4f7cb2f76ef5492540c60867eb86fae557e0ab create mode 100644 project/.git_disabled/objects/60/643ef4a8770eee550cdeb81b5fa40eef61cb17 create mode 100644 project/.git_disabled/objects/61/81eeeb0161de3e5bd640641d3ae999a7e99608 create mode 100644 project/.git_disabled/objects/63/3e369d83b85a1ceb4de0903ac3efa1c9f90f2a create mode 100644 project/.git_disabled/objects/64/31b79510c6b090e799173b4fd5c8290c2f69bc create mode 100644 project/.git_disabled/objects/66/b88a2e212b1df685522673d09c9a21c41ec92c create mode 100644 project/.git_disabled/objects/67/5d0e41dc652dd00c3f1276fe3133155663f869 create mode 100644 project/.git_disabled/objects/67/a69bdfd351bd409a3a09515bc37cabc849b685 create mode 100644 project/.git_disabled/objects/6b/6787dcd124b08cbe754dca375d4780fe93829d create mode 100644 project/.git_disabled/objects/6d/3410be9c7010e7ba1c25d79028db3c9f2fa5f0 create mode 100644 project/.git_disabled/objects/6e/bd2527cdce2b15bd6cc270a499f9d52ffa9af5 create mode 100644 project/.git_disabled/objects/6f/ddb9b73aa728fcbed47d4700059f7f994eea64 create mode 100644 project/.git_disabled/objects/70/78380060fd2f66b1f7df9d3e0b8cd2bd1f5764 create mode 100644 project/.git_disabled/objects/71/cfb0fd474f2eac7fd983944c0dc3e97001dee1 create mode 100644 project/.git_disabled/objects/77/3a9fd182a19dcee76d0fbd38c77130512c6789 create mode 100644 project/.git_disabled/objects/77/4ed9cdaf05d0ef484fe96b619b563c72f69b65 create mode 100644 project/.git_disabled/objects/7b/be5062e9bb89ec7f2d1dabd54974f02e9b3be4 create mode 100644 project/.git_disabled/objects/7b/e9fc3722215175a1ca19a7907681291f2ebbe9 create mode 100644 project/.git_disabled/objects/7c/12aefe3047ef4f821042cbd864c09426ac8f7a create mode 100644 project/.git_disabled/objects/7f/1b905d0e9147e236fee0e24cc1188bfe8b720e create mode 100644 project/.git_disabled/objects/80/ffcb4d56bc010c94425214ebab7bc39a969f55 create mode 100644 project/.git_disabled/objects/81/036a412fcfbba8372f7a419b7633081788070c create mode 100644 project/.git_disabled/objects/81/9ff33f58502cc32f471ee2182c89afa1bee690 create mode 100644 project/.git_disabled/objects/81/a7a712331a57287829b87d2caeec0bab649d0c create mode 100644 project/.git_disabled/objects/82/c2e20ccc2bae01b6589f5f391cb20f34db41fd create mode 100644 project/.git_disabled/objects/83/9e956300509098a3a2583c926148a369f1647a create mode 100644 project/.git_disabled/objects/83/f1b4e87e672b28fc615b8c71ddc2418f35b893 create mode 100644 project/.git_disabled/objects/85/326a61aa56a88c4e733845583b6cf7ab0eb29c create mode 100644 project/.git_disabled/objects/88/482edf1fd75a3f79f83ada8b008abf2b867075 create mode 100644 project/.git_disabled/objects/8b/439f9efa9eec5418bc2ac8905b14c8c13e882f create mode 100644 project/.git_disabled/objects/8c/64fce6ab47fc87c80c268219911f873baa4b58 create mode 100644 project/.git_disabled/objects/8c/ad69bb4f23a17172c5119458a08f1805a1a746 create mode 100644 project/.git_disabled/objects/8e/0f5582007dd9cdeefb2ecd37becc544a0559ef create mode 100644 project/.git_disabled/objects/8e/acdbb626348adc3d5493c688b21f1129b3bb01 create mode 100644 project/.git_disabled/objects/8f/8b62eb83c2e168d23f66a99197e3888d0e4e15 create mode 100644 project/.git_disabled/objects/94/156e7d6d85fe60ae07b319e3ee2c53c0304808 create mode 100644 project/.git_disabled/objects/95/07f2ba8465b530bfb5c45ecee2cc781a4398a4 create mode 100644 project/.git_disabled/objects/96/496350ee59fb2fd226eb340094130203514ab8 create mode 100644 project/.git_disabled/objects/98/b57be9edb802938d18d007793bfea810626126 create mode 100644 project/.git_disabled/objects/99/a27fed78c69481f72290697a2a5c284c3ee0ff create mode 100644 project/.git_disabled/objects/99/be5d2fc4e6dd2706e6e2cce62c109d149217e4 create mode 100644 project/.git_disabled/objects/9a/88e8cd6694d77652a4fb4d492628222121d936 create mode 100644 project/.git_disabled/objects/9b/867842573f109cf15e4a6eed3abe14f1dbcb3d create mode 100644 project/.git_disabled/objects/9e/617af2850975276c1dca90f1c9a27ebdf81093 create mode 100644 project/.git_disabled/objects/9e/b5a5df0052086c2f844a4d62ca4bbbc8de9955 create mode 100644 project/.git_disabled/objects/9f/add0398552242f6e69e3d55805db7eaff17e58 create mode 100644 project/.git_disabled/objects/a0/c8b72648677c3915acfdddd7aca0bb6a26fb04 create mode 100644 project/.git_disabled/objects/a1/4fccc209d999439c04aee9ab45ffd3ff2c1a2a create mode 100644 project/.git_disabled/objects/a2/846ae74c028b3af2d63b7fd41d5b0457c295a3 create mode 100644 project/.git_disabled/objects/a3/359637e67b2a43527dfdf35051ebd580e945cb create mode 100644 project/.git_disabled/objects/a4/003ae8980aa451893c3c30254696cc707e9612 create mode 100644 project/.git_disabled/objects/a4/751a95c9e121afe4ff6f330b0f54e5c78e6f2d create mode 100644 project/.git_disabled/objects/a5/47bf36d8d11a4f89c59c144f24795749086dd1 create mode 100644 project/.git_disabled/objects/a6/26f254fcb5e8bd017768d61c7d5456c0343b6a create mode 100644 project/.git_disabled/objects/a9/a719a6a64830aae5e1b4e588bccd0b84144d65 create mode 100644 project/.git_disabled/objects/ad/b9870dfbc9da4ace55cd4d86a80305ffc282b0 create mode 100644 project/.git_disabled/objects/b0/adc7efd76a6377e079418dfcb8c72a23431cbe create mode 100644 project/.git_disabled/objects/b0/e2109b25d8075179631b8e8482815940ddcc51 create mode 100644 project/.git_disabled/objects/b2/9eae97ff3862f9fd4e0eaab6b366b8253f9f6f create mode 100644 project/.git_disabled/objects/b2/d540e0790a850cb385b1e81d5a89ddd88927db create mode 100644 project/.git_disabled/objects/b3/b94da1f480f6a330758f6d40411fde31377340 create mode 100644 project/.git_disabled/objects/b4/89b14e31fbc6d2cb2b824831651c13572d1320 create mode 100644 project/.git_disabled/objects/b4/eee0fb31e438fb4965950fb8366f28d5c57207 create mode 100644 project/.git_disabled/objects/b5/3fe37af1ea9109ceb3639a23f61f388e37ee0d create mode 100644 project/.git_disabled/objects/b5/c54b11ade52984481ebd13ffe4e4f954fd9e61 create mode 100644 project/.git_disabled/objects/b5/c61c956711f981a41e95f7fcf0038436cfbb22 create mode 100644 project/.git_disabled/objects/b7/d6c4d32e4629dcdabadc6a830091af62c3a7fc create mode 100644 project/.git_disabled/objects/ba/16969816de7663935649ffc51681767e27c032 create mode 100644 project/.git_disabled/objects/ba/55b19e5ef8ce2275f246e8c66f09a7739aecfa create mode 100644 project/.git_disabled/objects/bc/c94668f2ce3e40696be620b5bb981c81b94e97 create mode 100644 project/.git_disabled/objects/be/bac89496a3f6dd1ab7c4a3d4cb6e0f5cbd343a create mode 100644 project/.git_disabled/objects/be/d33f625c78e83df9d0f90dfd09db67b721a4c6 create mode 100644 project/.git_disabled/objects/bf/0f362ab7eb0fe1ce44afabfce3f0ca3bceb5e5 create mode 100644 project/.git_disabled/objects/bf/38357c74ec9071af91e31701f9bb37265f40ca create mode 100644 project/.git_disabled/objects/bf/f8c370e531596abd134fa788c4a94cbb976398 create mode 100644 project/.git_disabled/objects/c1/02821778a4fc2b06e4e9c4e5266e02507f6c81 create mode 100644 project/.git_disabled/objects/c2/9b15cd0bf4be414a63b0f01d51fa4ecd5a15e4 create mode 100644 project/.git_disabled/objects/c3/d0d185cfb2f49bfcbe62b72c69bab7d03e92c3 create mode 100644 project/.git_disabled/objects/c4/49095724c50aa2b14617f7c73b0380b0a92220 create mode 100644 project/.git_disabled/objects/c4/64e59be78fd65a3f17cf89dbf60063c57b650e create mode 100644 project/.git_disabled/objects/c4/7456dee26fde2b6cf54aae215915a9f04c3756 create mode 100644 project/.git_disabled/objects/c8/a9d4f30756d696694d5f417de959b296a91b1f create mode 100644 project/.git_disabled/objects/c9/cb2438220ac47eb7e0fe477d30f1470ca72549 create mode 100644 project/.git_disabled/objects/c9/ee4596524a279f7fb058a7ae3917f7edfb121f create mode 100644 project/.git_disabled/objects/cc/782936676ee9d8e87c7e1e352dca4433a8a2f6 create mode 100644 project/.git_disabled/objects/cd/ab7ca9fe26a45c3526c87cbb63de189efa8fbc create mode 100644 project/.git_disabled/objects/d0/0925a62e4e73eda639da9581b11b6fb167856c create mode 100644 project/.git_disabled/objects/d0/c0a8ff5c5a4b33197a6470eab7d3411c179c61 create mode 100644 project/.git_disabled/objects/d2/dc9d4ddf66aad4668c61419d119dd5ea8a3f4a create mode 100644 project/.git_disabled/objects/d5/2f6431eafdaac9434a1488e98c4b16ff9e9b7c create mode 100644 project/.git_disabled/objects/d6/2d21a3c2b3220c7d47210b2d45cfb5197de0e7 create mode 100644 project/.git_disabled/objects/d6/518329b7eba9e029ad9a7695c6aec1214ff77e create mode 100644 project/.git_disabled/objects/d6/bd4d00abf814e0e4e3eccaa3a5f3ea53d612ab create mode 100644 project/.git_disabled/objects/d9/549061be9bb96d845452c4170e3b6c167d58f7 create mode 100644 project/.git_disabled/objects/da/45bd51441b91df70f8d49e3f2899c770489625 create mode 100644 project/.git_disabled/objects/dc/ed12795a91967440a9a96d9c420bc78ac4a142 create mode 100644 project/.git_disabled/objects/df/2e11f600834970a66693513a39dff330375d1b create mode 100644 project/.git_disabled/objects/df/c8ed71f10a06b2804cb8fa4451145741b77aab create mode 100644 project/.git_disabled/objects/e1/619f35ea62a03c5ba4f2b799beb469c8929d3b create mode 100644 project/.git_disabled/objects/e1/7cc88d306e1e58f859ad17e28310a3bb37ae28 create mode 100644 project/.git_disabled/objects/e1/e0e9f703417970972d6e9ebaeec76eafdae136 create mode 100644 project/.git_disabled/objects/e1/ec7f938536ebb520c87356a0f72d15c2b8fb83 create mode 100644 project/.git_disabled/objects/e8/045507e926205e3b10480572f232f86256cf25 create mode 100644 project/.git_disabled/objects/e8/16ea48d2b26447d8fea1fa744c4808809e1917 create mode 100644 project/.git_disabled/objects/ea/7c56093930356b8d0ff7bb228fc5f7ffa17f4f create mode 100644 project/.git_disabled/objects/ec/80153cacc78066a77e8c4caeeeff0d8fa149f0 create mode 100644 project/.git_disabled/objects/ec/d83b744fb0ee2bdc1705214646a383bba2e834 create mode 100644 project/.git_disabled/objects/f0/a235055d24607ba5e0bedc494ffc35b5956fbb create mode 100644 project/.git_disabled/objects/f0/bbd19b2fd2e3e1e3ef3bc3ab9402f69c467b25 create mode 100644 project/.git_disabled/objects/f1/31b4569c88af60054df997aa3852762d2bc9ff create mode 100644 project/.git_disabled/objects/f1/ed375869c79130cc4cc03eb2c49d95f1234a1a create mode 100644 project/.git_disabled/objects/f2/fc872e3d5dc7a6783ad54e64a436f75462ad58 create mode 100644 project/.git_disabled/objects/f3/6864ec393faae6f4079c4e4241fad7d82c86b3 create mode 100644 project/.git_disabled/objects/f4/31988a5f85f6507bba877e1f80edae989c9fe8 create mode 100644 project/.git_disabled/objects/f4/56e32a24ac3ac4c76ce3c799e5eb2c837b8e46 create mode 100644 project/.git_disabled/objects/f9/90bffe00c0b28f28ef199e99f37095e12236de create mode 100644 project/.git_disabled/objects/f9/e4bc0149a415f9c7af509fd6b8226901eed75b create mode 100644 project/.git_disabled/objects/fc/47823714e47cfe3f0368edd3a80335e27eb030 create mode 100644 project/.git_disabled/objects/fc/5288f38fc15a836b47b345d688e60ecb96e807 create mode 100644 project/.git_disabled/objects/ff/df9093d39a28277c6c9db9a92578294d777af5 create mode 100644 project/.git_disabled/refs/heads/main create mode 100644 project/.git_disabled/refs/remotes/puffin-offset/HEAD create mode 100644 project/.git_disabled/refs/remotes/puffin-offset/main create mode 100644 project/.gitignore create mode 100644 project/Dockerfile create mode 100644 project/Dockerfile.backend create mode 100644 project/README.md create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/HEAD create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/config create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/description create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/applypatch-msg.sample create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/commit-msg.sample create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/fsmonitor-watchman.sample create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/post-update.sample create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-applypatch.sample create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-commit.sample create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-merge-commit.sample create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-push.sample create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-rebase.sample create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-receive.sample create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/prepare-commit-msg.sample create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/push-to-checkout.sample create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/sendemail-validate.sample create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/update.sample create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/index create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/info/exclude create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/objects/pack/pack-106c3028698466114383299512d896e3e74fbd97.idx create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/objects/pack/pack-106c3028698466114383299512d896e3e74fbd97.pack create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/objects/pack/pack-106c3028698466114383299512d896e3e74fbd97.rev create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/packed-refs create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/refs/heads/main create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/refs/remotes/origin/HEAD create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/.gitignore create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/README.md create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/app.js create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/package-lock.json create mode 100644 project/api-tutorials/web/node/wren-api-tutorial/package.json create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/HEAD create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/config create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/description create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/applypatch-msg.sample create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/commit-msg.sample create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/fsmonitor-watchman.sample create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/post-update.sample create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-applypatch.sample create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-commit.sample create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-merge-commit.sample create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-push.sample create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-rebase.sample create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-receive.sample create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/prepare-commit-msg.sample create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/push-to-checkout.sample create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/sendemail-validate.sample create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/update.sample create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/index create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/info/exclude create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/objects/pack/pack-cdda7fa73935b7e9739f81c8d6578344271cd402.idx create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/objects/pack/pack-cdda7fa73935b7e9739f81c8d6578344271cd402.pack create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/objects/pack/pack-cdda7fa73935b7e9739f81c8d6578344271cd402.rev create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/packed-refs create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/refs/heads/main create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/refs/remotes/origin/HEAD create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/.gitignore create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/README.md create mode 100644 project/api-tutorials/web/wren-api-tutorial-web/index.html create mode 100644 project/app.js create mode 100644 project/docker-compose.yml create mode 100644 project/env.sh create mode 100644 project/eslint.config.js create mode 100644 project/index.html create mode 100644 project/nginx-host.conf create mode 100644 project/nginx.conf create mode 100644 project/package-lock.json create mode 100644 project/package.json create mode 100644 project/postcss.config.js create mode 100644 project/public/puffin-logo.svg create mode 100644 project/public/robots.txt create mode 100644 project/public/sitemap.xml create mode 100644 project/public/yacht-hero.jpg create mode 100644 project/src/App.tsx create mode 100644 project/src/api/aisClient.ts create mode 100644 project/src/api/wrenClient.ts create mode 100644 project/src/components/About.tsx create mode 100644 project/src/components/CarbonOffset.tsx create mode 100644 project/src/components/Contact.tsx create mode 100644 project/src/components/CurrencySelect.tsx create mode 100644 project/src/components/ErrorBoundary.tsx create mode 100644 project/src/components/Home.tsx create mode 100644 project/src/components/HowItWorks.tsx create mode 100644 project/src/components/OffsetOrder.tsx create mode 100644 project/src/components/PuffinAdvantage.tsx create mode 100644 project/src/components/TripCalculator.tsx create mode 100644 project/src/components/YachtSearch.tsx create mode 100644 project/src/index.css create mode 100644 project/src/main.tsx create mode 100644 project/src/test/setup.ts create mode 100644 project/src/types.ts create mode 100644 project/src/utils/__tests__/email.test.ts create mode 100644 project/src/utils/analytics.ts create mode 100644 project/src/utils/carbonCalculator.ts create mode 100644 project/src/utils/config.ts create mode 100644 project/src/utils/currencies.ts create mode 100644 project/src/utils/email.ts create mode 100644 project/src/vite-env.d.ts create mode 100644 project/tailwind.config.js create mode 100644 project/tsconfig.app.json create mode 100644 project/tsconfig.json create mode 100644 project/tsconfig.node.json create mode 100644 project/vite.config.ts create mode 100644 project/vitest.config.ts diff --git a/project/.bolt/config.json b/project/.bolt/config.json new file mode 100644 index 0000000..6b6787d --- /dev/null +++ b/project/.bolt/config.json @@ -0,0 +1,3 @@ +{ + "template": "bolt-vite-react-ts" +} diff --git a/project/.bolt/prompt b/project/.bolt/prompt new file mode 100644 index 0000000..d0c0a8f --- /dev/null +++ b/project/.bolt/prompt @@ -0,0 +1,8 @@ +For all designs I ask you to make, have them be beautiful, not cookie cutter. Make webpages that are fully featured and worthy for production. + +By default, this template supports JSX syntax with Tailwind CSS classes, React hooks, and Lucide React for icons. Do not install other packages for UI themes, icons, etc unless absolutely necessary or I request them. + +Use icons from lucide-react for logos. + +Use stock photos from unsplash where appropriate, only valid URLs you know exist. Do not download the images, only link to them in image tags. + diff --git a/project/.dockerignore b/project/.dockerignore new file mode 100644 index 0000000..e804550 --- /dev/null +++ b/project/.dockerignore @@ -0,0 +1,42 @@ +# Version control files +.git +.gitignore + +# Node.js dependencies +node_modules +npm-debug.log +yarn-error.log + +# Build outputs +dist + +# Docker files (to avoid recursive copying) +Dockerfile +Dockerfile.backend +docker-compose.yml +.dockerignore + +# Environment files (we'll manage these separately) +.env +.env.* +!.env.example + +# Editor directories and files +.vscode +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Testing files +coverage +**/__tests__ +**/*.test.* +**/*.spec.* + +# Other unnecessary files +README.md +LICENSE +*.md diff --git a/project/.env b/project/.env new file mode 100644 index 0000000..5e4f7cb --- /dev/null +++ b/project/.env @@ -0,0 +1,3 @@ +VITE_WREN_API_TOKEN=35c025d9-5dbb-404b-85aa-19b09da0578d +VITE_FORMSPREE_CONTACT_ID=xkgovnby +VITE_FORMSPREE_OFFSET_ID=xvgzbory \ No newline at end of file diff --git a/project/.env.example b/project/.env.example new file mode 100644 index 0000000..5e36703 --- /dev/null +++ b/project/.env.example @@ -0,0 +1,3 @@ +VITE_WREN_API_TOKEN=your-token-here +VITE_FORMSPREE_CONTACT_ID=your-formspree-contact-form-id +VITE_FORMSPREE_OFFSET_ID=your-formspree-offset-form-id \ No newline at end of file diff --git a/project/.git_disabled/COMMIT_EDITMSG b/project/.git_disabled/COMMIT_EDITMSG new file mode 100644 index 0000000..673be0e --- /dev/null +++ b/project/.git_disabled/COMMIT_EDITMSG @@ -0,0 +1,10 @@ +Updated with Lightboxes +# Please enter the commit message for your changes. Lines starting +# with '#' will be ignored, and an empty message aborts the commit. +# +# On branch main +# Your branch is up to date with 'puffin-offset/main'. +# +# Changes to be committed: +# modified: src/components/OffsetOrder.tsx +# diff --git a/project/.git_disabled/FETCH_HEAD b/project/.git_disabled/FETCH_HEAD new file mode 100644 index 0000000..cef2d45 --- /dev/null +++ b/project/.git_disabled/FETCH_HEAD @@ -0,0 +1 @@ +df2e11f600834970a66693513a39dff330375d1b branch 'main' of https://code.puffinoffset.com/matt/puffin-app diff --git a/project/.git_disabled/HEAD b/project/.git_disabled/HEAD new file mode 100644 index 0000000..b870d82 --- /dev/null +++ b/project/.git_disabled/HEAD @@ -0,0 +1 @@ +ref: refs/heads/main diff --git a/project/.git_disabled/ORIG_HEAD b/project/.git_disabled/ORIG_HEAD new file mode 100644 index 0000000..aff119e --- /dev/null +++ b/project/.git_disabled/ORIG_HEAD @@ -0,0 +1 @@ +96496350ee59fb2fd226eb340094130203514ab8 diff --git a/project/.git_disabled/config b/project/.git_disabled/config new file mode 100644 index 0000000..f0e93b1 --- /dev/null +++ b/project/.git_disabled/config @@ -0,0 +1,16 @@ +[core] + repositoryformatversion = 0 + filemode = false + bare = false + logallrefupdates = true + symlinks = false + ignorecase = true +[remote "puffin-offset"] + url = https://code.puffinoffset.com/matt/puffin-app.git + fetch = +refs/heads/*:refs/remotes/puffin-offset/* +[branch "main"] + remote = puffin-offset + merge = refs/heads/main + vscode-merge-base = puffin-offset/main + vscode-merge-base = puffin-offset/main + vscode-merge-base = puffin-offset/main diff --git a/project/.git_disabled/description b/project/.git_disabled/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/project/.git_disabled/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/project/.git_disabled/hooks/applypatch-msg.sample b/project/.git_disabled/hooks/applypatch-msg.sample new file mode 100644 index 0000000..a5d7b84 --- /dev/null +++ b/project/.git_disabled/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/project/.git_disabled/hooks/commit-msg.sample b/project/.git_disabled/hooks/commit-msg.sample new file mode 100644 index 0000000..b58d118 --- /dev/null +++ b/project/.git_disabled/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/project/.git_disabled/hooks/fsmonitor-watchman.sample b/project/.git_disabled/hooks/fsmonitor-watchman.sample new file mode 100644 index 0000000..23e856f --- /dev/null +++ b/project/.git_disabled/hooks/fsmonitor-watchman.sample @@ -0,0 +1,174 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + my $last_update_line = ""; + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + $last_update_line = qq[\n"since": $last_update_token,]; + } + my $query = <<" END"; + ["query", "$git_work_tree", {$last_update_line + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/project/.git_disabled/hooks/post-update.sample b/project/.git_disabled/hooks/post-update.sample new file mode 100644 index 0000000..ec17ec1 --- /dev/null +++ b/project/.git_disabled/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/project/.git_disabled/hooks/pre-applypatch.sample b/project/.git_disabled/hooks/pre-applypatch.sample new file mode 100644 index 0000000..4142082 --- /dev/null +++ b/project/.git_disabled/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/project/.git_disabled/hooks/pre-commit.sample b/project/.git_disabled/hooks/pre-commit.sample new file mode 100644 index 0000000..29ed5ee --- /dev/null +++ b/project/.git_disabled/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff-index --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/project/.git_disabled/hooks/pre-merge-commit.sample b/project/.git_disabled/hooks/pre-merge-commit.sample new file mode 100644 index 0000000..399eab1 --- /dev/null +++ b/project/.git_disabled/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/project/.git_disabled/hooks/pre-push.sample b/project/.git_disabled/hooks/pre-push.sample new file mode 100644 index 0000000..4ce688d --- /dev/null +++ b/project/.git_disabled/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/project/.git_disabled/hooks/pre-rebase.sample b/project/.git_disabled/hooks/pre-rebase.sample new file mode 100644 index 0000000..6cbef5c --- /dev/null +++ b/project/.git_disabled/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/project/.git_disabled/hooks/pre-receive.sample b/project/.git_disabled/hooks/pre-receive.sample new file mode 100644 index 0000000..a1fd29e --- /dev/null +++ b/project/.git_disabled/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/project/.git_disabled/hooks/prepare-commit-msg.sample b/project/.git_disabled/hooks/prepare-commit-msg.sample new file mode 100644 index 0000000..10fa14c --- /dev/null +++ b/project/.git_disabled/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/project/.git_disabled/hooks/push-to-checkout.sample b/project/.git_disabled/hooks/push-to-checkout.sample new file mode 100644 index 0000000..af5a0c0 --- /dev/null +++ b/project/.git_disabled/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + exit 1 +} + +unset GIT_DIR GIT_WORK_TREE +cd "$worktree" && + +if grep -q "^diff --git " "$1" +then + validate_patch "$1" +else + validate_cover_letter "$1" +fi && + +if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL" +then + git config --unset-all sendemail.validateWorktree && + trap 'git worktree remove -ff "$worktree"' EXIT && + validate_series +fi diff --git a/project/.git_disabled/hooks/update.sample b/project/.git_disabled/hooks/update.sample new file mode 100644 index 0000000..c4d426b --- /dev/null +++ b/project/.git_disabled/hooks/update.sample @@ -0,0 +1,128 @@ +#!/bin/sh +# +# An example hook script to block unannotated tags from entering. +# Called by "git receive-pack" with arguments: refname sha1-old sha1-new +# +# To enable this hook, rename this file to "update". +# +# Config +# ------ +# hooks.allowunannotated +# This boolean sets whether unannotated tags will be allowed into the +# repository. By default they won't be. +# hooks.allowdeletetag +# This boolean sets whether deleting tags will be allowed in the +# repository. By default they won't be. +# hooks.allowmodifytag +# This boolean sets whether a tag may be modified after creation. By default +# it won't be. +# hooks.allowdeletebranch +# This boolean sets whether deleting branches will be allowed in the +# repository. By default they won't be. +# hooks.denycreatebranch +# This boolean sets whether remotely creating branches will be denied +# in the repository. By default this is allowed. +# + +# --- Command line +refname="$1" +oldrev="$2" +newrev="$3" + +# --- Safety check +if [ -z "$GIT_DIR" ]; then + echo "Don't run this script from the command line." >&2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/project/.git_disabled/index b/project/.git_disabled/index new file mode 100644 index 0000000000000000000000000000000000000000..5f578e9618f9074658f68794467892df4bcd5460 GIT binary patch literal 5208 zcma)A2|QG5AAXHBOH8HYQkD|MObb&PEy9(M^`cU~GmDvF%uF+bQFe8;=t|O8p$H+R zK3z*GZ9+R=g`}ukT}yrK>DI{io-;FUYx-VOi&9Q<3r zG>y<98^r8p{MmC8{+9bBio6N@n6ytvjLt!;j)E9Dwh+? zVh}x0%s8vd(g4{+qcUDSo%611$oLOAV#-Squ)BPsfIi zjvt6w=Mi1j$9eBEeQBKVkFA%pCU{JX@^?`SYXa&721_Vc zB%}!S(zf3JmnPG6Ljl1cMd!!5Dc04TZrHsi@52NA%G$g;*ErgNXRU34x+5lAFiXY` z!&^#hR;y*2ifnCeOw0N)9`4ixlcSC8LHz#tq^TCTy;!(-#jkISwP;&cvvh2ILvdupktX5nh8BCV826+Q)zmbw9RgvYWHh6}lT z7Qz+~Bk2?(hfAXqBl&cWmHahShq(4hmmLB|n&-Njk>=q!ZXb86$MXZvzV&$6k*5S^ z$YV+7`ECj;I6LHt`gCMJs8VZbPc#2cZC<@((ygucKLG0Gjr6fV1>y1FazqPyay<6QaV{ zve6JXP9wp`2p-ea&J~@Jo&UCPN|}4hH+H|M!lm!fYgCOQe<{+TAZ9=XwZDLgj*<0$ zc;DmxO1$`3^ZKk(g^GZKK?@Daw5{*k_X8cefX(6v310(9s@uS{6T{IX_x5w+XSG_;?U?K0#hho=Z2DnQ*&WXZfVwUEBi_QOzdm+O0uZzE$*~9 zwm%}HuJnSjM_(+^<}g?skrk6GkZ{E6jWoi)yQv28-Ya);#Xr_<%!bI7_ih|lZhX1i zqdOGI^t0oC$fN^x3=b<;HcsXf<`UIVviIUH+4*n!pjc|t6YV!<;cT1G9ol`>CaIVE z26E#(0G$-I2FC8_icuk~Zm&SY$4EaIjr~-jpgGc8V#Xk}X z3&+jV_cs?=RK-}9KG!IrWov?oyl@JeMJ4jWgM(QdST%!75JWIgqNBqFPB%)Ti@%uV z2ill5L|0QE>K*u$dIs{8;PSZ?u24V_iiD%Y!~Nskn%j6G@omcbQ=T)5@t5O{Mf$7& zGGbZWvpIxzxS>|G7P0IQQ7wuDRs?ve36gLW?GKE%5 zI-g4j;bG-V_?i_(V|`D*`V(K8){DKjyiL8ZIw{ooq*L>jXJfDJ=~4w60zQ>!4>Lz7 z5J?S)={X`#)u(ut;yGhYmou&gdXD6IkM*pXE~~)=6c1)45n%}&*ep6+;zBIVqD7BTzT4>< zFdm8@&WFNNqkQOWx^$Y+;j2(c70WW7)cdURs!BBU#7C8Ap3ZUuMnmwO_%@TrnbBa<5d7ubFuDX*qWj2xQDq#? z?6~c9cIkfGFrSIP?#Ok6@=*$(;|et*+A{x?jQSnU117M z{H(-ToZO&kmN+?WYBKqVYXF!s1YhD94?c~~mrVfi@nA$>>g4R-(sd(vcT0qK{%3a= zGjkJT<9j4vG6dff%Ts$=1OolTkV!P?AE*;nhraM9_fPjVi=TZi3=^d-#XVEq+X7Or zseyXE@BHJ-XYm{mHZ`1$z`Yt)%INA)Zh1Fn@3x@LA3QgnPL7=#|Dtqn*1@jtbXtYx zq7NP6Q<>lB1pPDo`U2$gI)e-b{-1>WDH(m@SBjfRx2jEm7OInEPXX^@GClBML_7u0 z%I4bJgkLS%+fKKKB!RT!luLzTpo!vzAuNuJoitxyZV%5-f&b`vT>55GZ@E!}z%QrI zO7~*b=Olnf@q~1NkO%`M9F1>DUd{JoGEFm1t49^f;v909&sUWbuV2g$VAZG1zV3E@ zaanD4#%t3R`VxM^C>|a4vBa@he<0rQ{M7dyHhbeMF7G<45Xo#di1GD1Z%q!7^gmq4 zf_w6yAe5&dD2NE}h%7b%{Uy(LczlHi&*OFNj@HKq7sjTzmHux)D>c{U6_|+DFTqDR z2s=v1qRN<$j<*`yyeRtkE2pGx@3`>S+QMr*0j6_|mS#@g z&vbsBa*S2&VVb+1e;L0!ASYE%Ik)gvFn*A?bn7dV`)mJ(*F)(_(t!*r@Z7mK?@)l< zE@XKg>oskIB=4lWB~i_iwQ_WNs5Wk_@uYNDZ+#wTWmt08Mfi%4Nqz#x4f2(CPwEcL zzdB_18IZR~%kW5RyTmoq!+81j#Q0BR>?L^;-Ojx&!ANtrU zw|kf3j`)5^f%eDI`xR!^+u9fTrq^vLn~JwMS*-xZqP>x6DX}QZa};%-e9NRgU%2GR zvv;alE0@`SYH79n{Up#q@ubgE@P!kK=`x9$zLN&v}dj{0~*D_;yKvr{yK0 z^OVPWmRpbK);!yZdI95qsj+GEt+IES;u=b&CF^u$x1!|5]cK%aY) ՞A 15e0ʍF\47 ߗ5=omӶ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 HD{ev0i|0ol literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/0d/3d71446a455c5f997e3cffb25099dab0f74a9b b/project/.git_disabled/objects/0d/3d71446a455c5f997e3cffb25099dab0f74a9b new file mode 100644 index 0000000000000000000000000000000000000000..a7db550441432604040bed0eef2f4cfd458be197 GIT binary patch literal 286 zcmV+(0pb350cDU&Ps1<}ggNI|SUy%&ivkjYBPB?c!b22JRS%A{O;&a6$X?S*sQ(>1 zZg?I&vz~8uD`hHnd3AmEkuk=l>3URPpL#;09lv2w4h9L^0EIU%R{43J^J&r*RzX}R z^@49sa%XCY4seB!8zUJ>pFq1}av6+$Mo9vi<0z5O3CDP7^kN^Mx literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/0f/342091087cf5612c67553b900951fa4b45afc3 b/project/.git_disabled/objects/0f/342091087cf5612c67553b900951fa4b45afc3 new file mode 100644 index 0000000000000000000000000000000000000000..db45a6e107528c1bbe9bde72565ec5f1a3b879c8 GIT binary patch literal 85 zcmV-b0IL6Z0V^p=O;xZkWH2-^Ff%bxNX#sD&dE&8E72<{W)RF|-ml2xxyM^Z!o}M7 rk%UQxXB1Rjc~NQ}LSfpDE9~uYQ-1k%u+lecTxucuF4%W`y?cW literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/11/2904aa0df0d886a5a3a4a8f96ddb5f2d785d80 b/project/.git_disabled/objects/11/2904aa0df0d886a5a3a4a8f96ddb5f2d785d80 new file mode 100644 index 0000000000000000000000000000000000000000..12bdfd930e787f3a823c2406f5e8917ecc5bcbf7 GIT binary patch literal 838 zcmV-M1G)To0V^p=O;s>7Ft%VYF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@Sk8@i0_5FS}P2Qm*P*r*9nRyku8TrK!QyILK|KDP}sX6(|0V&a(>GEMOi^3YUj(Kw}Y1S{eA3$Jc;)waho%wL6UJnX;MyRGJ~1q8Q!k`*B9qGF19e{ zXJO8~d!rYkptvZRVavM*zYU*Q{Ps+p%D=-bU*qc0B6g@h-o@|rMw5Gx)>T6ki-D=?uSLDtg$Ky)k`1jyW{Eq$8_t|{N3n^!QmqR z?;FF-$T#yWbEDL_FMr*szUkZ#bcK2ODXEaq;k7Mv$#RW}pIK+~e^bEBTN}Q6&4#Kj z%PdKSxwfR3p>NIYZE7Z6cWgr@AM4m8FQ~bBHzSftXiNjs4^ZvrjFdN)_N$(KVV~pY QB zP|N>*v%d`V(D49xc6MgI@0%IFl;Q;j{lV35tg407K;D>8P)JchWdBDuEq|nUHH9DW zM3tiDEztz_-Z74Q=1`$;tJi}^#rP7&L^4k2k`x8YU^pECQ9wA*H&WFlh2LQ()=^mk zr!)sGfaJL`N$dMccdbltrOnggOZp5Sz||2~RFjzUP5d;Pr;G9MVKhk>^M~Qx-RRT8 zd*2*g{y3bai^qq1j1aA~u2s_ODJnNCqbja!mD*JqXQJwnn)NmoV?~svGDoDn%^wCE zeRCYC9nYXx^Gq|rVM+CYlQyeF0!kzHWha3t63G<(^Wg9o{Ad9nOLsy-PB*j^bw#=E zf~0yaIaDHh1(Ot50bB$&fGMaYRp^TM@u>aIW9`_80ERA6(s)ZGZ%32E%|fhsj(o4J zE=~NXbAyo}bMroV60_k0U37{sD zR4Qqn5kw`rwgOWH(vF%ZLGEy{w+?$>s(rB7L;Bb<_48*_k2SdMU%A-wC{SQV%e&4#kEVN*5}2&37b@F^ znfN}P{5}8NF@gIb;FjgTx_x{|hqu4_QKeZ$G|f}K#8IA#EtLsmq|DYOn$t7KZ4VmG z6%q2E9){G1Q(Jfg)ko~u-@R$sJ=UPJ6|}9&LFCZ>*4U1QqnXvn>YYSgaL%sf|I-e4 zgq3a!71V@wA~}6vT2g|Io~n0(3CfQ0y30%bk zr*$+X_$uK`Dy{X}TR#!G6xQN9Hp*#1Frc$xp8YqIM8&L literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/11/8ee90549ef8ca690349babe1fc12840b3482f1 b/project/.git_disabled/objects/11/8ee90549ef8ca690349babe1fc12840b3482f1 new file mode 100644 index 0000000000000000000000000000000000000000..3f0ceb603f811e4dda26737b5491fcebba5421de GIT binary patch literal 304 zcmV-00nh$;0V^p=O;s>9G-WU}FfcPQQE)6M&?_mfVE7Z%@wxwCRCBibX4h*S&-hMH zd%Su4c+mMVptylXRqkq>*NNf5jWP`Mbx@y|toX zr+Cs`1YE=znb0y*%x;d}%0!l2LL!v#N5HfJy~00M>h_>$D(lH&MyhJ#E^;uTB&XtOzdpQsPkP!mnDYF*w9IsnqMo&xyZx0H78V^9 zoD#91UxIbvayOWw(xRf&yyVPOu;tD3rY184Oqj8FQH0H;M32RpA5*HJ3R80vGjl+O eRqqQ(dbzvvO}(z{>Z_h5AM|EhKLG$Aiej+1>2(qS literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/14/22acd0dc135f8b4ef80e646a68a9e1dad1b822 b/project/.git_disabled/objects/14/22acd0dc135f8b4ef80e646a68a9e1dad1b822 new file mode 100644 index 0000000..013bcc8 --- /dev/null +++ b/project/.git_disabled/objects/14/22acd0dc135f8b4ef80e646a68a9e1dad1b822 @@ -0,0 +1,2 @@ +xmR]k0) 4=;!0BAױZJHJ8_탄U٩'_?*Kۗd뼸8HQ={B#;\CuP&+I6招U$ 73⮇k LY+LD(3K_OT^Kxdp~I^Mܘ$Clevp +wQ!vxFһP*便Զ+^E-0ix88 #x]̲2e1߃G(`A8QKH$~ ~zk@42a#U^Y|Sޡ鵒byUQ5%C,Am7ޕH0[`&L8|Y,n<[6~[,^Gs0x7l y \ No newline at end of file diff --git a/project/.git_disabled/objects/16/0d8a94f24d78838c4f04b65147a739a5b0b005 b/project/.git_disabled/objects/16/0d8a94f24d78838c4f04b65147a739a5b0b005 new file mode 100644 index 0000000000000000000000000000000000000000..910f0b6b485a4011e304e1a6b4ef53a03b3d0d7e GIT binary patch literal 3067 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 J?tjb0a&dzU`H}zt literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/1a/aeeb96fa99f4f9bf65da077b9c825b0057a70e b/project/.git_disabled/objects/1a/aeeb96fa99f4f9bf65da077b9c825b0057a70e new file mode 100644 index 0000000000000000000000000000000000000000..5d4681d04be730b958e29d909ef90f036b52ff34 GIT binary patch literal 403 zcmV;E0c`$w0V^p=O;s>4vtTeZFfcPQQE*JkFD=n4DXw5RQWAFWQT{#coUdN%6eC4f ze(*65gDP@PEK17H^G{1FPKBu5u=e=->siU=4=Npd|Li!frR*%T52iLhuOu-UqAc0Y zY;N<8D4Ey34<=Y0e!uYKPkt?!veKfW)V$=%;MAN{sOrV0)6Ab$YdHti{{0*f`1)$Y zOV`s-)viTF`9)6orFkidMU`OJnr(BM`s8?UWZ;e_*#N=H)jYfA_&^nV)tp#) z6IQ|?(3o?nz*3|5)GZ1(-jfqNZhS#btNAFf$_!gE_I zR3*gM{zWONMPQ`{+XN+*d)3Vx_82G6trQK+>XMFwDh()2OUul2OesqQ20=Q+4YN94 zoK2f@y)04pugP}Px%$r&ZVsfk6&8DMvOF`UsA-})_}dRKd$e8byyGv>^H0RV!1yu;WG$94b! literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/1b/636852411c7ef969a3352f58caed9602c3efdb b/project/.git_disabled/objects/1b/636852411c7ef969a3352f58caed9602c3efdb new file mode 100644 index 0000000000000000000000000000000000000000..0216748618e2e11cd03fd2faea30d694a82e4753 GIT binary patch literal 85 zcmV-b0IL6Z0V^p=O;xZkWH2-^Ff%bxNX#sD&dE&8E72<{W)RF|-ml2xxyM^Z!o}M7 rk%UQxXB1Rjc~NQ}LgCt-?YzHF-tsyZde*mX1vBgaLroh1&-WkMH?t^M literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/1b/f3b2470ed87591fe84ef437e8d4c2e5e15c6f2 b/project/.git_disabled/objects/1b/f3b2470ed87591fe84ef437e8d4c2e5e15c6f2 new file mode 100644 index 0000000000000000000000000000000000000000..2c6663467b5e49cef26ee6d2a39dbc28fc622440 GIT binary patch literal 53 zcmb4vtTeZFfcPQQE*JkFD=n4DXw5RQWAFWQT{#coUdN%6eC4f ze(*65gDP@PEK17H^G{1FPKBu5u=e=->siU=4=Npd|Li!frR*%T52iLhuOu-UqAc0Y zY;N<8D4Ey34<=Y0e!uYKPkt?!veKfW)V$=%;MAN{sOrV0)6Ab$YdHti{{0*f`1)$Y zOV`s-)viTF`9)6orFkidMU`OJnr(BM`s8?UWZ;e_*#N=H)jYfA_&^nV)m+t2 zF?{uR)k$YBk&c%=-eUjf&8~r~DfcW1&o9a@2CGb8Hv9hNz`YK$tT+Rs57(?d;km69 zsuJRB|Du%CBCyh)lt0f_yZ>oF!K2nBIZ?jddX;wsRB1qIT3TkFV@g>fFbL8iZkW~a z;%wTK>t#Vpe*1c=X(%Zw-ZX6v}CB}QczGz%gjkFR9G-WU}FfcPQQE)6M&?_mfUt9e>N_WoBI9F2j&*D^ShOxigFV( z^T2M|e(lI*JvYrew|3phYG#nWQj1F%q(5(R=etol@n6e(=ek}Wy*SZh zpP)vRR2HNb1I=Lg_|`lk^Y}!AGd>6GHXWHe^`o+v6vT+qlFXc924PvnLwpU~?LkW$ z!nWOMW3c(|%?LH4EVCq4H#M(JF9l?f$%Z<;zubFgtq}8DsuXVadIj^HU;vLrfAl#H Bl5zk5 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/21/4c7400eb4b2dbc1ead6d2c734f6d1a17643c92 b/project/.git_disabled/objects/21/4c7400eb4b2dbc1ead6d2c734f6d1a17643c92 new file mode 100644 index 0000000000000000000000000000000000000000..781933ee0ae1f7e53a39f943d6436e826832abe0 GIT binary patch literal 303 zcmV+~0nq+<0V^p=O;s>9G-WU}FfcPQQE)6M&?_mfVE7Z%@wxwCRCBibX4h*S&-hMH zd%Cc{MYi{xvtkoFHZE> zC#Vr6l?AEAKr$uBr~U&L0DGt5MKj#d(hH` zux)qR7;L_KGeXTM%PdLNP0cIQO92^VvY}4zFZbSAE5!VkDutW9Ucr1P7yzBsfn&_3 Bn+E^@ literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/23/7620537102a30df5203067ee47e514464efa41 b/project/.git_disabled/objects/23/7620537102a30df5203067ee47e514464efa41 new file mode 100644 index 0000000..b88313c --- /dev/null +++ b/project/.git_disabled/objects/23/7620537102a30df5203067ee47e514464efa41 @@ -0,0 +1,2 @@ +xM +0] I'=ό-4So-|{}Qh]@ qPFx7Lɂ/QLWdKJ"<]>#= rKxiu9x[I ևyVF)ģ,r_&=G \ No newline at end of file diff --git a/project/.git_disabled/objects/23/fafb9da0510a2353f22287b851fde594270bc6 b/project/.git_disabled/objects/23/fafb9da0510a2353f22287b851fde594270bc6 new file mode 100644 index 0000000000000000000000000000000000000000..3aa79b107090be03020f2e3a9f6f187f9d851b69 GIT binary patch literal 3969 zcmV-{4}S1?0mWKbbKEu(-e>&^B$djHb|vbt<2d6eDp`^p?b?<~N9}{lWm6o?3@r}H z<)I^r{`-F24S*nrI^vh;!R7!BpzjMfPqK5hvAOy3c7$Ul zSrTV%Q4p*VVA-s@RS_TKgVa@=lxs2$$fdP4wWlXxom7f2mn|n*p(bIHoQKiH5@5?p z?d`wWIeT~d`RMTY^v&VBgTs-B!j`&SQYs#g)aHu9j%WEetn^q_nW{n7!JgVwVX5L& zRWq%sy2^?;Ot2&k=X#{R-_7RpI*qFvby{exj*>8~;&l4`3P8rXjEXp~;w%N^j*9An z_bzp!BN|oNM9t#qY!%!Jqe?|#agNbK&$G)gQF)Pl1z@QrSp;Op3Udae6j@+D+NPQn zSv{SpicrW63IXF__ZX>CiCaX< ziqQ{YRTo;l4j~&icd3hb63fbyDon>=L9Bk8C1YiOJ7AIfdtCvGa^!@gp#7W2dR#{u zYkyi_UpFY-@&EMiC&Ka`OqE^WD=yVME=!>BojRqF(O|_m0e`Po%z@5U`{`v| zWa%6<(Wgw)*$U;fJ6Ehtp|1xf#kN%`Gc1=tE|}89KZS<0L#!^k7*I zBFnl`slHO|3Hz{4GZ-#AD=5QQ7TzrZO^YPBHynHW5olq$lvZFV-9fyIER6!mFpSJ}er9c@Cm^kF~F5mJS%JJApS^JW?C5o^^KZ z8|$jnH~`LFRGi`AXk&8uu+6FllEcz`r1kt<7p&Vdq<-5{o9pZ9#~+m$_?2vv_x_#C zN2}-8*J4klnigTCCw0Qix)VttzU++2s5p=!s8qU$bdHz;7hjN>O`#P)ON1480A*lS z1&9Pg#(XHu8udhHXOSe`*t1F_i|wE#0&AfJy`b^rFPw=I60uWrf)|(ckhZ@MFRZRx z%B##%^SVfkwJGv9b%7|y_9P}~1Uh85F%mm$(Fb7Pue2=f*sxkQr1(qmQnrGp;E!Og z%Mwwgi^LHUnz+mLVry`PobOqJufs zk&Z8sF_7@wRv_4Z!y%HocS*L>y_~Ppi!{4RTPToji9?CYCSf$Z^3{p}h1*d!)@o~O zOAYpS4?ld^d5yGee{bLeH`;U+7HP+MT9LXqRa4M#NuPo-ht_?Qf;y#Y>-~l29^W*{socV_8C#<=m6W_@Jw+thf*rTtTw=cM{R2!6*j{>G}G` zlSv|<0tan;G9(fwdi-~i_K;^F%V4s}6Se8zHVjxCC*5+IU_GDlS&e!<;4Z9x<6!*C zW@abhL<)VPt0fXl#H>FkO;Oo7R|qCIgCp4IYz|48(5AXZ z>+BHG2R9a|2UQBq2@_|=Vm{3J;+CD4M7ABY#zdO~k+nYlFdJM0u+#s%t%0Db)jK23|04==%1YmGr{N4;_g-h7xw_j-fF_ zq*TXLE>p>lM3vG`ltp?HU$-+@^0kCN64-g3Xm5M#xp78#6~=sC0Pzk7YmSkn$qn(POpa4!WOs_Q&08ZM?iCQu{y7P20$!92`| zLx;f#H6O|~Q_YbW5{>3cQzC;$8!ul`z2G`8G^wZ*;PwQ`fE5*`4$23u-qgsqLlnhG zu$Xy9v|MzY0$MT@%KAz;gR=UZ>*8~TBn>T>G7T^E=LnmdrNnuMEvgI;{5xb6I17?b zfeLc;2jIwKG~#L1(V&p3dpN~=)^p|}wZQ-?eh<`0GClnKOB=<-$S0m8aqe~~hO`Msq1K=;t*fpm$Z`kMY= z5xZFmHLt{W8_gv*6d_n9yHr_InU|Zko>?mK)(%4d8kMqx+ia)imv5eY@P1lS8>(du z=%xTX*F|!JGCt4s*qkQbh>V(hi$^WnHiM5DmMmR_BJsFm6pUkNO{s51S0a5dZGrSa zEH8Tp0=gl`+7(I1!9YxgTVPFuToqo4I!}&QQJ7Ot?>=rdiy$V0jKWr(C$KDi0rpsdfO*EU2y{g>sYeM8$y0%^DPQ%IU^^_4A9Q8_n| zY7*Akn5LpY%I*V2Oij(Z#C-bOny-*2|tPCJd;0uNu-o7`~#`1r~GHYl4kt1%!pAA2bk z#N$TR#s=J6+X_6@gd#W~Z@6m(MoZDTuwTtto;z#?ySD>GsiRQ(9CwIV)cQ5WkSSkm zb!kS01-5?c$!*_o{ZH|4qG>lr4lcCluJD2U_Th2`b=lHVe_19~f_L3Wtx|XJ0i2qo zZp02Gnc!OUdtBTc*SG~b&u~i-rijG2NJQ%C6?fjo-&)*p;o50w?S?7eBFF_zM%Scj z)n12ihRkJFll?C=Y0WKM#`mmfa~GGCmLsx>w9&Fha_nw50^Cz-N=G0)ROgi{>ztSr z*b_waS-Gu%sU-Z;>aDt4409^u?P=}S54RrY?{KpOhGUTa!!Kbse#^(*7gN!>Q~#dI zFGo><(obkwWtvKK2drtsW1exV&fJ7>)d^3CVu!-f71u3P1yM}!u8YaWJZ`W{KZ67a z6oz{lk5RQa0J?Xk{tRwT_>LHNh-jOler4u}>RO8y_VFD~cRw?QQUnPo?izTtxr^X% zLAMcOU5TOEBGLAsoFM4ZZm}aEwxC2??ON&t7#xXW`LmOOG@T!UpkkUD2Q%Ecb0e4T z=nz8q+gA{(lREpFe&u>o*;(D~v$@w`t-X#A7LI;~9cojSq7Nz|Pjkk94!g(xKY# zvMKrNnND&wj>Bo1L8WjjYlE|8Xpc6q(_-=A5|deZ$i2ycehvlq;A$N93YlNmFenQdiQhWnN zW}7F_V;~=;M&O=Ii_iO3IrkTd@%MRz8XxpQay-B`J<^4M5_3q_DpV!iD8T2>GJeXW zuPaV)%n+D7!cp)+Ec`rxpEUbf22J>wY3KBznK}ib7Zke#M!<$6r)BVQo|_1B`yjQ zc(3p>L&fUsN;>>Lg-w{<5{KQm3CgZ-JBRFyzt#xF?oC+J%|Va?J2}*kv#4wwh9m@x zWv4Wt!ocIOI0!hzcua0_uxz7xIM3>|+MR{Pl->aKEop&Z^}1W!r1*X7>?|Ef?}OYj zNr?NF&`j$D$3p+nQkOOdWa-;ui~SqP9CoRST1(T7&7@r_j+*;MNtlr+@C{z8 zW^~c<2`>l4Cov#z1ee6w96icx9voQDVz_A&hrYaz7nwc0yid@jeAP;zITJ5HFRmu)q;}I!!pLY(J)X zjA5oI;&=yj#kE)%aPe~_WtW;~)alA~MDI3@W>9bIIo^6vm0%v6I5dD8!lXT94;Vrz zdyeOuLDExPs#yiK?RVD9_ww!ttNqQ;>^I|xMePaEd}@Opr2K9T^YWBT0uEk9o01E4 zW&7dc7q8x-`ou@Tl_O2dtDmt?c)HU)cVM{3Z|+dc)|G2M(8YK-4dc|c9h&nwhv?yH zlZ7o7WrNm}8h1=I)6s>x$!h9Wrm1;(O^;h2L!jq;Q^NK=jai_)zb6y+J(B4|mKzB4 b5O#q*Ug5HE=!1o+JEluHb=3Y3H#k#%aB#SZ literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/27/9098e9fa34030017cef48e0c0e7e46f95bd30c b/project/.git_disabled/objects/27/9098e9fa34030017cef48e0c0e7e46f95bd30c new file mode 100644 index 0000000..19bcb25 --- /dev/null +++ b/project/.git_disabled/objects/27/9098e9fa34030017cef48e0c0e7e46f95bd30c @@ -0,0 +1,2 @@ +x[ +!@vq}]ZW3ԁ9?'Z)rٙu*p*)D#*h39爀.Ɗw:F%@K.b>C19:|.qNyϱemk{TzB@%ϠDMue_D CP \ No newline at end of file diff --git a/project/.git_disabled/objects/28/20b97dafcfe569c2bf3853143fae3789326677 b/project/.git_disabled/objects/28/20b97dafcfe569c2bf3853143fae3789326677 new file mode 100644 index 0000000000000000000000000000000000000000..b300bf84737bffd783130f38faa22216cbd4e509 GIT binary patch literal 85 zcmV-b0IL6Z0V^p=O;xZkWH2-^Ff%bxNX#sD&dE&8E72<{W)RF|-ml2xxyM^Z!o}M7 rk%UQxXB1Rjc~NQ}LgA*X4i751T6s3NZhRpd)p_?ur}}LG#hxEs{-q_k literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/28/a87caff04583e9527f75f10faf578bbc6766b6 b/project/.git_disabled/objects/28/a87caff04583e9527f75f10faf578bbc6766b6 new file mode 100644 index 0000000000000000000000000000000000000000..303769d0c246ac5ae236dcf24cba3d07b7bb6d20 GIT binary patch literal 906 zcmV;519kj(0hLzUZW=KV?el)cyk&_HA+)3s2vsRrQY0=_Ad&in7BIoe?s{c=X{v~q z{8Im*pVBYsjO|?(NUKze6tF#Kj%UssGmpd^8t2W6cRWso)S!Q)44&bhDaE4eP={6M zhH@^FKxrO_npI&cd76KNEv%%7;iOhOqfm9y_Pnz*=!!(?FwqKDLc+oz;J;{*MWN=n z=`H941jGJh(jSjzy{qnYdlKcl`V11yUwyg%(yBi(Gu~E*Q+N zgVCfv{f5Ey+GTSWOCj;EpWq{fm}$uu7L(Q=c_bpPnXEXZo2$WKJetg=*C#WkYmdF;uQ zew8H)s!dTRMwPbJ_dS43(UVrWKe)5xRO|(7L6XIDCaYAwB+N9&l0(cRrtp+X8C&ih zc}#?+9V+N8_I5x8QD2$-A~KnuBrJPP(}Oi`d6m|_3Z4W1L)I2MCdC3lIct)KyuruzG}Z^(l|?N*Lk~f(5V&-L%ps^ktNI5yI8St z3(+WuwP0ih%Qtc@mTOw{_!C?DjYaCl|a-RPlwjJA2)2Z}1{*jg)QzuBLjfFKF~_g=CX8&LxP{@p~3)sYsg;`_Pt~+?n*frJCJQo4fWD! gR?O4bXy$#Tmv!&mu^e&O9@fCzF9>h@2Y#Z{uqltei~s-t literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/29/099a701aa79c28941e67172b0770e5fb4b8d5d b/project/.git_disabled/objects/29/099a701aa79c28941e67172b0770e5fb4b8d5d new file mode 100644 index 0000000000000000000000000000000000000000..d696ff859654fa86ee67f94ce415c30335956f50 GIT binary patch literal 806 zcmV+>1KIp|0V^p=O;xb8G-WU`00ITQr2L!`hKGssOr6N@chwNA5+aDi^S;(lUW&E%ZNgi1X%5=Q%9vUaofifBC zxnaXfB?YLe0$_+Grl;!W0D~H6ZGIj@_$9qrN1tDOQetQ^OJ$qOE8VsBcTp8X)Xi?I za0<5Mr*l3tha-f^!W-^1Bt~<6NlaF<5k{8t6yqgh8 kWidQa0M&lZNO@yvzv|f+_Bnn|j=!$o&}rKY0C#wawRR4vX8-^I literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/2a/540db28bdef4e91de30c51e6e2f58ed9b21cab b/project/.git_disabled/objects/2a/540db28bdef4e91de30c51e6e2f58ed9b21cab new file mode 100644 index 0000000000000000000000000000000000000000..30830f5c34e00a090c496f887d5e9ed8f4882618 GIT binary patch literal 876 zcmV-y1C#uC0V^p=O;s>7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A4AT41y0_SY*PXs(@AHuc!LgNpv&>yVX# z?Pe(VyLom!>xK6o{x7o=XNTDoeVd&MRaF3tgv9hz-5g--0bQ7%$MC8qjMLJ88toKJ%3{iLK&RpO7X{)ZJ^&~pZ6`XtZRhPXNOdZgD$;HJ;9@ko~5bN!r zC4GM%yC6^E{Yl*B3~7+)D=1CM$xLQ2lRU%Q)&Kh9JjcZr#{4YInRjpWLKGAiB{N*$ zR9&X$SNwLF<*liW8>RC%rnlxm?J7yk%qa&39+G8_>wPL-gq$qd-MIBXzd}sY*(>Ee zFxAD-$bcjUpm#qkGG&cbNvK}>VBZ~2|39W%r{?cQR}2mp`G4OSZbrVDXPFzN#(nwg zPW4UaexNJN%TGy#gbuH5p-Yx)O#I9`oBx{vX5QNH-D@^fby;RfD$KPd#SDFGZf{dF z>AGVZGWl4?CV4^4&ASwZ3X~erLm^* C$IXfW literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/2a/a7205d4b402a1bdfbe07110c61df920b370066 b/project/.git_disabled/objects/2a/a7205d4b402a1bdfbe07110c61df920b370066 new file mode 100644 index 0000000000000000000000000000000000000000..35ab6444c1e3d7eceecd124e28764cdca23eccab GIT binary patch literal 83 zcmV-Z0IdIb0ZYosPg1ZjWJs+j$S*2UNJ&jgEX^rVsOC~oD99;I&&(^f0&^4;N)j`3 p$}{s)l8Zq?wK_l*3JQs(CHVzKscD%NsYNhRpj53j7XTZK93D{+9_9c5 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/2c/cd9792422d03c979b5b72a44d45c04c563bd8d b/project/.git_disabled/objects/2c/cd9792422d03c979b5b72a44d45c04c563bd8d new file mode 100644 index 0000000000000000000000000000000000000000..4dde1bf05ba29356c4836136c8e3066f56bf623b GIT binary patch literal 404 zcmV;F0c-wv0V^p=O;s>4vtTeZFfcPQQE*JkFD=n4DXw5RQWAFWQT{#coUdN%6eC4f ze(*65gDP@PEK17H^G{1FPKBu5u=e=->siU=4=Npd|Li!frR*%T52iLhuOu-UqAc0Y zY;N<8D4Ey34<=Y0e!uYKPkt?!veKfW)V$=%;MAN{sOrV0)6Ab$YdHti{{0*f`1)$Y zOV`s-)viTF`9)6orFkidMU`OJnr(BM`s8?UWZ;e_*#N=H)jYfA_&^nV)m+t2 zF?{uR)k$YBk&c%=-eUjf&8~r~DfcW1&o9a@2CGb8Hv9hNz`YK$tT+Rs57(?d;km69 zsuJRB|Du%CBCyguC*3kWowIYu%zmb@b@vRJ#+`oCp-KZv)6z2Y98<~?fkBWCal@>R z7iZI^TrUe+^4r%_O+!gh@unG6c}P)afpcO`a%oOtNj}7IyJx?b=T=N~V0y+r<2pnC yX%2?t5>VBViOCry!KsNw$r)gGd@-ES72o literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/2d/8005edc4dae70788318c3c75d91a8b17d701a5 b/project/.git_disabled/objects/2d/8005edc4dae70788318c3c75d91a8b17d701a5 new file mode 100644 index 0000000000000000000000000000000000000000..d6310480b14d10546fe1cca7a12fef79c99dca30 GIT binary patch literal 4274 zcmV;j5KZrR0qtAsZX3rH?r%TEL})`QAgOCzSD_R*avT^Db;^TS)d;BVX$0`CpCXL zn^nAiS%UO{&3SzV{%1v+6qO+`8XZK-W^f{KTmJs?kS(K#VEKZLx=~0r`yqrZbXV}@YVt0=itBbrkV|kNJ zc=;v1XGPBIs9ZhGiYBkWa$gns*HQf8jP>`~`31W!k||Ayqcm>P2nr@Cp0QqCCd(fC znf0PPZz5WF-CCN2N`qg-MQ%A+N@<@d#VFy6*%(*V#I!q;owNQOQ?uCmto)|AA`0&q%hkNYcg2V(FKvrTOVy$z%ydXNNi|>jXUS38O@9)!i z{Htz~I$p58yK0O9tT#4${a7yaIwSI>Gb*Cc-t1q1~H*d7V< zbR!!|&Ssz>rUY&tx-|QB*?58{q< zNroYeFW8G`XT5=vni0V$nVQvwF`G952hxIJ!;B*c7{e0=^i0M!@|Iar!dHxD$*Q0i zxgF>6j5swC+p;B?Nw6O=nJNd0FLFU+Kh7G?wmm(+J$$!i-|eABKGGi72&5t@Lg=$v zvEcI@u)>kfK@#NV4m(LspdFEQ8q6UVj^^4Zh;#YYau2ug8p*&T|0P(UUK!D$&k6K@glGU1UFkb%uf# zw#wOaLKIZdB@zK|5!7gaVx2Bw9p{@YHv2N(#w(*bRU1e@&{O*kTQCBTteV-aT#Xtc z3GMepTu~)3MQOWnR5}m{!5=xT2C{Buj-DV@HYN24`QN^f(wpTJ;+Qg|!07~4sE~!# zIplb$>QH16GCPV3AfW^)Pgjy15RlrEqc3Ujc`JLTuwo5{eI;Ckec?O{b-K^a5P1b2 zs2%nNuj6TQ?ba!i`S50uK*J?LF`o|8Ija`Yw741GrffNU!m{Xgcr!f3x0~S%+56sw zGJx@H0wu}Tjid``C#7F=`7su}MV&n-#HAD6|oD|5FgT0(O)0wK>*gq)ce1XI}rovzT zj1Lyami_TESO}`J)FC~OFesvh#-d5lAX75A`nFX4-@p9gEWXrhj}KroMmTrE&)Dam zv(I3-ei{zblvYL?XiHJr(J_RR-43IsEJF;Z7Jl3Vef zPFNygqG#VZLa{9u`&t*0`pFs$+wNZlEa5|-s^?}jmR!v@RPhvLFi%|yle8ejBz&$i ziD((0CQas`jxyz=U=booZAkWoXGdbC1F=*G3rW6gEdJ40`9qyY+0WE*K)<2iRGFg@ zY3m64@;X8@@%&DkgQ((cT(aX3x{xo=F|;o&7@~i!YzT=7zb30jZ*4RZmW(1(G*nO# ziacc`)xAiVMSMBUiqIJ_6|6T7p>;3QY^xy${r;H=Q;d?Lz z;9lHR=Xa-F%53|(I<@E;`e1lBCm{a^dT$l&IvtQHRwc6e(5niCfLKQ&dI%vQSgw?*Ee%qe9n0-4c?Ti(@Wlvik$7x^$Q(xRjzqz>aytf2_) z6-a)QdWBP5>f%&IIn0ZCh@K4{2K3Mx>B&ZeW&p)=FQB-7-`-`IvTAvFm9Lg5(yMTW z$hzpT2zOQ7Y&*(Dr)^j*ah$QGjbVv1_6pSowYYweXH&>dgH3>kAQNPax}NuF@YqOIky4jGtg2Y~U<97jSQ&TH&+ zv~^7XQuHc)!x61Lsi6g~drfe=gzntXtp_xDlom-=s}Z#Udk`9K)$rsR%{%H1<77)7 z7oj&p_o}J|I{6svap+r4%gBXx&|rnvIEAKanzj1_l;Y0<($G8Krs(k*P7Y8ko@8Nb9_J}eeOC5 zh&{`e2b@%>5GPdd)2{iRe-b(R`7donUW)t3jW~8AnPf~fNbHTlzT9dguHKv6(-jwaujRMjl{qo|bz8DWg4E91 z-L3;u4Mor7U(M?Myg@5>TJP}hAyoqL2)vyF>ciq4{#Yr&D0@()Yh zdkUjb+vWpd7+dnC;7YtL5-3{c`zn=l^!lq0bXu{gg?V>|+m4QKJKVz-!rVhAd$NkE1MF_R%mG7o^2eP@5r|D46=dSLb(XBt_L01PB4Q z6P8nTKCBL?Gn}qkcb5-45(BfO12UU)Ta{ptVox>@Q#;s74o-*Tm#~Z=X7tbas&$iG ziNnaHmH+B_@^>py+mfImdC`JaK;KTzEM?EJ?PK}LkiiWU!Z2J0=`uPyZQRBl0XsNN z^591%mpajE`Kl!buh6D7av1o65|e#%`}Amk{ils2+A!u4M^)^5sD8OcBt{^p-RJyG znQjwD+ZRiYKUbhMe=$5c7WU?*=X4QbhJM9xkxZwZ39sQV$^4UO{X+h(%GemxNb}jf zQ#m0@ah~fL%tm>7fjgSuLSlofBuS3rv*Dq-FM{ofO0byFUrhjaurW6%``mUkE98JJ zTG*tw5Vix$+v?>;2%_YAW|5pOlFR8v>YHs+Z-P@@XbtE9GA(;tnwQ;e0{Kr52NneoHgQS_&d2WL9L1G`lGh^R9?19@CPZl zPE{aH&v12c`djW!+yH%`U;1jh&*eUHck0FoZuQs0wh>bp_$Wgb6E{a96FYS0aqr@F zQAa7RuXTSQsaWZkO!kbHIgLEN^(Y3l?tc zy##+1;78PZ&iQP`W6t<&obtOhbc83aIXP9mQ><+|$5TC(PjZImpWpey-EwZ%X~$lx zMgy2^<8(y5dpkEfobO%9BLXyK!ehO_3c649dbqesrw95#PjtZj<2)|_clErq*r?$} Uf9xUc#V~*y=IclQ0g|pe69Jk;3;+NC literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/2e/02dad998d13644fc43668bd7bf4e3c824b5514 b/project/.git_disabled/objects/2e/02dad998d13644fc43668bd7bf4e3c824b5514 new file mode 100644 index 0000000000000000000000000000000000000000..902d60949d1772554b02484a796b553503bde619 GIT binary patch literal 1129 zcmV-v1eW`F0o_+!Z`(E$-E)5htB39(mes^*>;zWYplb&V8xkNH_Am?qMO{g3C{iIQ zJ6e(dzDw%Ui(6n=i(-4REt5R=>+qhdM5u%;j!%}~t)Hig*`@+g*ixK7Te~kJsLbO4 zWN`kBkaYnxbwBWD36>I8P;J1*!LK*(!&N|{Zc%V~M>L2y;7rMYI9U8$(i|eQ$qyb% z5s*Sd76(yPXBn5FP`R4p+6dw;NLu2_4To)|v<(QtS&(RP%Trs#DQq}{&_B!wm)vqH zLc^$l_;CJm0Be1I9){#fqZ_&*zc~MIXl_Utc3xX<1)N`bf5>H)VPqsEZ>dg{?4B)` zImwhJ*L4NDp{%fG9kmB1d1<}&e@|Tg$H+eEeXd)~6b#e6vfQP0NXF0gLya+&0M-zY z8?KcsF-=rp6-=e1;RzSqHggO|uv$Mvt~|yQd|;S05P?(luMcjXi;32O0@y!1FZ2`8vu)x)4GWs;Y zm#yE9Z~yf&w%30rB!9d2B;5aR=Cw4Hpr-ISuL@;Vc=+mMxjH>vELX>;$KmlZIXa?8 z6i!d*Yg$_s<2@^>eUWh+GbF-``*`&dt2I*S2AOF=f08t|T|YxcrxVXiUAh)#W}?p|%>`^cJ0s zu@wui3bS^JK*^24kjzfQYgGlWTcPyC{~f8?b3m&^*=fLBrtmOBX%s?j`vc<`z^GJ` zV^qEDf36*m7yR1ln%P>T?EFAcuLr4aMX;MIXjKWscJ+!xdho%ZHn#WqqlY3Sc;j{8 z!3Jj}=uI0|KuPCH=fP~)=S2oLUFw`l{-*~WmtD3T#BO?q)2>ZS3{-xS7^P;!al_8% zc0L)31{2dej;6ke@Q-o0tWsvLa1d~*?bGcN-Y4?ybW0xwZm=K#WkC9T9xN8&Nw_== z4_D#xD15aTOyJJW$c>YK44EOrRf%2SfOf;*bSu`A`x0=OsW(sZ-&OgscOx)Z&kKX7 zzjsS$uBS)WeOkSmRB~#s-|L7DDVKgT4iy!Z&Ca9|bohVx???Z+j#?IX((~0R{Tn3L zZeSXs|59wOlpD!$@V;PvF5ORrYoMAH-Im@5M+B$BI~Visb&JMs`1(HnXgts@3V(TP zEKaET;}8?#-Pbsnhg?>*2i0(2bJsw8r+a#~uS{E$rTyL vBnRi~2%qӯIgu:t\N<);;slUC \ No newline at end of file diff --git a/project/.git_disabled/objects/30/64b4386eb92c12236809ec3aad0f39b03b9b8c b/project/.git_disabled/objects/30/64b4386eb92c12236809ec3aad0f39b03b9b8c new file mode 100644 index 0000000000000000000000000000000000000000..cf83567249b2bae80d1fa002cbcc49428d1a502c GIT binary patch literal 838 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 PFo3UBJv{jz!h)Du0kTdG literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/32/edcbd78e031deb9cf77d86f1b7d6f82e9e639e b/project/.git_disabled/objects/32/edcbd78e031deb9cf77d86f1b7d6f82e9e639e new file mode 100644 index 0000000000000000000000000000000000000000..5b1b2f5e78809adfe0654f97529e6048f6f4f13f GIT binary patch literal 6089 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 Lw>SI^acS0}-O`c- literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/36/19cc0d8a8febd19e41a338330f040369ddd88d b/project/.git_disabled/objects/36/19cc0d8a8febd19e41a338330f040369ddd88d new file mode 100644 index 0000000000000000000000000000000000000000..c5f9292a5f012122afabeefc7c1eb2c8473027e1 GIT binary patch literal 168 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 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/36/b64295e4c7535951b8821d501179ab0cba9c4c b/project/.git_disabled/objects/36/b64295e4c7535951b8821d501179ab0cba9c4c new file mode 100644 index 0000000000000000000000000000000000000000..526ec2d4063d3d945645686857ddc1513f7e2073 GIT binary patch literal 745 zcmVd7 zK{!IHRRI(25+=)0lYf9u0<~Rp9gB02sA8UA(8i9qw5U@SBfM%=8aRvq;+%^_qgYFMIW0py0PzJQg#0XWx@GGTB=Rh;T@{B%ApNA%kPA*>ATGituU z#PfV5BfXqySHe|G=F9=mXe%wLF=tMzE1cD`9Sw1HsN%MN&pcT(8|OXnCe1aqam@X_ zYGlPq8nQL?TvgPgzK&(O1~z*2A}equ7Mutb|)ZJ(gu+d3HVRmr;qb_eQNBa z68omPmb|F~sfjX!Etw8mtz_2m)fJK73~DGZO7ML5mwcC&{6t`-5-KCnRJ8`1BXCK> zxk1TM#u&mYJ${2==`CwaH5y-^3oKcNKuHvCX+wdjO1}nZ6#cbUk-!2<)P@^t!hw=< zAS9}+Rk9ZZpyZlX!|&CB27UDeTP|s0LZM=2xsstqp;$7#Iu6o0?X4#YXa*xup=)y8 zhh`%8!L1+Q?p)?-gL=_scqcWJhC9k2Ccm^9_Xzt+fYz%w3SP;fUf|<(t+Jai7_8pW bzxrnDoSv|M=B3-}VY|`m<#7B5U`O~1nulo4 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/3a/081599aba8943dca8bdb4366241c9f8cf10048 b/project/.git_disabled/objects/3a/081599aba8943dca8bdb4366241c9f8cf10048 new file mode 100644 index 0000000000000000000000000000000000000000..b88052a64729c741d916f641124571e815e0a3e3 GIT binary patch literal 403 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 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/41/105e22153e29ff19b3d9695b784d58ffa5909a b/project/.git_disabled/objects/41/105e22153e29ff19b3d9695b784d58ffa5909a new file mode 100644 index 0000000..a49c853 --- /dev/null +++ b/project/.git_disabled/objects/41/105e22153e29ff19b3d9695b784d58ffa5909a @@ -0,0 +1,2 @@ +xK +1 a=E>R"80f+ͿeԢZ0gi DZ"%4DA̋uK0fB)Q`}Km>t~.BHH `ߝiӻvdB \ No newline at end of file diff --git a/project/.git_disabled/objects/41/af4c78e854c974bb81b5ff0f205c82cdd4778c b/project/.git_disabled/objects/41/af4c78e854c974bb81b5ff0f205c82cdd4778c new file mode 100644 index 0000000..4f2e7ea --- /dev/null +++ b/project/.git_disabled/objects/41/af4c78e854c974bb81b5ff0f205c82cdd4778c @@ -0,0 +1,2 @@ +x}T[o0yoYt+/!$4$'9I\&YwԕJs|.Ʉf& \me;ܹdժ՞ h)d\+oI):BՈ9ctx޺+﮶G-A¦I>?#+yzsJ)B[g0 I\fU7d`Cn^jF/3@,@ E05Й-S"4گz PޣP(P>|BY.gP" ߆\Ugɚ`` lħ2 RigaIoߞr곮?YAsr,Ig#T.T̼|'t{ֿD} y^va !XլлBc\a2R[9g N+,~$3z>!?qWL:m<TiOzŨ)cbiii`C8qF%-u y1KV{CJ? +W 4O0RgӢs^ ߸3HlmUkCk^Fa&n_}r?uؠ;7("'ƯV~ rF#Ӧ s+J<=+l\f6DāLmaX|| \ No newline at end of file diff --git a/project/.git_disabled/objects/43/fca42b7f06d04645f6f9da5877cbc91db8f663 b/project/.git_disabled/objects/43/fca42b7f06d04645f6f9da5877cbc91db8f663 new file mode 100644 index 0000000..4f55b52 --- /dev/null +++ b/project/.git_disabled/objects/43/fca42b7f06d04645f6f9da5877cbc91db8f663 @@ -0,0 +1,3 @@ +xK +0@] N&dH2on=xԶm ;Ig)njW m!%P%Sr C)lؘLFV]G}e/,5nz +&~lE;;κ. 1D \ No newline at end of file diff --git a/project/.git_disabled/objects/44/4ab364a4ed3e52703f79cbc90e0c238a0b4643 b/project/.git_disabled/objects/44/4ab364a4ed3e52703f79cbc90e0c238a0b4643 new file mode 100644 index 0000000..cdc73c0 --- /dev/null +++ b/project/.git_disabled/objects/44/4ab364a4ed3e52703f79cbc90e0c238a0b4643 @@ -0,0 +1,2 @@ +xQ +0D)/ni*xI6X{&y:OXv# ,21y >ZKH@!fw ͇WY0RBCNce\c2뫭ɪ6|E$wڲ-F88ў|S3Ig,u|HK \ No newline at end of file diff --git a/project/.git_disabled/objects/44/4cf260e65eb3fae24aa5ce71dca8d2b56c0ed7 b/project/.git_disabled/objects/44/4cf260e65eb3fae24aa5ce71dca8d2b56c0ed7 new file mode 100644 index 0000000000000000000000000000000000000000..1aa5fe07e8ad0dfbc777375182032d8f3d02a8c2 GIT binary patch literal 875 zcmV-x1C;!D0V^p=O;s>7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A4AT41y0_SY*PXs(@AHuc!LgNpv&>yVX# z?Pe(VyLom!>xK6o{x7o=XNTDoeVd&MRaF3tgv9hz-5g--0bQ7%$MC8qjMLJ88toKJ%3{iLK&RpO7X{)ZJ^&~pZ6`XtZRhPXNOdZgD$;HJ;9@ko~5bN!r zC4GM%yC6^E{Yl*B3~7+)D=1CM$xLQ2lRU%Q)&Kh9JjcZr#{4YInRjpWLKGAiB{Ogt z%7_RAO_f!uJXC)&d&%8}cFD?6yGjx>bIO5%hh&-KdY_6HAty_AH*WpUuMpF8_DXpV zOm#6dG9ZZo=-m&COj%=95~`Oz*muX%|Bva`srkFn6@$Y?{@*u-n~`tkS>{HmabNzr zQ+?C9ALt76@>5bFp~Gui=#u3c6F;-g=KrREnYT84_nHk=U6xsr3Uh5qF+<;)+uPJk zy6)J9Og`4JNnTKM^KM2YmC%?5rXQf%&lxFiEbUi4`@%lQ&&l!E^&2{En*k25uZWDw B&Hw-a literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/45/19ecfc9ae4276613664f3092d8555880e04b34 b/project/.git_disabled/objects/45/19ecfc9ae4276613664f3092d8555880e04b34 new file mode 100644 index 0000000000000000000000000000000000000000..d89c8cb5bf720cf4e4b49b515e80f15605ea4928 GIT binary patch literal 876 zcmV-y1C#uC0V^p=O;s>7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A4AT41y0_SY*PXs(@AHuc!LgNpv&>yVX# z?Pe(VyLom!>xK6o{x7o=XNTDoeVd&MRaF3tgv9hz-5g--0bQ7%#}Ix=Z`RT07oU_E zTFg?}=JHB+t^Hk8#SnF~+bW#G?FHt1jPuHSYqd}0J4AxgY2X^YT+tA)&)-Tj-MI8WTUW&gTE7fSI>8eD|6SRb7@@k_vNeNijp;n%mpd zOuFvahD<)zu}NM~bMtOSB$d#Z2BsgN+Rqs&Z!GOsJ^R8w$Ir>}*Yz7ZZJPnrtg`_k Cxz3sZ literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/48/3ba7ebd0dd92219fd5d68a7c48051231159ff3 b/project/.git_disabled/objects/48/3ba7ebd0dd92219fd5d68a7c48051231159ff3 new file mode 100644 index 0000000000000000000000000000000000000000..3fd8667dc080bbb3cb1cde7326056f99b3dd74dd GIT binary patch literal 85 zcmV-b0IL6Z0V^p=O;xZkWH2-^Ff%bxNX#sD&dE&8E72<{W)RF|-ml2xxyM^Z!o}M7 rk%UQxXB1Rjc~NQ}LgC5NDi%syN9wje_~%}0@X?)TxvD1syt*CHBGD)f literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/4b/23ffda06d9299bfd136a1115158216d19a9dee b/project/.git_disabled/objects/4b/23ffda06d9299bfd136a1115158216d19a9dee new file mode 100644 index 0000000000000000000000000000000000000000..9ee7e54d5af5f76bc5ce95dee65fa09af41dc927 GIT binary patch literal 798 zcmV+(1L6F50hLv4PunmM-sk>`6Rk8MElmqdup&Mn##Q-x{MmZj9D zEFJn`Zt7mI594jPz(QKgJqV@XLyp!@4TUjK#L&rTd>6|_c#{h+ zjfNk8ARW$8spLkRxlTo1W3o;x?XuyFtRc{JCTu#N&(q4+>X2Wru0Dw3XX`x35|*a5 zFvn?dDP&oqjbYi?+htZtg$@R-m2k8-+KV;buIgC#5UC$aUrBups2r|a`LKisNuqD9 zhFz+-^1gACG#ymN`GLh>Ejpi3$W=6o*N2_$$PRSfpDL5zOu%wzhe>12V##qsN$=^5 z7!pkb)H<>hioqwl2cyxG^zH5Kf^#b5vhyEI9vvOQ<>gu6(m`oW4QJ?IJ2=(3U6O{# zfRd++&@*OSmXa7neic=#&^wIQsgkqDf=$a-DPmgcVT1MIlW^G$E?)}QSUDr}2*znh zovXHpDe*I3VW94(W*U~EOQ?<{3>wXnE?HUqSa&DqI0aN}Q8mJfI-os?$Vi=$3(2fa zHxRq2;a;Bynt5cs6*SlRn({A(DqzC7@)cm;|2hNFuBv>!9FW zw~*J%>T3|NP?NYpz8{%(JfL;wH) literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/4e/ecf2bbe122cb54108063a78841731877438af2 b/project/.git_disabled/objects/4e/ecf2bbe122cb54108063a78841731877438af2 new file mode 100644 index 0000000000000000000000000000000000000000..6a4d1f30dd34fa2aebb08a36d6a56626bf00017b GIT binary patch literal 303 zcmV+~0nq+<0V^p=O;s>9G-WU}FfcPQQE)6M&?_mfUP>ac^cQL^e4;w;(?+HLs+YVM(df)RPYt z*FX86Z_Ldf^7MFLzAn_3%)FG;3ccjwVur29WTvJI{%l+#H}(6U56mrQ=XWbX73C&o z=7HU^{o0YsdTyF`Ztc30)yyz)ebV9Oe;~G%q!yPjNPphs&Ud49;=h*n&UL*$dU2x1 zK0%ErsVqn>2AaX}@vV78=JAOJXM7IWZ8|b{>PKZSDTooJC7C(J48pRChxi(}+k=)i zgl)Ui#$fZ^n-OY8S!PM9ZfahcUJA${lMQuxf4TS0S|R4QR4Lr-^$O-Y!2kt2fQ3rR BmqY*n literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/4f/3f7173b383e385a857dd12b86cfbbfd93ac7a7 b/project/.git_disabled/objects/4f/3f7173b383e385a857dd12b86cfbbfd93ac7a7 new file mode 100644 index 0000000000000000000000000000000000000000..fd50dcbfc2637d773995ce7f7cf3a8c3fc049bde GIT binary patch literal 876 zcmV-y1C#uC0V^p=O;s>7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A4AT41y0_SY*PXs(@AHuc!LgNpv&>yVX# z?Pe(VyLom!>xK6o{x7o=XNTDoeVd&MRaF3tgv9hz-5g--0bQ7%$MC8qjMLJ88toKJ%3{iLK&RpO7X{)ZJ^&~pZ6`XtZRhPXNOdZgD$;HJ;9@ko~5bN!r zC4GM%yC6^E{Yl*B3~7+)D=1CM$xLQ2lRU%Q)&Kh9JjcZr#{4YInRjpWLKGAiB{K;2 zy=3)#-?MCj$?Vk+{|L2kn>2ld+EtR6nNto7JS58;*ZWkw2sv4@yK(D(eubE(vscP{ zV5*CukpW2zK<|E7WXc+=l2E<$!M;15{(nrjPR-wqt{5CH^8dau+>CrP&oVbkjr;P~ zo$8y;{Xkckm!Faf2_0VBLYFMpnE07>HvcyT%)GVXyVq=}>axs|RG4c^iW&OW+}@^U z(sjo+Wb(0&P4a@8n|CuJsf5NfF#Q14e$GgFV`;zY*%$UXeol_RuHVpU+YA8x$g(-r C$JK}c literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/4f/56a32d7d5b29507380ea7538ed2b1e81682840 b/project/.git_disabled/objects/4f/56a32d7d5b29507380ea7538ed2b1e81682840 new file mode 100644 index 0000000000000000000000000000000000000000..4ccdccc3dc1c6b85ff25c578c91c584ebc9b1f23 GIT binary patch literal 403 zcmV;E0c`$w0V^p=O;s>4vtTeZFfcPQQE*JkFD=n4DXw5RQWAFWQT{#coUdN%6eC4f ze(*65gDP@PEK17H^G{1FPKBu5u=e=->siU=4=Npd|Li!frR*%T52iLhuOu-UqAc0Y zY;N<8D4Ey34<=Y0e!uYKPkt?!veKfW)V$=%;MAN{sOrV0)6Ab$YdHti{{0*f`1)$Y zOV`s-)viTF`9)6orFkidMU`OJnr(BM`s8?UWZ;e_*#N=H)jYfA_&^nV)m+t2 zF?{uR)k$YBk&c%=-eUjf&8~r~DfcW1&o9a@2CGb8Hv9hNz`YK$tT+Rs57(?d;km69 zsuJRB|Du%CBCyhj4_u)_YgDMRuO-swnb4)2q1O`Dm#0|4L zUYt#va=k2Q$!}jzH4P<2#hWnYAw`)5&WSn6r8$Wu`4GeHp8Z~)TQSjr=^6Ws>kR#; xIT(&hKn;&fOwK3?PE9OI&H%gPi{Xr}_||U$)w|m3*#VZ$3eN0D=&h5;g)U_U#4RalGg_W<0?z z|L*@SvxCEd?C!UB-QjI=GSca+0z5xbW3niB~rvb_SB>_ zKLX^OS+q$_VvY>M2vM36M7SlPWe=2Z2&v`uEH{Ue*Ya5E=S6GlQR~v0Nt~dA`g|2i zBmAgzP_H~Ib#j*uzND_2IamxfU3lT{;4`X@aI^fawG>V+P9zL}hA7jngfN&Jo0^Q_ q6u-fk&?ocrXS8g;l0yu*q%{D$l>o9#DdayOeC$P8H~tQ*D*VDHw|L?J literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/53/08cb61d1624204c36af92a7ec04d1f7ac6caac b/project/.git_disabled/objects/53/08cb61d1624204c36af92a7ec04d1f7ac6caac new file mode 100644 index 0000000..6d6275d --- /dev/null +++ b/project/.git_disabled/objects/53/08cb61d1624204c36af92a7ec04d1f7ac6caac @@ -0,0 +1,3 @@ +xK +0@] o3 ZS-<uN{N6yٓrLYyȭx `h. +)&MX"*8w}_O>t}9d6\bLqƨS@h/D6 \ No newline at end of file diff --git a/project/.git_disabled/objects/53/635cf234b122cf1abbd36636611572e9002e7a b/project/.git_disabled/objects/53/635cf234b122cf1abbd36636611572e9002e7a new file mode 100644 index 0000000000000000000000000000000000000000..1867b6d70b588dd617e3417d6c1aabe848b507d8 GIT binary patch literal 404 zcmV;F0c-wv0V^p=O;s>4vtTeZFfcPQQE*JkFD=n4DXw5RQWAFWQT{#coUdN%6eC4f ze(*65gDP@PEK17H^G{1FPKBu5u=e=->siU=4=Npd|Li!frR*%T52iLhuOu-UqAc0Y zY;N<8D4Ey34<=Y0e!uYKPkt?!veKfW)V$=%;MAN{sOrV0)6Ab$YdHti{{0*f`1)$Y zOV`s-)viTF`9)6orFkidMU`OJnr(BM`s8?UWZ;e_*#N=H)jYfA_&^nV)tp#) z6IQ|?(3o?nz*3|5)GZ1(-jfqNZhS#btNAFf$_!gE_I zR3*gM{zWONMPQ{L4Y!2N=~$n@>icv0DvO{pUG0R z7iZI^TrUe+^4r%_O+!gh@unG6c}P)afpcO`a%oOtNj}7IG2X5zpL{Etd;D3p1-dV{ yT)JTcD^zu4Vsb`FaB5;vat7EPUkqn-#kYP7sNU6HC*SaP-HbW&UjP7q{lGTcLB_WL literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/53/64cae7afd5c8cd90a633f63b1b7d60a002786a b/project/.git_disabled/objects/53/64cae7afd5c8cd90a633f63b1b7d60a002786a new file mode 100644 index 0000000000000000000000000000000000000000..4e4feedd154fa0f91f0fdd5cc2a474ac3ac0d019 GIT binary patch literal 4299 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 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/54/18b71424f15c6cdd7cf6a5a600ad4d680ce61a b/project/.git_disabled/objects/54/18b71424f15c6cdd7cf6a5a600ad4d680ce61a new file mode 100644 index 0000000000000000000000000000000000000000..bf8eba60af9939b3f4a45ae1ed6be7d8a54dcc42 GIT binary patch literal 875 zcmV-x1C;!D0V^p=O;s>7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A3#TlxPjwws!>{|aXbii$RgU7R)d9kNoe z-3&EC>;4(IzxQtva5{Y><-ioRHT_jkRRzFENK8-F%>l+9(1rPV4B?mbW*vQg@kxoH z#VnO=F0XXg+TTT03{f|`t->kXUSQ70IIq07R{KOg-ac&$QwMZka&a+|$F-I##Ckhu zN#EbcF36L3e-gJjLmDLd3QCi5GLsq1B+u}6^}oJ2&vCJZF+U4)=G_~;5Cz3W$qc*1 zrp*w$SC%|E%=7bIO5%hh&-KdY_6HAty_AH*WpUuMpF8_DXpV zOm#6dG9ZZo=-m&COj%=95~`Oz*muX%|Bva`srkFn6@$Y?{@*u-n~`tkS>{HmabNzr zQ+?C9ALt76@>5bFp~Gui=#u3c6F;-g=KrREnYT84_nHk=U6xsr3Uh5qF+<;)+uPJk zy6)J9Og`4JNnTKM^KM2YmC%?5rXQf%&lxFiEbUi4`@%lQ&&l!E^&2{En*p;it^p#4 B#JK4vtTeZFfcPQQE*JkFD=n4DXw5RQWAFWQT{#coUdN%6eC4f ze(*65gDP@PEK17H^G{1FPKBu5u=e=->siU=4=Npd|Li!frR*%T52iLhuOu-UqAc0Y zY;N<8D4Ey34<=Y0e!uYKPkt?!veKfW)V$=%;MAN{sOrV0)6Ab$YdHti{{0*f`1)$Y zOV`s-)viTF`9)6orFkidMU`OJnr(BM`s8?UWZ;e_*#N=H)jYfA_&^nV)tp#) z6IQ|?(3o?nz*3|5)GZ1(-jfqNZhS#btNAFf$_!gE_I zR3*gM{zWONMPQ{-d~WF$_sgX}^|aSIBz|}F6-yC^Dh()2OUul2OesqQ20=Q+4YN94 zoK2f@y)04pugP}Px%$r&ZVsfk6&8DMvOF`UsA-})_}dRKd$e8byyGv>^H0RT`uz9Kc8#{d8T literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/56/3a66fa267f050cad0c400ee061f427a6c7605a b/project/.git_disabled/objects/56/3a66fa267f050cad0c400ee061f427a6c7605a new file mode 100644 index 0000000000000000000000000000000000000000..dc19e324f92ac4f9b17fce24a0f610e8fb459797 GIT binary patch literal 2231 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

~*oR#tnuEwl_d?aF5_0u*US*;uQs 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 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/c9/ee4596524a279f7fb058a7ae3917f7edfb121f b/project/.git_disabled/objects/c9/ee4596524a279f7fb058a7ae3917f7edfb121f new file mode 100644 index 0000000000000000000000000000000000000000..1e1ce7a3577f15e6c9668603ba3dd52725d961f6 GIT binary patch literal 875 zcmV-x1C;!D0V^p=O;s>7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A4AT41y0_SY*PXs(@AHuc!LgNpv&>yVX# z?Pe(VyLom!>xK6o{x7o=XNTDoeVd&MRaF3tgv9hz-5g--0bQ7%$MC8qjMLJ88toKJ%3{iLK&RpO7X{)ZJ^&~pZ6`XtZRhPXNOdZgD$;HJ;9@ko~5bN!r zC4GM%yC6^E{Yl*B3~7+)D=1CM$xLQ2lRU%Q)&Kh9JjcZr#{4YInRjpWLKGAiB{QVQ z@;Tl~)xE%DFI4u=&{#Aq`9~(yu9C#eoN{2`Az9|Q-lyV4$jOr3ja&coE5tONy;9x- zQ(X*=3`k-CdiTR3Q`T6OgzBXa_TBOH|6{s!YW{9?#o%y}|M!jIX5^cBmbp=C+?T)Z zRNr*&2fD(%{FGEk= zt~<6NlaF<5k{8t6yqgh8B{Zgi=?AFxb4JP=OZ!#NzOc{nb8`H3{f184W&mCMugK*g B+&=&S literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/cc/782936676ee9d8e87c7e1e352dca4433a8a2f6 b/project/.git_disabled/objects/cc/782936676ee9d8e87c7e1e352dca4433a8a2f6 new file mode 100644 index 0000000000000000000000000000000000000000..8dbc2d14e2cf8587b7bdc96423058d8b0e0295c9 GIT binary patch literal 45 zcmV+|0Mh?>0V^p=O;s>9U@$QN0)_I_B!0G~X-?Iq-=->`E DlO_}O literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/cd/ab7ca9fe26a45c3526c87cbb63de189efa8fbc b/project/.git_disabled/objects/cd/ab7ca9fe26a45c3526c87cbb63de189efa8fbc new file mode 100644 index 0000000000000000000000000000000000000000..54ae21856cbfd6b4d33b2c2f1e6a0246c53bce2e GIT binary patch literal 81 zcmV-X0IvUd0ZYosPf{?mWC$%zEz(U)Pt7Z_QqbaZ%*n|ww^GpO;tI|zNzF|xuu{k< nDJdwn($_C2O-swn%TG%yPA$<(&d=2^hN#f1$jt!&#w{924Ob>P literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/d0/0925a62e4e73eda639da9581b11b6fb167856c b/project/.git_disabled/objects/d0/0925a62e4e73eda639da9581b11b6fb167856c new file mode 100644 index 0000000000000000000000000000000000000000..354d3338189effc2d7121b54da38317a16d210d8 GIT binary patch literal 304 zcmV-00nh$;0V^p=O;s>9G-WU}FfcPQQE)6M&?_mfVE7Z%@wxwCRCBibX4h*S&-hMH zd%_ zK3TbSyOzt97?z{SdwZd_Wag!$R_G-c7c*=yr*I{{ykDB(=DNLHhG1cfK2?6aTfmcdqO8(Tfv3 z_6cf4No7H5G0+T#k8jN*GLKI*IOB7`Zqt#uQ$H$uNkNP#Ey>I&W)PNDJjB<)-5#{G zA#B^7HU^vT-i%N)$}&q*byM@o^in_unQW-j`^&v|)(SDdrApyuuU9bN2?hY>?}FkD C9+Y4J literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/d0/c0a8ff5c5a4b33197a6470eab7d3411c179c61 b/project/.git_disabled/objects/d0/c0a8ff5c5a4b33197a6470eab7d3411c179c61 new file mode 100644 index 0000000000000000000000000000000000000000..ea7d2b4239f497c61b01bc32c5853e2f5d8cca8f GIT binary patch literal 354 zcmV-o0iFJM0X>mHZreZ%MZ3-^{sC04njRnx3b;r%aSU`zjc9A2(NG<7qUiSJ$VLEd z#Np%rpX`(Lc>MA6+ixkLlrXTyYgQaVI$@Iv6U;Pmhmk%QHu8*~{iAB}Qd5U4h9ELU zMyO_74tR9{EB6asS)CyR6^6H`4HqV>g$Ga`uu8GfYc9VO8EUX7`S9@Yw7HcF)nuLX z(TDK7Br=B9WpPOH=kyo4Wus55(MG&eOl$O+zfLEFM5?SE-k5@6bbtQS6klqH1K;aS zHwMXiz_aX0VpeO55Kro!C`@~X)_6Yd@!Qm$>A)6Hb7ECcuac^<2h1G2LS=(PM-={7 zS#4)M*;)C9<5FZs+UsE2yt%l?re&AYWLoc9P{lFM%U)&KfCqCJ*S$m Ay8r+H literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/d2/dc9d4ddf66aad4668c61419d119dd5ea8a3f4a b/project/.git_disabled/objects/d2/dc9d4ddf66aad4668c61419d119dd5ea8a3f4a new file mode 100644 index 0000000000000000000000000000000000000000..fdcbd12e666079cb87d3a12eb7f867a70082657d GIT binary patch literal 456 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 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/d6/2d21a3c2b3220c7d47210b2d45cfb5197de0e7 b/project/.git_disabled/objects/d6/2d21a3c2b3220c7d47210b2d45cfb5197de0e7 new file mode 100644 index 0000000000000000000000000000000000000000..d4475710e51c314268838234fa0202e3362368d3 GIT binary patch literal 403 zcmV;E0c`$w0V^p=O;s>4vtTeZFfcPQQE*JkFD=n4DXw5RQWAFWQT{#coUdN%6eC4f ze(*65gDP@PEK17H^G{1FPKBu5u=e=->siU=4=Npd|Li!frR*%T52iLhuOu-UqAc0Y zY;N<8D4Ey34<=Y0e!uYKPkt?!veKfW)V$=%;MAN{sOrV0)6Ab$YdHti{{0*f`1)$Y zOV`s-)viTF`9)6orFkidMU`OJnr(BM`s8?UWZ;e_*#N=H)jYfA_&^nV)tp#) z6IQ|?(3o?nz*3|5)GZ1(-jfqNZhS#btNAFf$_!gE_I zR3*gM{zWONMPQ}#*Iuw}4N}q1%Y1w_g7tRY`j2%HP^AH-X=#~xjwxk{z#vG6xM5bu zi?eA{u9pQZ`R(herlF*$c+(83JftYIz&SA|xilxSBp+h97;o2aa zHHU)P;fCRQ%r*SJ0r*H^EYIOh_rSgSvnXd70xxks*l-{%IFeFLAm-W*6tYo}c-BF; zSMxHSyo#9>Du*xMA?!@Jl)-JTCV9x>j0crqVJQtsq!khk$4rNl$s`=wOdinZ`O^ZH z+>DF`k-|)kG)(xwp(G+rx%O-c*y>r73ds$$M_Rz)PIt%a_-(F7WkZhknAxGouYpU$ zD^o72uplJ2Bb~!5)OcuZVfMqYJygcFHUDkIjg64yoE!3ML4V782TJP?q>69%K@)4k zgF>t6jQBd0e#SHO5Gx8m(;+02M123%n{Icd`*wC-ficp_(tm;{4-XIF^76g&rGZqd z4Bm6QY2a-h>lwxn0-*5tAoYkmE>eLW<@Cu%t>o5l4;@M|z8kP%I+7ASE%HvmvxAl7 zqFX+DEV)99F@k$yB!Jhj^!(7T!imaB`y9{Ta1*mK? zESP4QqqdSFQ7VCq6Q%-PqF81P+4{n{IaM0U>=hZqv@CWoiBDF9p& zeSZO8LWg3)=baZ@?MB+T2#N}3OcjxsKb;8@LsjQk?VgVgBI_~8vCXVk`5g#uqakMr zM&t=bAvDO|1Nv+5kuw>bUI6AqrYw(GlIVL8-YGp{I^juxzo6~qL#${Tp~?Ia{dy!3 zG&Uww+r&ej@nxI=7B|d1=)m zaQSpHC(f-%#*4BIl2nIlFzNv z$TD=5^If5ND#i8CR!DfMJg;ha=8O!7Xr9u*TaARHIC#iSwTEi~AA`5ry-%a@gM9l~ zrf2AoBdle;y*@gmY$r%pdKz|W#uIE>KDA*X@p7Qf0dGQk`046h@Md!@+d2MwY-sEd zmKbS&FZbtnJu(00yj$J+i*>jvwp9(LE055ssvELGgj7eH4Zs8CmQZRH{-c$)%BnTx zlJ2;<*(=yasQkS}^WyySA6`2DE%j^B(sf!;mObR||Em~T37@r9j0Ql3v!2F@hvBRk zS7XEngk;~r~NGS3NI1Bnw&ufNyn;$P1V9<|>*2F*PYO)oUw^*VPO%erj@ z_*7hL>>#1-utxrEnIcyIdA|hIcjP$V67gpxeB+icD{2$L^`>qJyO-{h`%=KB=-s^i z{PUgZBAJWTy=hei*HldMHTFscPBOfnbRWv0x(oS>edb~!KbhDM%H=zJ8&*5TNt81h z;YG&P$ojs#!0{uu0|Ars zad>j59zMb@IU*cC%JjNtJ~c|}Z*$r(kqp=f8<)pKc7VcQH7U5pw~Xa6cktI=1+61I z1$v1HF_O5!knpY_!QHMhjkBb8B?bvFJ79M{-Sh!8w(gO7E7M9}PLoTg2Y0nup7M(3@8oq7(0jsg> Er9G-WU}FfcPQQE)6M&?_mfUP>ac^cQL^e4;w;(?+HLs+YL2BLWX}@NE z`ME#!7JK!arf7!n<$O?EGV@YWEA*0!iy5{albM<>__J||+|=)XJ}|eKo!_klRg{~U znFn^u_G?Ej>$z#(xwY#~Rx`uI^+|`9|AE+6l3HBCApLohJKv4ciT_&OJJGYHEn9^z}@ZVy`8 z5Vq}38-vYvZ$_vYWtk}YlWEKQl)US*DILs1OouNX@N)v Cf|#rT literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/d9/549061be9bb96d845452c4170e3b6c167d58f7 b/project/.git_disabled/objects/d9/549061be9bb96d845452c4170e3b6c167d58f7 new file mode 100644 index 0000000000000000000000000000000000000000..866db501b2a3a06ac0a57eedf0fd49e8982119f6 GIT binary patch literal 875 zcmV-x1C;!D0V^p=O;s>7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A4AT41y0_SY*PXs(@AHuc!LgNpv&>yVX# z?Pe(VyLom!>xK6o{x7o=XNTDoeVd&MRaF3tgv9hz-5g--0bQ7%$MC8qjMLJ88toKJ%3{iLK&RpO7X{)ZJ^&~pZ6`XtZRhPXNOdZgD$;HJ;9@ko~5bN!r zC4GM%yC6^E{Yl*B3~7+)D=1CM$xLQ2lRU%Q)&Kh9JjcZr#{4YInRjpWLKGAiB{L}c zlrX&Z*4-nwHdm+EKUYdT#by%Ju9C#eoN{2`Az9|Q-lyV4$jOr3ja&coE5tONy;9x- zQ(X*=3`k-CdiTR3Q`T6OgzBXa_TBOH|6{s!YW{9?#o%y}|M!jIX5^cBmbp=C+?T)Z zRNr*&2fD(%{FGEk= zt~<6NlaF<5k{8t6yqgh8B{Zgi=?AFxb4JP=OZ!#NzOc{nb8`H3{f184W&o9_uL%YZ B+C~5X literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/da/45bd51441b91df70f8d49e3f2899c770489625 b/project/.git_disabled/objects/da/45bd51441b91df70f8d49e3f2899c770489625 new file mode 100644 index 0000000000000000000000000000000000000000..f4da2bcb613975ac8a023a7f9358a61469a9f8f6 GIT binary patch literal 85 zcmV-b0IL6Z0V^p=O;xZkWH2-^Ff%bxNX#sD&dE&8E72<{W)RF|-ml2xxyM^Z!o}M7 rk%UQxXB1Rjc~NQ}LgAYm)+PQM-f7R(F+p*!3Q2-4z?vx literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/dc/ed12795a91967440a9a96d9c420bc78ac4a142 b/project/.git_disabled/objects/dc/ed12795a91967440a9a96d9c420bc78ac4a142 new file mode 100644 index 0000000000000000000000000000000000000000..5fc2c508fd35fe87e9579e62d7bc7c2ea1711ac2 GIT binary patch literal 875 zcmV-x1C;!D0V^p=O;s>7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A3#TlxPjwws!>{|aXbii$RgU7R)d9kNoe z-3&EC>;4(IzxQtva5{Y><-ioRHT_jkRRzFENK8-F%>l+9(1rPV4B?mbW*vQg@kxoH z#VnO=F0XXg+TTT03{f|`t->kXUSQ70IIq07R{KOg-ac&$QwMZka&a+|$F-I##Ckhu zN#EbcF36L3e-gJjLmDLd3QCi5GLsq1B+u}6^}oJ2&vCJZF+U4)=G_~;5Cz3W$qZ9O z^J;Tj|0S$r-z@p~olfup0}l?UT_uT`Ipx5>L$b_qy-&r9kdr058@K-FSBPmkd!@Vw zrn(p!8IZ&P^zMg6rmV3l3DrvX^Ft&wRl B%DMmm literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/df/2e11f600834970a66693513a39dff330375d1b b/project/.git_disabled/objects/df/2e11f600834970a66693513a39dff330375d1b new file mode 100644 index 0000000..ff9866d --- /dev/null +++ b/project/.git_disabled/objects/df/2e11f600834970a66693513a39dff330375d1b @@ -0,0 +1,2 @@ +xM +0@a9EӀd֖fz7pv<^eR]tCHb]xN͵-Q[}$ 0- luj,ڋ::HaL0SיcY/38Ce \ No newline at end of file diff --git a/project/.git_disabled/objects/df/c8ed71f10a06b2804cb8fa4451145741b77aab b/project/.git_disabled/objects/df/c8ed71f10a06b2804cb8fa4451145741b77aab new file mode 100644 index 0000000000000000000000000000000000000000..06dee35552165cbe24d6eef427f7f00f0c93393c GIT binary patch literal 404 zcmV;F0c-wv0V^p=O;s>4vtTeZFfcPQQE*JkFD=n4DXw5RQWAFWQT{#coUdN%6eC4f ze(*65gDP@PEK17H^G{1FPKBu5u=e=->siU=4=Npd|Li!frR*%T52iLhuOu-UqAc0Y zY;N<8D4Ey34<=Y0e!uYKPkt?!veKfW)V$=%;MAN{sOrV0)6Ab$YdHti{{0*f`1)$Y zOV`s-)viTF`9)6orFkidMU`OJnr(BM`s8?UWZ;e_*#N=H)jYfA_&^nV)m+t2 zF?{uR)k$YBk&c%=-eUjf&8~r~DfcW1&o9a@2CGb8Hv9hNz`YK$tT+Rs57(?d;km69 zsuJRB|Du%CBCt|U`}8LUZrz>t98GRKnZ>if=IsJssM3Jaw6x4T$CR=}U=XB3+%T)- z#o4qe*UN&I{Py)!(@;`WylDni9#WK9;GCF~T$+AW-v4`Ff%bxNY2ko%S_kHD$dVi$WCv+b5UhO&%RRMQ|7Vm s4gV%L&4nr}D9X<*C}Fs8V8#EKC~srQs+59P+b=uHh|fs`0L!l+OG!Q_HUIzs literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/e1/7cc88d306e1e58f859ad17e28310a3bb37ae28 b/project/.git_disabled/objects/e1/7cc88d306e1e58f859ad17e28310a3bb37ae28 new file mode 100644 index 0000000000000000000000000000000000000000..ea25356111aafec0275c2c96351f3e6e3b2f7d6f GIT binary patch literal 4918 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 A5C8xG literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/e1/ec7f938536ebb520c87356a0f72d15c2b8fb83 b/project/.git_disabled/objects/e1/ec7f938536ebb520c87356a0f72d15c2b8fb83 new file mode 100644 index 0000000..fb1922b --- /dev/null +++ b/project/.git_disabled/objects/e1/ec7f938536ebb520c87356a0f72d15c2b8fb83 @@ -0,0 +1,4 @@ +xeN0E]+0`d&7.?xt,-)Lw +1qѤ;Ҹw7:V!Ձ33jZQ\*8֑ +4#:XjTOQM҈ ;y4 ~7C{- \ No newline at end of file diff --git a/project/.git_disabled/objects/e8/045507e926205e3b10480572f232f86256cf25 b/project/.git_disabled/objects/e8/045507e926205e3b10480572f232f86256cf25 new file mode 100644 index 0000000..dbfe194 --- /dev/null +++ b/project/.git_disabled/objects/e8/045507e926205e3b10480572f232f86256cf25 @@ -0,0 +1 @@ +xMPN0 䜯Pi8#= "ZeSv=NgƱco#mJB@a[,!HZ y0;tAP@~M؛Hm5Lyp=5%\-3QM ?Qj4[+_t֎D f2-N!w'Ũ]ށA3$m8(8-4_vHbA>1+@-N:V5Ge⦾;Nv5˪\d GdqUҘJ҂9,폲@#"8`yzjnZ3xuwn[(- \ No newline at end of file diff --git a/project/.git_disabled/objects/e8/16ea48d2b26447d8fea1fa744c4808809e1917 b/project/.git_disabled/objects/e8/16ea48d2b26447d8fea1fa744c4808809e1917 new file mode 100644 index 0000000000000000000000000000000000000000..fa216a0d724fd9d9fe4b5ae661fef7af9faddde8 GIT binary patch literal 153 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%0D%H36 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 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/ec/80153cacc78066a77e8c4caeeeff0d8fa149f0 b/project/.git_disabled/objects/ec/80153cacc78066a77e8c4caeeeff0d8fa149f0 new file mode 100644 index 0000000..10b834a --- /dev/null +++ b/project/.git_disabled/objects/ec/80153cacc78066a77e8c4caeeeff0d8fa149f0 @@ -0,0 +1 @@ +x1k0;Wf)JBvY9lQUÎ Tzj.'wkor80 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 C]‡YWW3PLF"p0 l4iZOpF'jmc/*2%ԧ/hyACnݳٯ9+_ͪxw8K:m8(|p"3RN_VTm*r!T.H-~G-/_칳[ \ No newline at end of file diff --git a/project/.git_disabled/objects/f0/bbd19b2fd2e3e1e3ef3bc3ab9402f69c467b25 b/project/.git_disabled/objects/f0/bbd19b2fd2e3e1e3ef3bc3ab9402f69c467b25 new file mode 100644 index 0000000000000000000000000000000000000000..432680ac05d231f7df2527fc40e47d0799f785b0 GIT binary patch literal 228 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 Bm5u-a literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/f3/6864ec393faae6f4079c4e4241fad7d82c86b3 b/project/.git_disabled/objects/f3/6864ec393faae6f4079c4e4241fad7d82c86b3 new file mode 100644 index 0000000000000000000000000000000000000000..111f74f1521ae96f7c4e9d720ec40ad6611400d2 GIT binary patch literal 147 zcmV;E0Brww0acC53c@fDMP27BW)}r%a3!`&!JiNpeN0LukCK@bq2%999fLC4@gu7;6Vjg`ty2>evN$bGW>H#%+tVAosN69D?v z#NZwJg5;Z~;N-bBb9wJAwZJjq4-s-&9>!v!PuVDnqpIJvXqe=yOtZ+R?h9M;J)v|| BOHKd) literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/f4/31988a5f85f6507bba877e1f80edae989c9fe8 b/project/.git_disabled/objects/f4/31988a5f85f6507bba877e1f80edae989c9fe8 new file mode 100644 index 0000000000000000000000000000000000000000..f92ffa3bf2cdd07a383aaef3566e73cbbb0ef74a GIT binary patch literal 754 zcmV`5 z;Fx%T2jnK-oX%yFivn4fHW138S@Rs>tI@TE!vH|5ShRpdRC)o{8KKG%q$}8JQQQpL z!2owb$huLv6I#Jfo^M<%OAe4_n^xES3G=>C|t z;i{1M&}5Zxl$GEjVoyG3Q{8S+xuD1k2Ea*e(8u26nm5uV)XB$Vt6U;iSkQgch;E+{ zP?d}(25U*^$@KB}j9velmSYGSe5F`Ja;}?5RHfTMnx-(1Fg~ess+W1ZxTWjc|7hM3 zREhu4#8BW_e*FIV)19gtcPp_Xm{pH3l5Dwbd_7JaHzm4B2s{Hau~HD-Y)q1)9nth8 z6opWfXwWrAK@u!muE}3d7MxEH{W-LdOK$BwuP_}xv2`OQRD8#tSXB&Hp&VdYh;2X5 zpyW<$@svO*!c!jey^(HTQ%8q8H|#}&&h$VN^LBPWt)ge0wD_-|5vID)vOtp#Z~cbD z5408~+_p*cH@! zb_t$|m4@%xd^UruWKSDG?={ng)Pd2BDzIR(gtg8ayNGd?(U{pADu_|tI4Kk|r4^n9 zO*_ZQ(5!JztDdIls0~9rmjE$ao=Gf%t=(F`^lSYL5znla4M{el+&E99Yxa723CtO; zEX@|#J_PE2aNm;pjozYJ1Pe|?oq&a|c`n?ZFi)Zuy@KEwH93nv;}Y=kyJp27Ob?f{ z7W!^Xqa9tra!M=N{qgJ6aj#$ouU>^u!tsGGVeTXGDfo?B*8N?sf&qS{w(5=6%Ut>0 kQgOGchQ4zdQm?pT%W2(RKZ-Ulr~aAwAicx(F9f>7%mu`G6951J literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/f4/56e32a24ac3ac4c76ce3c799e5eb2c837b8e46 b/project/.git_disabled/objects/f4/56e32a24ac3ac4c76ce3c799e5eb2c837b8e46 new file mode 100644 index 0000000000000000000000000000000000000000..030d5ef00942a56453c6ece8269c6731065eebe8 GIT binary patch literal 303 zcmV+~0nq+<0V^p=O;s>9G-WU}FfcPQQE)6M&?_mfVE7Z%@wxwCRCBibX4h*S&-hMH zd%~tC?Zq`lQ3l|3GXjNi8m6kp8^Mo$p5J#D6XCo$Gpi^x{O1 zeS#WMQdy8%3^aq`<6HBH%;OUc&iEX#+jL~^)Q`$uQV=6bOEPnc8H8mO5Aii{w+Ah4 z2-|k2jlt%-HzU-HvdofH-PF7?y%dl^CL8MX{&Me~wL;8qsZzMv>lMs*f&sF~fqh&E Bn!f-5 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/f9/90bffe00c0b28f28ef199e99f37095e12236de b/project/.git_disabled/objects/f9/90bffe00c0b28f28ef199e99f37095e12236de new file mode 100644 index 0000000000000000000000000000000000000000..f11d1814f9c3973451dbe64e3f0243a317442a49 GIT binary patch literal 641 zcmV-{0)G8?0gY74Zrd;r?Ac$jHy?xK(1YCvQpJ57+89pKOVI;Ou51>32usq5(E8uI zRD?)$?4~Dy4{>L9XJ&2u8qQx|oWH_{##03CB2q0R!gmY-&6S7(eop|j^)m>OwA;*i zx$92935(<1*fz!5pxeal3|z8nr2OB#R^o7H*>*F8w{y@WXyGc?PT!wDztN zMkXVo_O8R%q9D^QtPX*Q;p zn2)z95uuZ9*C6Rtp|sH2wKwA_Fu;<;;z4eO+aTlOGZmvcZvxuSUi&b0) z-olixOyLhq7k8`f`{~27`&OSnPUlBNx@0re-e~`59+uLegF_*mkWurb%Ii+Ry-I)l z%sy&JOMEUd*~6X{1dhwDc=ZY9VDbNi8MaLI>bMiw*&Dp0VlF3;8!vlB4G0e7WQU|{ z)?qf>4XacMDmf!7#hzTK)8Y-Yvk<$8oUf-gBBhwdwCSBV2`?Y%+a#+)B5 b(kHN|+w2%N3HQC}o)*p}VW#uHIM646$$Lf0 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/f9/e4bc0149a415f9c7af509fd6b8226901eed75b b/project/.git_disabled/objects/f9/e4bc0149a415f9c7af509fd6b8226901eed75b new file mode 100644 index 0000000..2ab19ad --- /dev/null +++ b/project/.git_disabled/objects/f9/e4bc0149a415f9c7af509fd6b8226901eed75b @@ -0,0 +1,2 @@ +xn19S1e8+EжHc{d,U]Um +ad֓rf8?;w>[6QxǻFyĞ< ;2}c@e9t8Qz:{I'x6NJmD'X^b^+C^JHIN$c>P*֑Dw=g^춰ha]ڒt={ej/rWm[S5k)Z'uT*V乶kfV.KG 1*{v/ \ No newline at end of file diff --git a/project/.git_disabled/objects/fc/47823714e47cfe3f0368edd3a80335e27eb030 b/project/.git_disabled/objects/fc/47823714e47cfe3f0368edd3a80335e27eb030 new file mode 100644 index 0000000..09f7ec5 --- /dev/null +++ b/project/.git_disabled/objects/fc/47823714e47cfe3f0368edd3a80335e27eb030 @@ -0,0 +1,3 @@ +xM +1 @a=Ex)L̀WQ߶EpT7 H- `0!`Qp.:p\J슅R}-Wpa +y(۷e̾}޴>ZH)f}6E;`ݖ7OE \ No newline at end of file diff --git a/project/.git_disabled/objects/fc/5288f38fc15a836b47b345d688e60ecb96e807 b/project/.git_disabled/objects/fc/5288f38fc15a836b47b345d688e60ecb96e807 new file mode 100644 index 0000000000000000000000000000000000000000..3915c22f8d6ac604232094b6b7462dc6698e5de4 GIT binary patch literal 2431 zcmV-_34r!^0o7VLb;%bD4ow`XRDS)^hC-#j`w|3{J)LMr$VXOSAg9;%YR zQcUp?eS5ZC@<_ogETza`Ac<)3_^9UD!?%fyNAQB@)d+rV$+EFC(QbEbG zBIQQdg(DQ^us;GwGI0UNC$q0k&(6O-9^uM6ZJ8f2Nb$id%?&!9^iz_K>vkdK`AV%X z;A~3FnE&0R8xJAvtr4&+=KcjChaabyevfwYst2DhF(qEU=XiIUR z`K{4CA$IvrK~W_oM$I)_A*kTNuk3G6)L>1?jA8~&PzkAjuEi!uRIs50(+i9;$55KQ z7+ekwx2r&jd`_6_ykhPb4d+&#@il_Q>_x-YyX zmo?0*Y=H^-7gTx7mlz50<+XfG_|E*i19eT)FBDbX6U#;-~OEN&2W?CvDl1L5iyEje4y4jCX7DC?FimD z!SEIr+elrrJWhFy+;d>%E{|ZSbI`=8v#$;Qp^}x64Wx{YaT~~b%?7CZ0QUt@a#w58 zLzAtQEXztn!cnCl8hrTdN*2ziNr*$}$krZkA zS`7DSw&DV&BUtb?dzT1=%|V$7q1FSq)gt>E{)mJt>^Dd~3RGnI0HpDCcd$&$wpzXL za;;4!iiHo<3c(c1I>9MvFEcWz0E@ulZiI$Vx$J zKYobJ_x^96R^;EZ=w`lmEnp>K_;usT%>_&N9?r1LxBiiQyq@p<-!ARM8Y`Tjp_`v| z{M=HOBFbzMjUTIm1Mi%(R2zZ`?Mzzu=z6` zJBJ5g0uFu?l{8J+psbri_&4H1fxV7u4P-nRPS&%=@QqKyqIbvz8M--Tx^j+oKJ}yC z2>A)g3AwHJ5v@|OA;@n!KiJVZO=FB&*XP5E8Ux=JsgN8@jwou;L_x*0M5$6#t2Gd> zE)fZjp^)Mayrh-mo_2+=Tpeg0*})_~92T2ki5;SKFq8$0c(4n;>3JsfuS(!;Nk%d? zk9y1b-fhF(6fwpWxpAy6Q1gASW_3B7#3BJ+avfNx^9@U)&L*$Z?B!GV+}`s<-jtQ* zP|fdKm|Ri^P9G!Hw5xq_<^uTtNW!k3u7QKTtgHHhX!pjBl2xhdlj_^_-`SOHYs#qy zDBYOJk~~-kSfe@5VX>mDjp>>gC=o35vx~4j%28C?a zh)Gzj7`Br^nStbZGf&>}maPv)2710m7|FH)t1#Pic`9~ojXH;PMYYP0*seah(0Pd1 zRJ{dP8$7*p26D3I?}WIcOkbQyoNa)3Sjkezpb!X7Tpo851uxCimo+uc1b-7}&5g&; z06*pNa5SQEZL5J*`-9L6%H&Tz-_K4dYCAfF>ysYi-57m*d0j2B6Rm+5vGv3k*h@w5 z)!k3N1k*G@hBp*gR0^8~_;TVa7@GCYSsi;LQm>OZ##k)S!U&kyEyY3RmK4++)&ddK zRGy~H9Cw6v%&$9I_qH_rr+=Y(=%3VA9{{@lNEY2-)$!H8!2re%{v_ zUUj(-dw3gQe7&zlu+Cvi2zsJ<&o(i&@ji@E4~gF23c5Vsv-(XzzYha6vOgdY>aOB% z86lh?y13cZ?>8NYzZ0dpD2aDgdnctF3_BoZ@jg>n>5B!Te$$%HI;9%9>$1{O=_4Z9 z0*7BWP6JyZ7*U=5?&>~ph0u@^FLwk06ma{v1MwTEV?>172aH_EGQo2N2EN2 zzowVlVY4>qv3<6{`tjZ4qi)Yq??R7o0bW9&koOxv@RgBigCha4f-Qk=Z$EEcDSL$gOy)u7%^j}bD2vkI2z0v>x literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/ff/df9093d39a28277c6c9db9a92578294d777af5 b/project/.git_disabled/objects/ff/df9093d39a28277c6c9db9a92578294d777af5 new file mode 100644 index 0000000000000000000000000000000000000000..9c048e1465b70630f5736f27dd161f4fb5aaddaf GIT binary patch literal 304 zcmV-00nh$;0V^p=O;s>9G-WU}FfcPQQE)6M&?_mfU)t>Y>52CXeq5PnuQBs@fyXpeh-`9xZb5!tYF2AaX}bHe_A3GYHEn9^z}@ZVy`8 z5Vq}38-vYvZ$_vYWtk}YlWEKQl)US*DILs1Oot+R)Di2 CxtVzY literal 0 HcmV?d00001 diff --git a/project/.git_disabled/refs/heads/main b/project/.git_disabled/refs/heads/main new file mode 100644 index 0000000..083ee36 --- /dev/null +++ b/project/.git_disabled/refs/heads/main @@ -0,0 +1 @@ +df2e11f600834970a66693513a39dff330375d1b diff --git a/project/.git_disabled/refs/remotes/puffin-offset/HEAD b/project/.git_disabled/refs/remotes/puffin-offset/HEAD new file mode 100644 index 0000000..242e0e7 --- /dev/null +++ b/project/.git_disabled/refs/remotes/puffin-offset/HEAD @@ -0,0 +1 @@ +ref: refs/remotes/puffin-offset/main diff --git a/project/.git_disabled/refs/remotes/puffin-offset/main b/project/.git_disabled/refs/remotes/puffin-offset/main new file mode 100644 index 0000000..083ee36 --- /dev/null +++ b/project/.git_disabled/refs/remotes/puffin-offset/main @@ -0,0 +1 @@ +df2e11f600834970a66693513a39dff330375d1b diff --git a/project/.gitignore b/project/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/project/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/project/Dockerfile b/project/Dockerfile new file mode 100644 index 0000000..bebac89 --- /dev/null +++ b/project/Dockerfile @@ -0,0 +1,34 @@ +# Build Stage +FROM node:20-alpine AS build + +WORKDIR /app + +# Copy package files and install dependencies +COPY package*.json ./ +RUN npm ci + +# Copy the rest of the app and build it +COPY . . +RUN npm run build + +# Production Stage +FROM nginx:alpine + +# Copy the built app from the build stage +COPY --from=build /app/dist /usr/share/nginx/html + +# Copy custom nginx config and environment script +COPY nginx.conf /etc/nginx/conf.d/default.conf +COPY env.sh /docker-entrypoint.d/40-env.sh + +# Make the environment script executable +RUN chmod +x /docker-entrypoint.d/40-env.sh + +# Create a place for the index.html to include the env-config.js script +RUN sed -i '//a \ ' /usr/share/nginx/html/index.html || echo "Failed to inject env-config script tag" + +# Expose port 3800 (changed from 80) +EXPOSE 3800 + +# Start Nginx server (the entrypoint scripts will run first) +CMD ["nginx", "-g", "daemon off;"] diff --git a/project/Dockerfile.backend b/project/Dockerfile.backend new file mode 100644 index 0000000..1422acd --- /dev/null +++ b/project/Dockerfile.backend @@ -0,0 +1,27 @@ +FROM node:20-alpine + +WORKDIR /app + +# Copy package files and install dependencies +COPY package*.json ./ +RUN npm ci + +# Copy only the necessary files for the backend +COPY app.js ./ +COPY src/api ./src/api +COPY src/utils ./src/utils +COPY src/types.ts ./src/types.ts + +# Create script to handle environment variables +RUN echo '#!/bin/sh\n\ +if [ ! -f .env ] && [ -n "$WREN_API_TOKEN" ]; then\n\ + echo "Creating .env file from environment variables..."\n\ + echo "WREN_API_TOKEN=$WREN_API_TOKEN" > .env\n\ +fi\n\ +\n\ +exec "$@"' > /entrypoint.sh \ +&& chmod +x /entrypoint.sh + +# Use our entrypoint script before running the app +ENTRYPOINT ["/entrypoint.sh"] +CMD ["node", "app.js"] diff --git a/project/README.md b/project/README.md new file mode 100644 index 0000000..773a9fd --- /dev/null +++ b/project/README.md @@ -0,0 +1,111 @@ +# Puffin Offset - Carbon Offsetting for Yachts + +This application helps users calculate and offset the carbon footprint of yachts through verified carbon offset projects. + +## Features + +- Carbon footprint calculation for yacht trips +- Integration with Wren carbon offset projects +- Responsive UI for mobile and desktop +- Contact forms powered by Formspree + +## Setup + +### Local Development + +1. Install dependencies: +```bash +npm install +``` + +2. Create a `.env` file with your API tokens: +``` +VITE_WREN_API_TOKEN=your-token-here +VITE_FORMSPREE_CONTACT_ID=your-formspree-contact-form-id +VITE_FORMSPREE_OFFSET_ID=your-formspree-offset-form-id +``` + +3. Run the development server: +```bash +npm run dev +``` + +## Docker Setup + +This project can be run in Docker containers using Docker Compose, and is configured to work with an Nginx reverse proxy on the host. + +### Prerequisites + +- Docker +- Docker Compose +- Nginx (on the host system for SSL termination and reverse proxying) + +### Running with Docker Compose + +1. Build and start the containers: +```bash +docker compose up -d +``` + +2. The Docker container will listen on port 3800, which should be reverse-proxied by your host Nginx. + +3. Stop the containers: +```bash +docker compose down +``` + +### Nginx Configuration + +The project includes two Nginx configuration files: + +1. `nginx.conf`: Used INSIDE the Docker container to serve the static files on port 3800 +2. `nginx-host.conf`: A reference config for setting up your Nginx on the HOST to reverse proxy to the Docker container + +To set up the host Nginx: + +1. Copy the nginx-host.conf to your Nginx sites directory: +```bash +sudo cp nginx-host.conf /etc/nginx/sites-available/puffinoffset.com +sudo ln -s /etc/nginx/sites-available/puffinoffset.com /etc/nginx/sites-enabled/ +``` + +2. Uncomment the SSL certificate lines after you've obtained certificates using Certbot or another SSL provider +3. Test and reload Nginx: +```bash +sudo nginx -t +sudo systemctl reload nginx +``` + +### Environment Variables + +When using Docker, the environment variables are mounted as a volume from your local `.env` file. Make sure it contains: + +``` +VITE_WREN_API_TOKEN=your-token-here +VITE_FORMSPREE_CONTACT_ID=your-formspree-contact-form-id +VITE_FORMSPREE_OFFSET_ID=your-formspree-offset-form-id +``` + +### Backend Service (Optional) + +The docker-compose file includes a commented section for running the backend script (app.js) in a separate container. To enable it: + +1. Uncomment the `backend` service in `docker-compose.yml` +2. Ensure your `.env` file contains the needed variables +3. Run `docker compose up -d` to start both services + +## API Documentation + +For Wren API documentation, visit: https://wren.co/api + +## Building for Production + +```bash +# Without Docker +npm run build + +# With Docker +docker compose build +``` + +The production build will be available in the `dist` directory, or served by Nginx in the Docker container. diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/HEAD b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/HEAD new file mode 100644 index 0000000..b870d82 --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/HEAD @@ -0,0 +1 @@ +ref: refs/heads/main diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/config b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/config new file mode 100644 index 0000000..36788ce --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/config @@ -0,0 +1,13 @@ +[core] + repositoryformatversion = 0 + filemode = false + bare = false + logallrefupdates = true + symlinks = false + ignorecase = true +[remote "origin"] + url = https://github.com/bstanfield/wren-api-tutorial.git + fetch = +refs/heads/*:refs/remotes/origin/* +[branch "main"] + remote = origin + merge = refs/heads/main diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/description b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/applypatch-msg.sample b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/applypatch-msg.sample new file mode 100644 index 0000000..a5d7b84 --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/commit-msg.sample b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/commit-msg.sample new file mode 100644 index 0000000..b58d118 --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/fsmonitor-watchman.sample b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/fsmonitor-watchman.sample new file mode 100644 index 0000000..23e856f --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/fsmonitor-watchman.sample @@ -0,0 +1,174 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + my $last_update_line = ""; + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + $last_update_line = qq[\n"since": $last_update_token,]; + } + my $query = <<" END"; + ["query", "$git_work_tree", {$last_update_line + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/post-update.sample b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/post-update.sample new file mode 100644 index 0000000..ec17ec1 --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-applypatch.sample b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-applypatch.sample new file mode 100644 index 0000000..4142082 --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-commit.sample b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-commit.sample new file mode 100644 index 0000000..29ed5ee --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff-index --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-merge-commit.sample b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-merge-commit.sample new file mode 100644 index 0000000..399eab1 --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-push.sample b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-push.sample new file mode 100644 index 0000000..4ce688d --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-rebase.sample b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-rebase.sample new file mode 100644 index 0000000..6cbef5c --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-receive.sample b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-receive.sample new file mode 100644 index 0000000..a1fd29e --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/prepare-commit-msg.sample b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/prepare-commit-msg.sample new file mode 100644 index 0000000..10fa14c --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/push-to-checkout.sample b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/push-to-checkout.sample new file mode 100644 index 0000000..af5a0c0 --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + exit 1 +} + +unset GIT_DIR GIT_WORK_TREE +cd "$worktree" && + +if grep -q "^diff --git " "$1" +then + validate_patch "$1" +else + validate_cover_letter "$1" +fi && + +if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL" +then + git config --unset-all sendemail.validateWorktree && + trap 'git worktree remove -ff "$worktree"' EXIT && + validate_series +fi diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/update.sample b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/update.sample new file mode 100644 index 0000000..c4d426b --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/hooks/update.sample @@ -0,0 +1,128 @@ +#!/bin/sh +# +# An example hook script to block unannotated tags from entering. +# Called by "git receive-pack" with arguments: refname sha1-old sha1-new +# +# To enable this hook, rename this file to "update". +# +# Config +# ------ +# hooks.allowunannotated +# This boolean sets whether unannotated tags will be allowed into the +# repository. By default they won't be. +# hooks.allowdeletetag +# This boolean sets whether deleting tags will be allowed in the +# repository. By default they won't be. +# hooks.allowmodifytag +# This boolean sets whether a tag may be modified after creation. By default +# it won't be. +# hooks.allowdeletebranch +# This boolean sets whether deleting branches will be allowed in the +# repository. By default they won't be. +# hooks.denycreatebranch +# This boolean sets whether remotely creating branches will be denied +# in the repository. By default this is allowed. +# + +# --- Command line +refname="$1" +oldrev="$2" +newrev="$3" + +# --- Safety check +if [ -z "$GIT_DIR" ]; then + echo "Don't run this script from the command line." >&2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/index b/project/api-tutorials/web/node/wren-api-tutorial/.git_disabled/index new file mode 100644 index 0000000000000000000000000000000000000000..eb1d88c9a55e7e78e360ba39075b1845c221b477 GIT binary patch literal 449 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 res.json()) + .then(json => console.log('Portfolios: ', json)) + + +// Based on the response from /portfolios, we know the project we want to use, 'Community +// Tree Planting', costs $15.63 per ton of CO2 and has a portfolio ID of 2. + +// Let's create a sample offset order of 1 ton of CO2 from 'Community Tree Planting'! +fetch(`${url}/offset-orders`, { + method: 'post', + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + portfolioId: 2, + tons: 1, + dryRun: true + }) +}) + .then(res => res.json()) + .then(json => console.log('Offset Order: ', json)) + + +// Response: +// { +// dryRun: true, +// amountCharged: 1563, (Counted in cents) +// currency: 'USD', +// tons: 1, +// portfolio: { +// id: 2, +// name: 'Community tree planting', +// costPerTon: 15.63, +// ... +// } +// } diff --git a/project/api-tutorials/web/node/wren-api-tutorial/package-lock.json b/project/api-tutorials/web/node/wren-api-tutorial/package-lock.json new file mode 100644 index 0000000..23a72ea --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/package-lock.json @@ -0,0 +1,41 @@ +{ + "name": "wren-api-tutorial", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "dotenv": "^8.2.0", + "node-fetch": "^2.6.1" + } + }, + "node_modules/dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + } + }, + "dependencies": { + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + } + } +} diff --git a/project/api-tutorials/web/node/wren-api-tutorial/package.json b/project/api-tutorials/web/node/wren-api-tutorial/package.json new file mode 100644 index 0000000..3b7e31b --- /dev/null +++ b/project/api-tutorials/web/node/wren-api-tutorial/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "dotenv": "^8.2.0", + "node-fetch": "^2.6.1" + } +} diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/HEAD b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/HEAD new file mode 100644 index 0000000..b870d82 --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/HEAD @@ -0,0 +1 @@ +ref: refs/heads/main diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/config b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/config new file mode 100644 index 0000000..c16e4c5 --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/config @@ -0,0 +1,13 @@ +[core] + repositoryformatversion = 0 + filemode = false + bare = false + logallrefupdates = true + symlinks = false + ignorecase = true +[remote "origin"] + url = https://github.com/taylorlapeyre/wren-api-tutorial.git + fetch = +refs/heads/*:refs/remotes/origin/* +[branch "main"] + remote = origin + merge = refs/heads/main diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/description b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/applypatch-msg.sample b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/applypatch-msg.sample new file mode 100644 index 0000000..a5d7b84 --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/commit-msg.sample b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/commit-msg.sample new file mode 100644 index 0000000..b58d118 --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/fsmonitor-watchman.sample b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/fsmonitor-watchman.sample new file mode 100644 index 0000000..23e856f --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/fsmonitor-watchman.sample @@ -0,0 +1,174 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + my $last_update_line = ""; + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + $last_update_line = qq[\n"since": $last_update_token,]; + } + my $query = <<" END"; + ["query", "$git_work_tree", {$last_update_line + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/post-update.sample b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/post-update.sample new file mode 100644 index 0000000..ec17ec1 --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-applypatch.sample b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-applypatch.sample new file mode 100644 index 0000000..4142082 --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-commit.sample b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-commit.sample new file mode 100644 index 0000000..29ed5ee --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff-index --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-merge-commit.sample b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-merge-commit.sample new file mode 100644 index 0000000..399eab1 --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-push.sample b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-push.sample new file mode 100644 index 0000000..4ce688d --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-rebase.sample b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-rebase.sample new file mode 100644 index 0000000..6cbef5c --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-receive.sample b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-receive.sample new file mode 100644 index 0000000..a1fd29e --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/prepare-commit-msg.sample b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/prepare-commit-msg.sample new file mode 100644 index 0000000..10fa14c --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/push-to-checkout.sample b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/push-to-checkout.sample new file mode 100644 index 0000000..af5a0c0 --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + exit 1 +} + +unset GIT_DIR GIT_WORK_TREE +cd "$worktree" && + +if grep -q "^diff --git " "$1" +then + validate_patch "$1" +else + validate_cover_letter "$1" +fi && + +if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL" +then + git config --unset-all sendemail.validateWorktree && + trap 'git worktree remove -ff "$worktree"' EXIT && + validate_series +fi diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/update.sample b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/update.sample new file mode 100644 index 0000000..c4d426b --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/hooks/update.sample @@ -0,0 +1,128 @@ +#!/bin/sh +# +# An example hook script to block unannotated tags from entering. +# Called by "git receive-pack" with arguments: refname sha1-old sha1-new +# +# To enable this hook, rename this file to "update". +# +# Config +# ------ +# hooks.allowunannotated +# This boolean sets whether unannotated tags will be allowed into the +# repository. By default they won't be. +# hooks.allowdeletetag +# This boolean sets whether deleting tags will be allowed in the +# repository. By default they won't be. +# hooks.allowmodifytag +# This boolean sets whether a tag may be modified after creation. By default +# it won't be. +# hooks.allowdeletebranch +# This boolean sets whether deleting branches will be allowed in the +# repository. By default they won't be. +# hooks.denycreatebranch +# This boolean sets whether remotely creating branches will be denied +# in the repository. By default this is allowed. +# + +# --- Command line +refname="$1" +oldrev="$2" +newrev="$3" + +# --- Safety check +if [ -z "$GIT_DIR" ]; then + echo "Don't run this script from the command line." >&2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/index b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/index new file mode 100644 index 0000000000000000000000000000000000000000..4d85e9616296909cb5aa5aab28887938c46e4bd0 GIT binary patch literal 297 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 literal 0 HcmV?d00001 diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/objects/pack/pack-cdda7fa73935b7e9739f81c8d6578344271cd402.rev b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/objects/pack/pack-cdda7fa73935b7e9739f81c8d6578344271cd402.rev new file mode 100644 index 0000000000000000000000000000000000000000..8e36cfdaa14eebb7839c488dde6ab7dccdaa0173 GIT binary patch literal 128 zcmWIYbctYKU|@t|ejv>W!~#If1{LD~((FLY48%e}EC|HBK+FfkAixB~EI`Zy#H>Kf x4a8h$Z`CiiG~NEPcz)xFYvIi<>M~cD_Fj=?WLGN=RQbLx+gjYwe>vl=$pB?H6Y~H7 literal 0 HcmV?d00001 diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/packed-refs b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/packed-refs new file mode 100644 index 0000000..3ded44c --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/packed-refs @@ -0,0 +1,2 @@ +# pack-refs with: peeled fully-peeled sorted +cc08200ca6314cf8940a80725cbdf34fdedfa304 refs/remotes/origin/main diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/refs/heads/main b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/refs/heads/main new file mode 100644 index 0000000..9fc2f30 --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/refs/heads/main @@ -0,0 +1 @@ +cc08200ca6314cf8940a80725cbdf34fdedfa304 diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/refs/remotes/origin/HEAD b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/refs/remotes/origin/HEAD new file mode 100644 index 0000000..4b0a875 --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.git_disabled/refs/remotes/origin/HEAD @@ -0,0 +1 @@ +ref: refs/remotes/origin/main diff --git a/project/api-tutorials/web/wren-api-tutorial-web/.gitignore b/project/api-tutorials/web/wren-api-tutorial-web/.gitignore new file mode 100644 index 0000000..6704566 --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/.gitignore @@ -0,0 +1,104 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port diff --git a/project/api-tutorials/web/wren-api-tutorial-web/README.md b/project/api-tutorials/web/wren-api-tutorial-web/README.md new file mode 100644 index 0000000..2b9572e --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/README.md @@ -0,0 +1,9 @@ +# Wren API Tutorial (Web) + +This repo demonstrates how you might use Wren's API to build a web app. This uses vanilla JS, no frameworks, so that you can see how things work without them. + +## Getting started + +- Open index.html in your browser. +- Enter your Wren API token on the page. +- Use the offset tool! diff --git a/project/api-tutorials/web/wren-api-tutorial-web/index.html b/project/api-tutorials/web/wren-api-tutorial-web/index.html new file mode 100644 index 0000000..ef2b1da --- /dev/null +++ b/project/api-tutorials/web/wren-api-tutorial-web/index.html @@ -0,0 +1,80 @@ + + + + Wren API Example + + +

+ + + + diff --git a/project/app.js b/project/app.js new file mode 100644 index 0000000..c464e59 --- /dev/null +++ b/project/app.js @@ -0,0 +1,69 @@ +import dotenv from 'dotenv'; +import axios from 'axios'; + +// Load environment variables +dotenv.config(); + +const WREN_API_TOKEN = process.env.WREN_API_TOKEN; + +if (!WREN_API_TOKEN) { + console.error('Please set your WREN_API_TOKEN in .env file'); + process.exit(1); +} + +// Create API client +const api = axios.create({ + baseURL: 'https://api.wren.co/v1', + headers: { + 'Authorization': `Bearer ${WREN_API_TOKEN}`, + 'Content-Type': 'application/json' + } +}); + +async function main() { + try { + // 1. Get available projects + console.log('Fetching available offset projects...'); + const projectsResponse = await api.get('/projects'); + const projects = projectsResponse.data.projects; + + console.log(`Found ${projects.length} projects:\n`); + projects.forEach(project => { + console.log(`- ${project.name} (${project.location})`); + console.log(` Price: $${project.price_per_ton}/ton`); + console.log(` Type: ${project.type}\n`); + }); + + // 2. Create an offset order + console.log('Creating offset order for 1 ton of CO2...'); + const orderResponse = await api.post('/orders', { + tons: 1, + currency: 'USD' + }); + + const order = orderResponse.data; + + console.log('\nOrder created successfully!'); + console.log('------------------------'); + console.log(`Order ID: ${order.id}`); + console.log(`Amount: $${order.amount_charged/100}`); + console.log(`Status: ${order.status}`); + console.log(`Portfolio: ${order.portfolio.name}`); + + // List projects in the portfolio + console.log('\nPortfolio projects:'); + order.portfolio.projects.forEach(project => { + console.log(`- ${project.name}`); + }); + + } catch (error) { + if (error.response) { + console.error('API Error:', error.response.data); + } else { + console.error('Error:', error.message); + } + process.exit(1); + } +} + +main(); \ No newline at end of file diff --git a/project/docker-compose.yml b/project/docker-compose.yml new file mode 100644 index 0000000..6fddb9b --- /dev/null +++ b/project/docker-compose.yml @@ -0,0 +1,29 @@ +version: '3.8' + +services: + web: + build: + context: . + dockerfile: Dockerfile + ports: + - "3800:3800" # Changed to port 3800 to match external Nginx config + environment: + - NODE_ENV=production + restart: unless-stopped + # Mount these as volumes to enable hot updating without rebuilding the container + volumes: + - ./nginx.conf:/etc/nginx/conf.d/default.conf + - ./.env:/usr/share/nginx/html/.env + + # Optional service for the app.js backend script + # Uncomment and configure as needed + # backend: + # build: + # context: . + # dockerfile: Dockerfile.backend + # environment: + # - NODE_ENV=production + # - WREN_API_TOKEN=${WREN_API_TOKEN} + # restart: unless-stopped + # depends_on: + # - web diff --git a/project/env.sh b/project/env.sh new file mode 100644 index 0000000..98b57be --- /dev/null +++ b/project/env.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +# Script to dynamically replace environment variables in the static files +# This allows updating env variables without rebuilding the container + +# The directory where the static files are located +ROOT_DIR=/usr/share/nginx/html + +# Check if .env file exists +if [ -f "$ROOT_DIR/.env" ]; then + echo "Loading environment variables..." + + # Create env-config.js with the environment variables + echo "window.env = {" > $ROOT_DIR/env-config.js + + # Extract variables starting with VITE_ and add them to env-config.js + grep '^VITE_' $ROOT_DIR/.env | while read -r line; do + # Split the line into variable name and value + var_name=$(echo $line | cut -d '=' -f1) + var_value=$(echo $line | cut -d '=' -f2-) + + # Remove VITE_ prefix for the frontend variable name + frontend_var_name=$(echo $var_name | sed 's/^VITE_//') + + # Add the variable to env-config.js + echo " $frontend_var_name: \"$var_value\"," >> $ROOT_DIR/env-config.js + done + + # Close the JavaScript object + echo "};" >> $ROOT_DIR/env-config.js + + echo "Environment variables loaded successfully." +fi + +# Execute the command passed to the script (usually start nginx) +exec "$@" diff --git a/project/eslint.config.js b/project/eslint.config.js new file mode 100644 index 0000000..82c2e20 --- /dev/null +++ b/project/eslint.config.js @@ -0,0 +1,28 @@ +import js from '@eslint/js'; +import globals from 'globals'; +import reactHooks from 'eslint-plugin-react-hooks'; +import reactRefresh from 'eslint-plugin-react-refresh'; +import tseslint from 'typescript-eslint'; + +export default tseslint.config( + { ignores: ['dist'] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + } +); diff --git a/project/index.html b/project/index.html new file mode 100644 index 0000000..2e02dad --- /dev/null +++ b/project/index.html @@ -0,0 +1,72 @@ + + + + + + + + + Puffin Offset - Carbon Offsetting for Superyachts + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + \ No newline at end of file diff --git a/project/nginx-host.conf b/project/nginx-host.conf new file mode 100644 index 0000000..d651832 --- /dev/null +++ b/project/nginx-host.conf @@ -0,0 +1,153 @@ +# /etc/nginx/sites-available/puffinoffset.com + +# 1) Redirect all HTTP to HTTPS, except the ACME challenge path +server { + listen 80; + server_name puffinoffset.com; + + # Allow certbot to do HTTP-01 challenges + location ^~ /.well-known/acme-challenge/ { + root /var/www/html; # adjust if your webroot differs + try_files $uri =404; + } + + # Redirect everything else to HTTPS + location / { + return 301 https://$host$request_uri; + } +} + +# 2) HTTPS server block: reverse-proxy to your Docker app on localhost:3800 +server { + listen 443 ssl http2; + server_name puffinoffset.com; + + # === SSL certs from Let's Encrypt === +# ssl_certificate /etc/letsencrypt/live/puffinoffset.com/fullchain.pem; +# ssl_certificate_key /etc/letsencrypt/live/puffinoffset.com/privkey.pem; + include /etc/letsencrypt/options-ssl-nginx.conf; # from certbot + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # from certbot + + # === Proxy for direct image requests from Wren API === + location ~* ^/images/(.*)$ { + proxy_pass https://www.wren.co/images/$1; + proxy_ssl_server_name on; + proxy_set_header Host www.wren.co; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_buffers 16 4k; + proxy_buffer_size 2k; + + # Add CORS headers for images + add_header Access-Control-Allow-Origin '*' always; + add_header Access-Control-Allow-Methods 'GET, OPTIONS' always; + add_header Access-Control-Allow-Headers 'Origin, X-Requested-With, Content-Type, Accept, Authorization' always; + + # Cache control for images + expires 7d; + add_header Cache-Control "public, max-age=604800"; + + # Handle OPTIONS requests for CORS preflight + if ($request_method = 'OPTIONS') { + add_header Access-Control-Allow-Origin '*'; + add_header Access-Control-Allow-Methods 'GET, OPTIONS'; + add_header Access-Control-Allow-Headers 'Origin, X-Requested-With, Content-Type, Accept, Authorization'; + add_header Access-Control-Max-Age 1728000; + add_header Content-Type 'text/plain charset=UTF-8'; + add_header Content-Length 0; + return 204; + } + } + + # === Proxy for Wren API requests === + location /api/wren/ { + proxy_pass https://www.wren.co/api/; + proxy_ssl_server_name on; + proxy_set_header Host www.wren.co; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # Add CORS headers for API requests + add_header Access-Control-Allow-Origin '*' always; + add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS' always; + add_header Access-Control-Allow-Headers 'Origin, X-Requested-With, Content-Type, Accept, Authorization' always; + + # Handle OPTIONS requests for CORS preflight + if ($request_method = 'OPTIONS') { + add_header Access-Control-Allow-Origin '*'; + add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; + add_header Access-Control-Allow-Headers 'Origin, X-Requested-With, Content-Type, Accept, Authorization'; + add_header Access-Control-Max-Age 1728000; + add_header Content-Type 'text/plain charset=UTF-8'; + add_header Content-Length 0; + return 204; + } + } + + # === Proxy all other traffic to your Node app === + location / { + proxy_pass http://127.0.0.1:3800; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # Add CORS headers for all responses + add_header Access-Control-Allow-Origin '*' always; + add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS' always; + add_header Access-Control-Allow-Headers 'Origin, X-Requested-With, Content-Type, Accept, Authorization' always; + + # Increase timeouts for potentially slow API calls + proxy_read_timeout 120; + proxy_connect_timeout 120; + proxy_send_timeout 120; + } + + # === Additional common settings === + + # Increase client body size for file uploads if needed + client_max_body_size 10M; + + # Enable compression for better performance + gzip on; + gzip_comp_level 5; + gzip_min_length 256; + gzip_proxied any; + gzip_vary on; + gzip_types + application/atom+xml + application/javascript + application/json + application/ld+json + application/manifest+json + application/rss+xml + application/vnd.geo+json + application/vnd.ms-fontobject + application/x-font-ttf + application/x-web-app-manifest+json + application/xhtml+xml + application/xml + font/opentype + image/bmp + image/svg+xml + image/x-icon + text/cache-manifest + text/css + text/plain + text/vcard + text/vnd.rim.location.xloc + text/vtt + text/x-component + text/x-cross-domain-policy; + + # Optional: serve static assets directly if you ever add any here + # location /static/ { + # root /var/www/puffinoffset.com; + # try_files $uri $uri/ =404; + # } +} diff --git a/project/nginx.conf b/project/nginx.conf new file mode 100644 index 0000000..774ed9c --- /dev/null +++ b/project/nginx.conf @@ -0,0 +1,59 @@ +server { + listen 3800; # Changed to port 3800 to match external Nginx config + server_name localhost; + + # Root directory for static files + root /usr/share/nginx/html; + + index index.html; + + # Enable gzip compression + gzip on; + gzip_min_length 1000; + gzip_proxied expired no-cache no-store private auth; + gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript; + + # Add CORS headers for static assets including images + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { + expires 30d; + add_header Cache-Control "public, no-transform"; + add_header Access-Control-Allow-Origin * always; + add_header Access-Control-Allow-Methods 'GET, OPTIONS' always; + add_header Access-Control-Allow-Headers 'Origin, X-Requested-With, Content-Type, Accept, Authorization' always; + try_files $uri =404; + } + + # Forward all requests to index.html for SPA routing + location / { + try_files $uri $uri/ /index.html; + + # Add CORS headers for all responses + add_header Access-Control-Allow-Origin * always; + add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS' always; + add_header Access-Control-Allow-Headers 'Origin, X-Requested-With, Content-Type, Accept, Authorization' always; + } + + # Respond to preflighted CORS requests + location /api/ { + if ($request_method = 'OPTIONS') { + add_header Access-Control-Allow-Origin * always; + add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS' always; + add_header Access-Control-Allow-Headers 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization' always; + add_header Access-Control-Max-Age 1728000; + add_header Content-Type 'text/plain charset=UTF-8'; + add_header Content-Length 0; + return 204; + } + try_files $uri $uri/ /index.html; + } + + # Don't cache HTML + location ~* \.html$ { + expires -1; + add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate"; + } + + # Error handling + error_page 404 /index.html; + error_page 500 502 503 504 /index.html; +} diff --git a/project/package-lock.json b/project/package-lock.json new file mode 100644 index 0000000..ea7c560 --- /dev/null +++ b/project/package-lock.json @@ -0,0 +1,6593 @@ +{ + "name": "puffin-offset", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "puffin-offset", + "version": "1.0.0", + "dependencies": { + "axios": "^1.6.7", + "dotenv": "^8.2.0", + "framer-motion": "^12.15.0", + "lucide-react": "^0.344.0", + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@eslint/js": "^9.9.1", + "@testing-library/jest-dom": "^6.4.2", + "@testing-library/react": "^14.2.1", + "@types/react": "^18.3.5", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "autoprefixer": "^10.4.18", + "eslint": "^9.9.1", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.11", + "globals": "^15.9.0", + "jsdom": "^24.0.0", + "postcss": "^8.4.35", + "tailwindcss": "^3.4.1", + "typescript": "^5.5.3", + "typescript-eslint": "^8.3.0", + "vite": "^5.4.2", + "vitest": "^1.3.1" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.1.tgz", + "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==", + "dev": true + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@asamuzakjp/css-color": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-2.8.3.tgz", + "integrity": "sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw==", + "dev": true, + "dependencies": { + "@csstools/css-calc": "^2.1.1", + "@csstools/css-color-parser": "^3.0.7", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.25.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.7.tgz", + "integrity": "sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", + "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helpers": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", + "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", + "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", + "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", + "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", + "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", + "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", + "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz", + "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.7.tgz", + "integrity": "sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.7.tgz", + "integrity": "sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.7.tgz", + "integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", + "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", + "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz", + "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz", + "integrity": "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.1.tgz", + "integrity": "sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.7.tgz", + "integrity": "sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/color-helpers": "^5.0.1", + "@csstools/css-calc": "^2.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", + "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", + "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.6.0.tgz", + "integrity": "sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.12.0.tgz", + "integrity": "sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", + "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", + "dev": true, + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz", + "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.5", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz", + "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==", + "dev": true, + "dependencies": { + "@humanfs/core": "^0.19.0", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@testing-library/dom": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", + "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@testing-library/dom/node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true + }, + "node_modules/@testing-library/dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", + "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", + "dev": true, + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "lodash": "^4.17.21", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@testing-library/jest-dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "14.3.1", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.3.1.tgz", + "integrity": "sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^9.0.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.3.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", + "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.8.1.tgz", + "integrity": "sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.8.1", + "@typescript-eslint/type-utils": "8.8.1", + "@typescript-eslint/utils": "8.8.1", + "@typescript-eslint/visitor-keys": "8.8.1", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.1.tgz", + "integrity": "sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.8.1", + "@typescript-eslint/types": "8.8.1", + "@typescript-eslint/typescript-estree": "8.8.1", + "@typescript-eslint/visitor-keys": "8.8.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.8.1.tgz", + "integrity": "sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.8.1", + "@typescript-eslint/visitor-keys": "8.8.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.8.1.tgz", + "integrity": "sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "8.8.1", + "@typescript-eslint/utils": "8.8.1", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.8.1.tgz", + "integrity": "sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.8.1.tgz", + "integrity": "sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.8.1", + "@typescript-eslint/visitor-keys": "8.8.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.8.1.tgz", + "integrity": "sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.8.1", + "@typescript-eslint/types": "8.8.1", + "@typescript-eslint/typescript-estree": "8.8.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.8.1.tgz", + "integrity": "sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.8.1", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz", + "integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/plugin-transform-react-jsx-self": "^7.24.7", + "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/@vitest/expect": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz", + "integrity": "sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==", + "dev": true, + "dependencies": { + "@vitest/spy": "1.6.1", + "@vitest/utils": "1.6.1", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz", + "integrity": "sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==", + "dev": true, + "dependencies": { + "@vitest/utils": "1.6.1", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz", + "integrity": "sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/snapshot/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/snapshot/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/@vitest/spy": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz", + "integrity": "sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==", + "dev": true, + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz", + "integrity": "sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==", + "dev": true, + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/utils/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/utils/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chai": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssstyle": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.2.1.tgz", + "integrity": "sha512-9+vem03dMXG7gDmZ62uqmRiMRNtinIZ9ZyuF6BdxzfOD+FdN5hretzynkn0ReS2DO2GSw76RWHs0UmJPI2zUjw==", + "dev": true, + "dependencies": { + "@asamuzakjp/css-color": "^2.8.2", + "rrweb-cssom": "^0.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/cssstyle/node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "dev": true, + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", + "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "dev": true + }, + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true + }, + "node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.33", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", + "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.12.0.tgz", + "integrity": "sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.6.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.12.0", + "@eslint/plugin-kit": "^0.2.0", + "@humanfs/node": "^0.16.5", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.1.0", + "eslint-visitor-keys": "^4.1.0", + "espree": "^10.2.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.1.0-rc-fb9a90fa48-20240614", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0-rc-fb9a90fa48-20240614.tgz", + "integrity": "sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPPnoNVjq5Gc0w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.12.tgz", + "integrity": "sha512-9neVjoGv20FwYtCP6CB1dzR1vr57ZDNOXst21wd2xJ/cTlM2xLq0GWVlSNTdMn/4BtP6cHYBMCSp1wFBJ9jBsg==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", + "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", + "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", + "dev": true, + "dependencies": { + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.4.tgz", + "integrity": "sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==", + "dev": true, + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "12.15.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.15.0.tgz", + "integrity": "sha512-XKg/LnKExdLGugZrDILV7jZjI599785lDIJZLxMiiIFidCsy0a4R2ZEf+Izm67zyOuJgQYTHOmodi7igQsw3vg==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.15.0", + "motion-utils": "^12.12.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "15.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", + "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "24.1.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.3.tgz", + "integrity": "sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ==", + "dev": true, + "dependencies": { + "cssstyle": "^4.0.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.5", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.12", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.7.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.4", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^2.11.2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/local-pkg": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz", + "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==", + "dev": true, + "dependencies": { + "mlly": "^1.7.3", + "pkg-types": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.344.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.344.0.tgz", + "integrity": "sha512-6YyBnn91GB45VuVT96bYCOKElbJzUHqp65vX8cDcu55MQL9T969v4dhGClpljamuI/+KMO9P6w9Acq1CVQGvIQ==", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mlly": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", + "ufo": "^1.5.4" + } + }, + "node_modules/mlly/node_modules/pathe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz", + "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==", + "dev": true + }, + "node_modules/motion-dom": { + "version": "12.15.0", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.15.0.tgz", + "integrity": "sha512-D2ldJgor+2vdcrDtKJw48k3OddXiZN1dDLLWrS8kiHzQdYVruh0IoTwbJBslrnTXIPgFED7PBN2Zbwl7rNqnhA==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.12.1" + } + }, + "node_modules/motion-utils": { + "version": "12.12.1", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.12.1.tgz", + "integrity": "sha512-f9qiqUHm7hWSLlNW8gS9pisnsN7CRFRD58vNjptKdsqFLpkVnX00TNeD6Q0d27V9KzT7ySFyK1TZ/DShfVOv6w==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nwsapi": { + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", + "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "dev": true, + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/pkg-types/node_modules/pathe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz", + "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==", + "dev": true + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dev": true, + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", + "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", + "dev": true + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/std-env": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", + "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", + "dev": true + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz", + "integrity": "sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==", + "dev": true, + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/tailwindcss": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz", + "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "dev": true, + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.8.1.tgz", + "integrity": "sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.8.1", + "@typescript-eslint/parser": "8.8.1", + "@typescript-eslint/utils": "8.8.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "dev": true + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vite": { + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", + "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz", + "integrity": "sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz", + "integrity": "sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==", + "dev": true, + "dependencies": { + "@vitest/expect": "1.6.1", + "@vitest/runner": "1.6.1", + "@vitest/snapshot": "1.6.1", + "@vitest/spy": "1.6.1", + "@vitest/utils": "1.6.1", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.1", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.1", + "@vitest/ui": "1.6.1", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.1.0.tgz", + "integrity": "sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==", + "dev": true, + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", + "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/project/package.json b/project/package.json new file mode 100644 index 0000000..d2dc9d4 --- /dev/null +++ b/project/package.json @@ -0,0 +1,41 @@ +{ + "name": "puffin-offset", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview", + "test": "vitest" + }, + "dependencies": { + "axios": "^1.6.7", + "dotenv": "^8.2.0", + "framer-motion": "^12.15.0", + "lucide-react": "^0.344.0", + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@eslint/js": "^9.9.1", + "@testing-library/jest-dom": "^6.4.2", + "@testing-library/react": "^14.2.1", + "@types/react": "^18.3.5", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "autoprefixer": "^10.4.18", + "eslint": "^9.9.1", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.11", + "globals": "^15.9.0", + "jsdom": "^24.0.0", + "postcss": "^8.4.35", + "tailwindcss": "^3.4.1", + "typescript": "^5.5.3", + "typescript-eslint": "^8.3.0", + "vite": "^5.4.2", + "vitest": "^1.3.1" + } +} diff --git a/project/postcss.config.js b/project/postcss.config.js new file mode 100644 index 0000000..2aa7205 --- /dev/null +++ b/project/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/project/public/puffin-logo.svg b/project/public/puffin-logo.svg new file mode 100644 index 0000000..81a7a71 --- /dev/null +++ b/project/public/puffin-logo.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/project/public/robots.txt b/project/public/robots.txt new file mode 100644 index 0000000..cdab7ca --- /dev/null +++ b/project/public/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: https://puffinoffset.com/sitemap.xml \ No newline at end of file diff --git a/project/public/sitemap.xml b/project/public/sitemap.xml new file mode 100644 index 0000000..52d8a1d --- /dev/null +++ b/project/public/sitemap.xml @@ -0,0 +1,28 @@ + + + + https://puffinoffset.com/ + weekly + 1.0 + + + https://puffinoffset.com/calculator + weekly + 0.9 + + + https://puffinoffset.com/how-it-works + monthly + 0.8 + + + https://puffinoffset.com/about + monthly + 0.7 + + + https://puffinoffset.com/contact + monthly + 0.7 + + \ No newline at end of file diff --git a/project/public/yacht-hero.jpg b/project/public/yacht-hero.jpg new file mode 100644 index 0000000..83f1b4e --- /dev/null +++ b/project/public/yacht-hero.jpg @@ -0,0 +1 @@ +[Binary file content cannot be directly created - please save the provided image as 'yacht-hero.jpg' in the public directory] \ No newline at end of file diff --git a/project/src/App.tsx b/project/src/App.tsx new file mode 100644 index 0000000..fc5288f --- /dev/null +++ b/project/src/App.tsx @@ -0,0 +1,243 @@ +import React, { useState, useEffect } from 'react'; +import { Bird, Menu, X } from 'lucide-react'; +import { motion, AnimatePresence } from 'framer-motion'; +import { Home } from './components/Home'; +import { YachtSearch } from './components/YachtSearch'; +import { TripCalculator } from './components/TripCalculator'; +import { HowItWorks } from './components/HowItWorks'; +import { About } from './components/About'; +import { Contact } from './components/Contact'; +import { OffsetOrder } from './components/OffsetOrder'; +import { getVesselData } from './api/aisClient'; +import { calculateTripCarbon } from './utils/carbonCalculator'; +import { analytics } from './utils/analytics'; +import type { VesselData, CarbonCalculation, CalculatorType } from './types'; + +const sampleVessel: VesselData = { + imo: "1234567", + vesselName: "Sample Yacht", + type: "Yacht", + length: 50, + width: 9, + estimatedEnginePower: 2250 +}; + +function App() { + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const [vesselData, setVesselData] = useState(null); + const [currentPage, setCurrentPage] = useState<'home' | 'calculator' | 'how-it-works' | 'about' | 'contact'>('home'); + const [showOffsetOrder, setShowOffsetOrder] = useState(false); + const [offsetTons, setOffsetTons] = useState(0); + const [monetaryAmount, setMonetaryAmount] = useState(); + const [calculatorType, setCalculatorType] = useState('trip'); + const [mobileMenuOpen, setMobileMenuOpen] = useState(false); + + useEffect(() => { + analytics.pageView(window.location.pathname); + }, [currentPage]); + + const handleSearch = async (imo: string) => { + setLoading(true); + setError(null); + setVesselData(null); + + try { + const vessel = await getVesselData(imo); + setVesselData(vessel); + } catch (err) { + setError('Unable to fetch vessel data. Please verify the IMO number and try again.'); + } finally { + setLoading(false); + } + }; + + const handleOffsetClick = (tons: number, monetaryAmount?: number) => { + setOffsetTons(tons); + setMonetaryAmount(monetaryAmount); + setShowOffsetOrder(true); + window.scrollTo({ top: 0, behavior: 'smooth' }); + }; + + const handleNavigate = (page: 'home' | 'calculator' | 'how-it-works' | 'about' | 'contact') => { + setCurrentPage(page); + setMobileMenuOpen(false); + window.scrollTo({ top: 0, behavior: 'smooth' }); + }; + + const renderPage = () => { + if (currentPage === 'calculator' && showOffsetOrder) { + return ( +
+ { + setShowOffsetOrder(false); + window.scrollTo({ top: 0, behavior: 'smooth' }); + }} + calculatorType={calculatorType} + /> +
+ ); + } + + switch (currentPage) { + case 'calculator': + return ( +
+
+

+ Calculate & Offset Your Yacht's Carbon Footprint +

+

+ Use the calculator below to estimate your carbon footprint and explore offsetting options through our verified projects. +

+
+ +
+ +
+
+ ); + case 'how-it-works': + return ; + case 'about': + return ; + case 'contact': + return ; + default: + return ; + } + }; + + return ( +
+
+
+
+
handleNavigate('home')} + > + +

Puffin Offset

+
+ + {/* Mobile menu button */} + + + {/* Desktop navigation */} + +
+ + {/* Mobile navigation */} + {mobileMenuOpen && ( + + )} +
+
+ +
+ + + {renderPage()} + + +
+ +
+
+

+ Powered by Wren Carbon Offset Projects +

+
+
+
+ ); +} + +export default App; diff --git a/project/src/api/aisClient.ts b/project/src/api/aisClient.ts new file mode 100644 index 0000000..116903b --- /dev/null +++ b/project/src/api/aisClient.ts @@ -0,0 +1,72 @@ +import axios from 'axios'; +import type { VesselData } from '../types'; + +// Using MarineTraffic API as an example - you'll need to add your API key +const API_KEY = import.meta.env.VITE_MARINE_TRAFFIC_API_KEY; +const API_BASE_URL = 'https://services.marinetraffic.com/api/vesselmasterdata/v3'; + +export async function getVesselData(imo: string): Promise { + // For development, return mock data if no API key is present + if (!API_KEY) { + console.warn('No API key found - using mock data'); + return getMockVesselData(imo); + } + + try { + const response = await axios.get(API_BASE_URL, { + params: { + imo, + apikey: API_KEY, + } + }); + + if (!response.data || response.data.errors) { + throw new Error('Vessel not found'); + } + + const data = response.data[0]; // API returns an array + + return { + imo: imo, + vesselName: data.VESSEL_NAME || 'Unknown', + type: data.SHIP_TYPE || 'Unknown', + length: Number(data.LENGTH) || 0, + width: Number(data.BREADTH) || 0, + estimatedEnginePower: calculateEstimatedEnginePower( + Number(data.LENGTH), + Number(data.BREADTH), + data.SHIP_TYPE + ) + }; + } catch (error) { + console.error('AIS API Error:', error); + throw new Error('Failed to fetch vessel data. Please check your IMO number and try again.'); + } +} + +function calculateEstimatedEnginePower(length: number, width: number, type: string): number { + // Simplified power estimation based on vessel dimensions + const baselinePower = length * width * 5; // kW + + // Apply vessel type multiplier + const typeMultiplier = { + 'Yacht': 1.2, + 'Passenger': 1.5, + 'Cargo': 1.0, + 'default': 1.0 + }[type] || 1.0; + + return Math.round(baselinePower * typeMultiplier); +} + +// Mock data for development +function getMockVesselData(imo: string): VesselData { + return { + imo: imo, + vesselName: "Sample Yacht", + type: "Yacht", + length: 50, + width: 9, + estimatedEnginePower: 2250 // 50 * 9 * 5 + }; +} \ No newline at end of file diff --git a/project/src/api/wrenClient.ts b/project/src/api/wrenClient.ts new file mode 100644 index 0000000..23fafb9 --- /dev/null +++ b/project/src/api/wrenClient.ts @@ -0,0 +1,306 @@ +import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios'; +import type { OffsetOrder, Portfolio } from '../types'; +import { config } from '../utils/config'; + +// Default portfolio for fallback +const DEFAULT_PORTFOLIO: Portfolio = { + id: 2, // Updated to use ID 2 as in the tutorial + name: "Community Tree Planting", + description: "A curated selection of high-impact carbon removal projects focused on carbon sequestration through tree planting.", + projects: [ + { + id: "tree-1", + name: "Community Tree Planting", + description: "Carbon sequestration through community tree planting", + shortDescription: "Tree planting projects", + imageUrl: "https://images.unsplash.com/photo-1513836279014-a89f7a76ae86", + pricePerTon: 284.63, + location: "Global", + type: "Nature Based", + verificationStandard: "Gold Standard", + impactMetrics: { + co2Reduced: 5000 + } + } + ], + pricePerTon: 284.63, + currency: 'USD' +}; + +// Create API client with error handling, timeout, and retry logic +const createApiClient = () => { + if (!config.wrenApiKey) { + console.error('Wren API token is missing! Token:', config.wrenApiKey); + console.error('Environment:', window?.env ? JSON.stringify(window.env) : 'No window.env available'); + throw new Error('Wren API token is not configured'); + } + + console.log('[wrenClient] Creating API client with key:', config.wrenApiKey ? '********' + config.wrenApiKey.slice(-4) : 'MISSING'); + + const client = axios.create({ + // Updated base URL to match the tutorial exactly + baseURL: 'https://www.wren.co/api', + headers: { + 'Authorization': `Bearer ${config.wrenApiKey}`, + 'Content-Type': 'application/json' + }, + timeout: 10000, // 10 second timeout + validateStatus: (status: number) => status >= 200 && status < 500, // Handle 4xx errors gracefully + }); + + // Add request interceptor for logging + client.interceptors.request.use( + (config: AxiosRequestConfig) => { + if (!config.headers?.Authorization) { + throw new Error('API token is required'); + } + console.log('[wrenClient] Making API request to:', config.url); + return config; + }, + (error: Error) => { + console.error('[wrenClient] Request configuration error:', error.message); + return Promise.reject(error); + } + ); + + // Add response interceptor for error handling + client.interceptors.response.use( + (response: AxiosResponse) => { + console.log('[wrenClient] Received API response:', response.status); + return response; + }, + (error: unknown) => { + if (axios.isAxiosError(error)) { + if (error.code === 'ECONNABORTED') { + console.warn('[wrenClient] Request timeout, using fallback data'); + return Promise.resolve({ data: { portfolios: [DEFAULT_PORTFOLIO] } }); + } + if (!error.response) { + console.warn('[wrenClient] Network error, using fallback data'); + return Promise.resolve({ data: { portfolios: [DEFAULT_PORTFOLIO] } }); + } + if (error.response.status === 401) { + console.warn('[wrenClient] Authentication failed, using fallback data'); + return Promise.resolve({ data: { portfolios: [DEFAULT_PORTFOLIO] } }); + } + console.error('[wrenClient] API error:', error.response?.status, error.response?.data); + } + return Promise.reject(error); + } + ); + + return client; +}; + +// Safe error logging function that handles non-serializable objects +const logError = (error: unknown) => { + if (error instanceof Error) { + const errorInfo = { + name: error.name, + message: error.message, + stack: error.stack + }; + console.error('[wrenClient] API Error:', JSON.stringify(errorInfo, null, 2)); + } else { + console.error('[wrenClient] Unknown error:', String(error)); + } +}; + +export async function getPortfolios(): Promise { + try { + if (!config.wrenApiKey) { + console.warn('[wrenClient] No Wren API token configured, using fallback portfolio'); + return [DEFAULT_PORTFOLIO]; + } + + console.log('[wrenClient] Getting portfolios with token:', config.wrenApiKey ? '********' + config.wrenApiKey.slice(-4) : 'MISSING'); + + const api = createApiClient(); + // Removed the /api prefix to match the working example + const response = await api.get('/portfolios'); + + if (!response.data?.portfolios?.length) { + console.warn('[wrenClient] No portfolios returned from API, using fallback'); + return [DEFAULT_PORTFOLIO]; + } + + return response.data.portfolios.map((portfolio: any) => { + let pricePerTon = 18; // Default price based on the Wren Climate Fund average + + // The API returns cost_per_ton in snake_case + if (portfolio.cost_per_ton !== undefined && portfolio.cost_per_ton !== null) { + pricePerTon = typeof portfolio.cost_per_ton === 'number' ? portfolio.cost_per_ton : parseFloat(portfolio.cost_per_ton) || 18; + } else if (portfolio.costPerTon !== undefined && portfolio.costPerTon !== null) { + pricePerTon = typeof portfolio.costPerTon === 'number' ? portfolio.costPerTon : parseFloat(portfolio.costPerTon) || 18; + } else if (portfolio.pricePerTon !== undefined && portfolio.pricePerTon !== null) { + pricePerTon = typeof portfolio.pricePerTon === 'number' ? portfolio.pricePerTon : parseFloat(portfolio.pricePerTon) || 18; + } + + // Convert from snake_case to camelCase for projects + const projects = portfolio.projects?.map(project => { + // Ensure cost_per_ton is properly mapped + const projectPricePerTon = project.cost_per_ton !== undefined && project.cost_per_ton !== null + ? (typeof project.cost_per_ton === 'number' ? project.cost_per_ton : parseFloat(project.cost_per_ton)) + : pricePerTon; + + // Ensure percentage is properly captured + const projectPercentage = project.percentage !== undefined && project.percentage !== null + ? (typeof project.percentage === 'number' ? project.percentage : parseFloat(project.percentage)) + : undefined; + + return { + id: project.id || `project-${Math.random().toString(36).substring(2, 9)}`, + name: project.name, + description: project.description || '', + shortDescription: project.short_description || project.description || '', + imageUrl: project.image_url, // Map from snake_case API response + pricePerTon: projectPricePerTon, + percentage: projectPercentage, // Include percentage field + // Remove fields that aren't in the API + // The required type fields are still in the type definition for compatibility + // but we no longer populate them with default values + location: '', + type: '', + verificationStandard: '', + impactMetrics: { + co2Reduced: 0 + } + }; + }) || []; + + return { + id: portfolio.id, + name: portfolio.name, + description: portfolio.description || '', + projects: projects, + pricePerTon, + currency: 'USD' + }; + }); + } catch (error) { + logError(error); + console.warn('[wrenClient] Failed to fetch portfolios from API, using fallback'); + return [DEFAULT_PORTFOLIO]; + } +} + +export async function createOffsetOrder( + portfolioId: number, + tons: number, + dryRun: boolean = false +): Promise { + try { + if (!config.wrenApiKey) { + console.error('[wrenClient] Cannot create order - missing API token'); + throw new Error('Carbon offset service is currently unavailable. Please contact support.'); + } + + console.log(`[wrenClient] Creating offset order: portfolio=${portfolioId}, tons=${tons}, dryRun=${dryRun}`); + + const api = createApiClient(); + // Removed the /api prefix to match the working example + const response = await api.post('/offset-orders', { + // Using exactly the format shown in the API tutorial + portfolioId, // Use the provided portfolio ID instead of hardcoding + tons, + dryRun // Use the provided dryRun parameter + }); + + // Add detailed response logging + console.log('[wrenClient] Offset order response:', + response.status, + response.data ? 'has data' : 'no data'); + + if (response.status === 400) { + console.error('[wrenClient] Bad request details:', response.data); + throw new Error(`Failed to create offset order: ${JSON.stringify(response.data)}`); + } + + const order = response.data; + if (!order) { + throw new Error('Empty response received from offset order API'); + } + + // Log to help diagnose issues + console.log('[wrenClient] Order data keys:', Object.keys(order).join(', ')); + if (order.portfolio) { + console.log('[wrenClient] Portfolio data keys:', Object.keys(order.portfolio).join(', ')); + } + + // Get price from API response which uses cost_per_ton + let pricePerTon = 18; + if (order.portfolio?.cost_per_ton !== undefined) { + pricePerTon = typeof order.portfolio.cost_per_ton === 'number' ? order.portfolio.cost_per_ton : parseFloat(order.portfolio.cost_per_ton) || 18; + } else if (order.portfolio?.costPerTon !== undefined) { + pricePerTon = typeof order.portfolio.costPerTon === 'number' ? order.portfolio.costPerTon : parseFloat(order.portfolio.costPerTon) || 18; + } else if (order.portfolio?.pricePerTon !== undefined) { + pricePerTon = typeof order.portfolio.pricePerTon === 'number' ? order.portfolio.pricePerTon : parseFloat(order.portfolio.pricePerTon) || 18; + } + + // Create a safe method to extract properties with fallbacks + const getSafeProp = (obj: any, prop: string, fallback: any) => { + if (!obj) return fallback; + return obj[prop] !== undefined ? obj[prop] : fallback; + }; + + // Use safe accessor to avoid undefined errors + const portfolio = order.portfolio || {}; + + // Adjusted to use camelCase as per API docs response format + return { + id: getSafeProp(order, 'id', ''), + amountCharged: getSafeProp(order, 'amountCharged', 0), + currency: getSafeProp(order, 'currency', 'USD'), + tons: getSafeProp(order, 'tons', 0), + portfolio: { + id: getSafeProp(portfolio, 'id', 2), + name: getSafeProp(portfolio, 'name', 'Community Tree Planting'), + description: getSafeProp(portfolio, 'description', ''), + projects: getSafeProp(portfolio, 'projects', []), + pricePerTon, + currency: getSafeProp(order, 'currency', 'USD') + }, + status: getSafeProp(order, 'status', ''), + createdAt: getSafeProp(order, 'createdAt', new Date().toISOString()), + dryRun: getSafeProp(order, 'dryRun', true) + }; + } catch (error: unknown) { + logError(error); + + if (axios.isAxiosError(error)) { + const axiosError = error as AxiosError; + + console.error('[wrenClient] Axios error details:', { + status: axiosError.response?.status, + statusText: axiosError.response?.statusText, + data: axiosError.response?.data, + config: { + url: axiosError.config?.url, + method: axiosError.config?.method, + headers: axiosError.config?.headers ? 'Headers present' : 'No headers', + baseURL: axiosError.config?.baseURL, + data: axiosError.config?.data + } + }); + + if (axiosError.response?.status === 400) { + // Provide more specific error for 400 Bad Request + const responseData = axiosError.response.data as any; + const errorMessage = responseData?.message || responseData?.error || 'Invalid request format'; + throw new Error(`Bad request: ${errorMessage}`); + } + + if (axiosError.code === 'ECONNABORTED') { + throw new Error('Request timed out. Please try again.'); + } + if (!axiosError.response) { + throw new Error('Network error. Please check your connection and try again.'); + } + if (axiosError.response.status === 401) { + throw new Error('Carbon offset service authentication failed. Please check your API token.'); + } + } + + throw new Error('Failed to create offset order. Please try again.'); + } +} diff --git a/project/src/components/About.tsx b/project/src/components/About.tsx new file mode 100644 index 0000000..c47456d --- /dev/null +++ b/project/src/components/About.tsx @@ -0,0 +1,98 @@ +import React from 'react'; +import { Anchor, Heart, Leaf, Scale, CreditCard, FileCheck, Handshake, Rocket } from 'lucide-react'; + +interface Props { + onNavigate: (page: 'home' | 'calculator' | 'how-it-works' | 'about' | 'contact') => void; +} + +export function About({ onNavigate }: Props) { + const handleStartOffsetting = () => { + onNavigate('calculator'); + setTimeout(() => { + window.scrollTo({ top: 0, behavior: 'smooth' }); + }, 0); + }; + + return ( +
+
+

About Puffin Offset

+

+ Leading the way in maritime carbon offsetting solutions +

+
+ +
+

+ Puffin Offset was founded with a clear mission: to make carbon offsetting accessible and effective for the maritime industry. We understand the unique challenges faced by yacht owners and operators in reducing their environmental impact while maintaining the highest standards of luxury and service. +

+
+ +
+
+
+ +

Our Mission

+
+

+ To empower the maritime industry with effective, transparent, and accessible carbon offsetting solutions that make a real difference in the fight against climate change. +

+
+ +
+
+ +

Our Impact

+
+

+ Through our partnerships with verified carbon offset projects, we are able to help maritime businesses offset thousands of tons of CO₂ emissions and support sustainable development worldwide. +

+
+
+ +
+

Our Values

+
+
+ +
+

Transparency

+

Clear, honest reporting on the impact of every offset.

+
+
+
+ +
+

Quality

+

Only the highest standard of verified offset projects.

+
+
+
+ +
+

Partnership

+

Working together for a sustainable future.

+
+
+
+ +
+

Future Proof

+

Constantly improving our service and offsetting products.

+
+
+
+
+ +
+

Ready to Make a Difference?

+ +
+
+ ); +} \ No newline at end of file diff --git a/project/src/components/CarbonOffset.tsx b/project/src/components/CarbonOffset.tsx new file mode 100644 index 0000000..b0adc7e --- /dev/null +++ b/project/src/components/CarbonOffset.tsx @@ -0,0 +1,208 @@ +import React, { useState } from 'react'; +import { Leaf } from 'lucide-react'; +import type { CarbonCalculation, CurrencyCode } from '../types'; +import { currencies, formatCurrency } from '../utils/currencies'; +import { CurrencySelect } from './CurrencySelect'; +import { calculateCarbonFromDistance } from '../utils/carbonCalculator'; + +interface Props { + calculation: CarbonCalculation; + onOffsetClick?: (tons: number) => void; +} + +export function CarbonOffset({ calculation, onOffsetClick }: Props) { + const [calculationType, setCalculationType] = useState<'distance' | 'fuel'>('distance'); + const [annualDistance, setAnnualDistance] = useState(''); + const [fuelAmount, setFuelAmount] = useState(''); + const [fuelUnit, setFuelUnit] = useState<'liters' | 'gallons'>('liters'); + const [currency, setCurrency] = useState('USD'); + const [offsetPercentage, setOffsetPercentage] = useState(100); + const [customPercentage, setCustomPercentage] = useState(''); + const selectedCurrency = currencies[currency]; + + const handleCustomPercentageChange = (e: React.ChangeEvent) => { + const value = e.target.value; + if (value === '' || (Number(value) >= 0 && Number(value) <= 100)) { + setCustomPercentage(value); + if (value !== '') { + setOffsetPercentage(Number(value)); + } + } + }; + + const handlePresetPercentage = (percentage: number) => { + setOffsetPercentage(percentage); + setCustomPercentage(''); + }; + + const calculateOffsetAmount = (emissions: number, percentage: number) => { + return (emissions * percentage) / 100; + }; + + const getEmissions = () => { + if (calculationType === 'distance' && annualDistance) { + return calculateCarbonFromDistance(Number(annualDistance)); + } + return calculation.yearlyEmissions; + }; + + const emissions = getEmissions(); + const offsetAmount = calculateOffsetAmount(emissions, offsetPercentage); + const offsetCost = (offsetAmount * 20); // $20 per ton + + return ( +
+
+

Annual Carbon Offset Summary

+ +
+ +
+ +
+ + +
+
+ + {calculationType === 'distance' && ( +
+ + setAnnualDistance(e.target.value)} + placeholder="Enter annual distance" + className="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-green-500 focus:ring focus:ring-green-200" + /> +
+ )} + + {calculationType === 'fuel' && ( +
+ +
+
+ setFuelAmount(e.target.value)} + className="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-green-500 focus:ring focus:ring-green-200" + required + /> +
+
+ +
+
+
+ )} + +
+ +
+ {[100, 50, 25].map((percent) => ( + + ))} +
+ + % +
+
+
+ +
+ +
+ +
+
+ +
+
+

Selected Offset Amount

+

+ {offsetAmount.toFixed(2)} tons CO₂ +

+

+ {offsetPercentage}% of {emissions.toFixed(2)} tons +

+
+
+

Estimated Offset Cost

+

+ {formatCurrency(offsetCost, selectedCurrency)} +

+
+
+ + +
+ ); +} \ No newline at end of file diff --git a/project/src/components/Contact.tsx b/project/src/components/Contact.tsx new file mode 100644 index 0000000..633e369 --- /dev/null +++ b/project/src/components/Contact.tsx @@ -0,0 +1,217 @@ +import React, { useState } from 'react'; +import { Mail, Phone, Loader2, AlertCircle } from 'lucide-react'; +import { validateEmail, sendFormspreeEmail } from '../utils/email'; +import { analytics } from '../utils/analytics'; + +export function Contact() { + const [formData, setFormData] = useState({ + name: '', + email: '', + phone: '', + company: '', + message: '' + }); + const [submitted, setSubmitted] = useState(false); + const [sending, setSending] = useState(false); + const [error, setError] = useState(null); + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + setSending(true); + setError(null); + + try { + // Validate email + if (!validateEmail(formData.email)) { + throw new Error('Please enter a valid email address'); + } + + // Send via Formspree + await sendFormspreeEmail(formData, 'contact'); + + setSubmitted(true); + analytics.event('contact', 'form_submitted'); + + // Reset form after delay + setTimeout(() => { + setFormData({ + name: '', + email: '', + phone: '', + company: '', + message: '' + }); + setSubmitted(false); + }, 3000); + } catch (err) { + setError(err instanceof Error ? err.message : 'Failed to send message. Please try again.'); + analytics.error(err as Error, 'Contact form submission failed'); + } finally { + setSending(false); + } + }; + + const handleChange = (e: React.ChangeEvent) => { + const { name, value } = e.target; + setFormData(prev => ({ + ...prev, + [name]: value + })); + }; + + return ( +
+ ); +} \ No newline at end of file diff --git a/project/src/components/CurrencySelect.tsx b/project/src/components/CurrencySelect.tsx new file mode 100644 index 0000000..a335963 --- /dev/null +++ b/project/src/components/CurrencySelect.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import type { CurrencyCode } from '../types'; +import { currencies } from '../utils/currencies'; + +interface Props { + value: CurrencyCode; + onChange: (currency: CurrencyCode) => void; +} + +export function CurrencySelect({ value, onChange }: Props) { + return ( + + ); +} \ No newline at end of file diff --git a/project/src/components/ErrorBoundary.tsx b/project/src/components/ErrorBoundary.tsx new file mode 100644 index 0000000..36b6429 --- /dev/null +++ b/project/src/components/ErrorBoundary.tsx @@ -0,0 +1,54 @@ +import React, { Component, ErrorInfo, ReactNode } from 'react'; +import { AlertCircle } from 'lucide-react'; + +interface Props { + children: ReactNode; +} + +interface State { + hasError: boolean; + error: Error | null; +} + +export class ErrorBoundary extends Component { + public state: State = { + hasError: false, + error: null + }; + + public static getDerivedStateFromError(error: Error): State { + return { hasError: true, error }; + } + + public componentDidCatch(error: Error, errorInfo: ErrorInfo) { + console.error('Uncaught error:', error, errorInfo); + } + + public render() { + if (this.state.hasError) { + return ( +
+
+
+ +
+

+ Something went wrong +

+

+ We apologize for the inconvenience. Please try refreshing the page or contact support if the problem persists. +

+ +
+
+ ); + } + + return this.props.children; + } +} \ No newline at end of file diff --git a/project/src/components/Home.tsx b/project/src/components/Home.tsx new file mode 100644 index 0000000..d52f643 --- /dev/null +++ b/project/src/components/Home.tsx @@ -0,0 +1,272 @@ +import React, { useEffect, useRef } from 'react'; +import { Anchor, Globe, BarChart } from 'lucide-react'; +import { motion } from 'framer-motion'; + +interface Props { + onNavigate: (page: 'home' | 'calculator' | 'how-it-works' | 'about' | 'contact') => void; +} + +export function Home({ onNavigate }: Props) { + const handleCalculateClick = () => { + onNavigate('calculator'); + setTimeout(() => { + window.scrollTo({ top: 0, behavior: 'smooth' }); + }, 0); + }; + + const handleLearnMoreClick = () => { + onNavigate('about'); + setTimeout(() => { + window.scrollTo({ top: 0, behavior: 'smooth' }); + }, 0); + }; + + // Animation variants + const fadeInUp = { + hidden: { opacity: 0, y: 20 }, + visible: { + opacity: 1, + y: 0, + transition: { + duration: 0.6, + ease: [0.22, 1, 0.36, 1] + } + } + }; + + const staggerContainer = { + hidden: { opacity: 0 }, + visible: { + opacity: 1, + transition: { + staggerChildren: 0.2, + delayChildren: 0.3 + } + } + }; + + const scaleOnHover = { + rest: { scale: 1 }, + hover: { + scale: 1.05, + transition: { + type: "spring", + stiffness: 400, + damping: 17 + } + } + }; + + return ( +
+ +
+ + +
+
+
+ + Set Sail Sustainably with Carbon Offsetting for Superyachts + + + Luxury and environmental responsibility can go hand in hand when you choose to offset the carbon footprint of your superyacht adventures. + +
+
+
+ + + + +
+ + + +

Flexible Offsetting Solutions

+
+

+ With Puffin's carbon offsetting program, it's simple to mitigate the environmental impact of a yacht's use by supporting impactful international projects. Whether you want to offset a portion of a single trip, a season, or a yacht's full annual emissions, Puffin gives you the flexibility to offset as much or as little as you like. +

+
+
+ + + +
+ + + +

Your Values, Your Choice

+
+

+ Our portfolios are designed to resonate with the values of our most environmentally-conscious clients, ensuring contributions align with their passion for a better planet. Our science-based, verified carbon offsetting projects have a real and ongoing impact in the fight against climate change. +

+
+
+
+ + +
+
+ + + + + Empower Your Yacht Business with In-House Offsetting + +
+ + Our offsetting tool is not only perfect for charter guests and yacht owners, it can also be used by yacht management companies and brokerage firms seeking to integrate sustainability into the entirety of their operations. Use Puffin to offer clients carbon-neutral charter options or manage the environmental footprint of your fleet. Showcase your commitment to eco-conscious luxury while adding value to your services and elevating your brand. + +
+
+ + + + Ready to Make a Difference? + + + Join the growing community of environmentally conscious yacht owners and operators who are leading the way in maritime sustainability. + + + + Calculate Your Impact + + + Learn More + + + +
+ ); +} diff --git a/project/src/components/HowItWorks.tsx b/project/src/components/HowItWorks.tsx new file mode 100644 index 0000000..67a69bd --- /dev/null +++ b/project/src/components/HowItWorks.tsx @@ -0,0 +1,90 @@ +import React from 'react'; +import { Leaf, Anchor, Calculator, Globe, BarChart } from 'lucide-react'; + +interface Props { + onNavigate?: (page: 'home' | 'calculator' | 'how-it-works' | 'about' | 'contact') => void; +} + +export function HowItWorks({ onNavigate }: Props) { + const handleOffsetClick = () => { + onNavigate?.('calculator'); + setTimeout(() => { + window.scrollTo({ top: 0, behavior: 'smooth' }); + }, 0); + }; + + return ( +
+
+
+ + +
+

How It Works

+
+ +
+
+
+ +

1. Calculate Your Impact

+
+
+

+ Enter your vessel's fuel usage or nautical miles travelled to calculate how many tons of CO2 have been produced. + Choose between calculating emissions for specific trips or annual operations to get a precise understanding of your environmental impact. +

+
+
+ +
+
+ +

2. Select Your Offset Project

+
+
+

+ Choose the percentage of CO2 production you would like to offset via our curated carbon offset portfolio. Each project is thoroughly vetted and monitored to ensure your contribution creates real, measurable impact in reducing global carbon emissions. Alternatively, contact us direct to design a bespoke offsetting product specifically tailored to your needs, including tax-deductible offsets for US customers. +

+
+
+ +
+
+ +

3. Track Your Impact

+
+
+

+ Sign up to stay connected to your environmental impact through: +

+
    +
  • Regular project updates and progress reports
  • +
  • Detailed emissions reduction tracking
  • +
  • Impact certificates for your offset contributions
  • +
  • Transparent project performance metrics
  • +
+

+ Monitor your contribution to global sustainability efforts and share your commitment to environmental stewardship with others in the yachting community. +

+
+
+ +
+

Ready to Make a Difference?

+
+

+ Start your carbon offsetting journey today and join the growing community of environmentally conscious yacht owners who are leading the way in maritime sustainability. +

+
+ +
+
+
+ ); +} \ No newline at end of file diff --git a/project/src/components/OffsetOrder.tsx b/project/src/components/OffsetOrder.tsx new file mode 100644 index 0000000..8c64fce --- /dev/null +++ b/project/src/components/OffsetOrder.tsx @@ -0,0 +1,567 @@ +import React, { useState, useEffect } from 'react'; +import { Check, AlertCircle, ArrowLeft, Loader2, Globe2, TreePine, Waves, Factory, Wind, X } from 'lucide-react'; +import { motion } from 'framer-motion'; +import { createOffsetOrder, getPortfolios } from '../api/wrenClient'; +import type { CurrencyCode, OffsetOrder as OffsetOrderType, Portfolio, OffsetProject } from '../types'; +import { currencies, formatCurrency, getCurrencyByCode } from '../utils/currencies'; +import { config } from '../utils/config'; +import { sendFormspreeEmail } from '../utils/email'; + +interface Props { + tons: number; + monetaryAmount?: number; + onBack: () => void; + calculatorType: 'trip' | 'annual'; +} + +interface ProjectTypeIconProps { + project: OffsetProject; +} + +const ProjectTypeIcon = ({ project }: ProjectTypeIconProps) => { + // Safely check if project and type exist + if (!project || !project.type) { + return ; + } + + const type = project.type.toLowerCase(); + + switch (type) { + case 'direct air capture': + return ; + case 'blue carbon': + return ; + case 'renewable energy': + return ; + case 'forestry': + return ; + default: + return ; + } +}; + +export function OffsetOrder({ tons, monetaryAmount, onBack, calculatorType }: Props) { + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const [success, setSuccess] = useState(false); + const [order, setOrder] = useState(null); + const [currency, setCurrency] = useState('USD'); + const [portfolio, setPortfolio] = useState(null); + const [loadingPortfolio, setLoadingPortfolio] = useState(true); + const [selectedProject, setSelectedProject] = useState(null); + const [formData, setFormData] = useState({ + name: '', + email: '', + phone: '', + company: '', + message: `I would like to offset ${tons.toFixed(2)} tons of CO2 from my yacht's ${calculatorType} emissions.` + }); + + useEffect(() => { + if (!config.wrenApiKey) { + setError('Carbon offset service is currently unavailable. Please use our contact form to request offsetting.'); + setLoadingPortfolio(false); + return; + } + fetchPortfolio(); + }, []); + + const fetchPortfolio = async () => { + try { + const allPortfolios = await getPortfolios(); + + // Check if portfolios were returned + if (!allPortfolios || allPortfolios.length === 0) { + throw new Error('No portfolios available'); + } + + // Only get the puffin portfolio, no selection allowed + const puffinPortfolio = allPortfolios.find(p => + p.name.toLowerCase().includes('puffin') || + p.name.toLowerCase().includes('maritime') + ); + + if (puffinPortfolio) { + console.log('[OffsetOrder] Found Puffin portfolio with ID:', puffinPortfolio.id); + setPortfolio(puffinPortfolio); + } else { + // Default to first portfolio if no puffin portfolio found + console.log('[OffsetOrder] No Puffin portfolio found, using first available portfolio with ID:', allPortfolios[0].id); + setPortfolio(allPortfolios[0]); + } + } catch (err) { + setError('Failed to fetch portfolio information. Please try again.'); + } finally { + setLoadingPortfolio(false); + } + }; + + const handleOffsetOrder = async () => { + if (!portfolio) return; + + setLoading(true); + setError(null); + + try { + const newOrder = await createOffsetOrder(portfolio.id, tons); + setOrder(newOrder); + setSuccess(true); + } catch (err) { + setError('Failed to create offset order. Please try again.'); + } finally { + setLoading(false); + } + }; + + const renderPortfolioPrice = (portfolio: Portfolio) => { + try { + // Get the price per ton from the portfolio + const pricePerTon = portfolio.pricePerTon || 18; // Default based on Wren Climate Fund average + const targetCurrency = getCurrencyByCode(currency); + return formatCurrency(pricePerTon, targetCurrency); + } catch (err) { + console.error('Error formatting portfolio price:', err); + return formatCurrency(18, currencies.USD); // Updated fallback + } + }; + + // Calculate offset cost using the portfolio price + const offsetCost = monetaryAmount || (portfolio ? tons * (portfolio.pricePerTon || 18) : 0); + + // Completely simplified project selection handler + const handleProjectClick = (project: OffsetProject, e: React.MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + console.log('Opening project details for:', project.name); + setSelectedProject(project); + }; + + // Simple lightbox close handler + const handleCloseLightbox = () => { + console.log('Closing lightbox'); + setSelectedProject(null); + }; + + return ( + + + + Back to Calculator + + + +

+ Offset Your Impact +

+

+ You're about to offset {tons.toFixed(2)} tons of CO₂ +

+
+ + {error && !config.wrenApiKey ? ( +
+
+

+ Contact Us for Offsetting +

+

+ Our automated offsetting service is temporarily unavailable. Please fill out the form below and our team will help you offset your emissions. +

+
{ + e.preventDefault(); + setLoading(true); + try { + await sendFormspreeEmail(formData, 'offset'); + setSuccess(true); + } catch (err) { + setError('Failed to send request. Please try again.'); + } finally { + setLoading(false); + } + }} className="space-y-6"> +
+ + setFormData(prev => ({ ...prev, name: e.target.value }))} + className="w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" + /> +
+
+ + setFormData(prev => ({ ...prev, email: e.target.value }))} + className="w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" + /> +
+
+ + setFormData(prev => ({ ...prev, phone: e.target.value }))} + className="w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" + /> +
+
+ + setFormData(prev => ({ ...prev, company: e.target.value }))} + className="w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" + /> +
+
+ +
+
+

Contact Us

+

+ Ready to start your sustainability journey? Get in touch with our team today. +

+
+ +
+
+ + +
+ {submitted && ( +
+

+ Thank you for your message. Your email client will open shortly. +

+
+ )} + + {error && ( +
+

{error}

+
+ )} + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +

+ * Required fields +

+
+
+
+

*6KUs5R3SHqDDcl+|^tisca12S)~e$yA< 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 gNO%so>l#6`jqVWW`*TuX3<3Dk&dsC$09w2 y̾׼I]jmY?㿟h}S|OE \ No newline at end of file diff --git a/project/.git_disabled/objects/5d/583cb120323273d8f8b1457b9bbeefd01f2b63 b/project/.git_disabled/objects/5d/583cb120323273d8f8b1457b9bbeefd01f2b63 new file mode 100644 index 0000000000000000000000000000000000000000..e0e4a5c8f6c2af86f4254147975d89adcbd98e1a GIT binary patch literal 3459 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 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/5e/4f7cb2f76ef5492540c60867eb86fae557e0ab b/project/.git_disabled/objects/5e/4f7cb2f76ef5492540c60867eb86fae557e0ab new file mode 100644 index 0000000000000000000000000000000000000000..fd37c2b440fe878d715e9c8b21c5dfb19a8fc6f4 GIT binary patch literal 121 zcmV-<0EYi~0ZYosPf{>6GGz$!3~`MQ4|4U3cMR~15ApYQ^|LiLO*SwxO|jH9O-V}9 zH8C(r(zP&6Ow={BOfs-cNi;Auw@BdvYjpDu@(m6Ma&?V&_V){MbPkF4bg`|-PR}pP bOR7Xy;_v1b>V+3RTIFjymV5_BV+9{A2|GRBj z{2+4LcHYd}dGEDWriSaw;n@bAmqu4`am7X#Md8tHWP`pc0Jd1C4?rEH68j@SV>IE8 zDqtA{5Tw zG!!?>%?>?r7ylWwLhlEjjI}5-)`xo&Gy%2f5x9qqQDKc9$N*|yD}>e%1S>d6y@IWz z)&v5FSyn2=(JYHgjV_aR96y_}Qm>@mv8aAol}OG0UZy(}rNAW*iZYxDl3Z4@sIn@9 zccpK+!)~UfwaQQtTl+A#Nhep(c@InD@=DxV_U57H(O)gVH%?m0BhR`q>tr492&5h4 zD!8m(BZ}-y|1g+D^na(AE=M`;OaCXyx&=C#qu}Ie5J(~CMw!Bo<+K| literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/61/81eeeb0161de3e5bd640641d3ae999a7e99608 b/project/.git_disabled/objects/61/81eeeb0161de3e5bd640641d3ae999a7e99608 new file mode 100644 index 0000000000000000000000000000000000000000..76003b37e050555606f53c3705d5da9655585610 GIT binary patch literal 4718 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 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/63/3e369d83b85a1ceb4de0903ac3efa1c9f90f2a b/project/.git_disabled/objects/63/3e369d83b85a1ceb4de0903ac3efa1c9f90f2a new file mode 100644 index 0000000000000000000000000000000000000000..6f40a9b39c62a065e3f0542d1817fb817e9c75f4 GIT binary patch literal 2163 zcmV-(2#oi50p(e3ZzH!6?&tdzQ=^FF#4B0yYaPkgz;T)ax%QBA3lu@nP`g}-Iqp&+ zxt3K`|GhKhzH;T@dNGOy^#@BkrW$^i{a^nu(Fdt(S2BEB@r{ON%_VLgjF$ za*GBHk74%;AXd4t@Lh`1zhsu3fZ>)@p@;8bUVCFmn*nl`@f#QnPTZ5zsd-$JN1Df2 zWowpi8$!m7VN16IU*8{p-pDt_A`{l~#3}Hudg^G9GHH0{C3Ks}m;M$1{pVlcS}X0g z-_y7D=9#e?dBMLRFQmL3(tngyYq(;0BDq%#-NMW^k70UoZ}rc0FlD*w;ezY zt7wkgzGEM05{(>JT5TZb8}QNwZzX4j1FFe2FmQ}Ke_%e3x8P#lGzvfEv;x=h9)#0=bd7|ELi}OdB=7 z<;W9g2e6b(Ot@s*M%;tQxGL-r)1eL=S=dU068c096Ts7gH1NbA89cF<5}w>m3{Ugv z;lFp>(xd?`?oZ(C^z^h0(H>%E;}rr^>n7^>x(_x|L14bKJmxC(2!PjstV77jR zg@z|!l?x)2D@C?=gJ)UT)rDiY__kW|Nhk!aHe;2{%>)<&_<^=yH!*E<1bt4Uj)+e+e6%++Y2BqD;|UTU_Det&uj`2P9P zZ57(Tn%Q_YspKNJb&nbHYB*e;p0;EImC8)G|>dIn<6Yah!WF+?KWc0%d(`kFm* z_^IHyjx7eT1y)%Xrc(QI3ES|K#)C^n4HFP_P%>ry_lI)@JEa*zipB)A;E2o*GMV`FnPd z7lXiH@4%JjDU~H5t-29;s{XJpQmo)Uup>O`jt;)ps%fqqRHnj8J#u~1(5}$@0~`+N zh+WVj1rEGD8?!!xvNm|Ts{e<{C*4g5PDwyxzxWd(Io8-buwYo6ngiC1aaI)E$d zS_g4M>J{MQ`hwv%?XZtT`5)#hji+|cQ$+klej*0WOJ0}#2OCnENuM389z4P&TW|?0 zn@MaY=SS2h9(AxFRs7x`xhC^1S;iAlV8>H8WvC_rU~(X$)I!3i9W@YdV<$C?|4dMq z9PGu5<93Z*C`s$5y+}%xdvB2;&#k$RdcLEiqV9P_d#SbW{;Aw|@m0F{r~bZH`fZ{V zZ|}Y{#wK}MWlt+vQWY2GhHm`0+@AUw0=k?_o72nDyTALIXHEVyyPOJc#bB0&H@t|G{O zS`ZGr#(@MsKzVjC#DU}SYs0}>;@xe97iNx?{Idy6&(7iE@(Ql;)*QO(WeP<(R(eTz z-1*^c5WbHC$a64-OytY1>?I@r#!u-#xLu%@fZ+tK7ey)p zm43ZNe;ho!9EP~u`0*jeskfQ$&if4hr}~E5*|>6Nw>db}K`aVuRUUZOw`u;K5f+<7 z7`DLC?tDkndF*{cZ#2Hx{ZKYh{R?h6@~LJUcuT2o@U9p2b2RL`&f2#Vt66SvP@{61 zjwx;6cm5ZpcDGlmg(K;K!T}f#{ivgl3vHB+a%CgDy{ZjQ1~jJj&Hot?w75g8$ z_H{i9P$YSTH)a9 zo~9=_BMua&);tt{j3)QB9ME_i%8U)|$J4o+pt|)?f5qYW{@<*;_KIweOLhPN literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/64/31b79510c6b090e799173b4fd5c8290c2f69bc b/project/.git_disabled/objects/64/31b79510c6b090e799173b4fd5c8290c2f69bc new file mode 100644 index 0000000000000000000000000000000000000000..ce2fc432dcb6001f3c13108ac9fc00f1cec18318 GIT binary patch literal 940 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 bPYM^<;}tFohdx@Ex?|duQ%CLp!8m+O_`OB; literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/67/5d0e41dc652dd00c3f1276fe3133155663f869 b/project/.git_disabled/objects/67/5d0e41dc652dd00c3f1276fe3133155663f869 new file mode 100644 index 0000000000000000000000000000000000000000..53770abafe37ecf2c80792d1f49d569db5c2cf21 GIT binary patch literal 304 zcmV-00nh$;0V^p=O;s>9G-WU}FfcPQQE)6M&?_mfVE7Z%@wxwCRCBibX4h*S&-hMH zd%yr*I{{ykDB(=DNLHhG1cfK2?6aTfmcdqO8(Tfv3 z_6cf4No7H5G0+T#k8jN*GLKI*IOB7`Zqt#uQ$H$uNkNP#Ey>I&W)PNDJjB<)-5#{G zA#B^7HU^vT-i%N)$}&q*byM@o^in_unQW-j`^&v|)(SDdrApyuuU9bN2?hYr;)CC; CB9=A) literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/67/a69bdfd351bd409a3a09515bc37cabc849b685 b/project/.git_disabled/objects/67/a69bdfd351bd409a3a09515bc37cabc849b685 new file mode 100644 index 0000000000000000000000000000000000000000..df6c0be2593c465d97e76daf8219500a32debc60 GIT binary patch literal 1560 zcmV+z2Iu*B0o7OEZ`(Ey-gEwnLtc^sQGT~;6DLKN6inmWUZ|mKV!P7WC;>mB zt81D#U0m+WcXs$Loom$CJZfj@S2ukX{}l86``*?xzi2~xlw!)A4UtM^3&U?mqrmaT z==>91(SC9-aj!*wxZjWT(PjD_X76>y2ynk|Ml{v7aMQz(duPmhhe)EUFX;GyhFl^U z&Lah(axRv8H1E9459l~O&M$Z1-g9icrTw(ipwJV_jSAt7s`zTRQg_)jJHInj-DRqY zj_O%V(WBGi#d!1YmZ90j37qgtDWK<1dzFfJzc4YXDJ~koh(QIL( zBUfSZCDf>Tc9)%rt0z5A@FlqFN1rwxduE$GK0e;1p#S2l`?J$I9W7#&^bcAjZdndZ z!(T8Q93fdNKZEjQ%Y!6t1UO|wXA0`VQM2sX@v($|zIzQA(W^)aNQ0yDWZ|!K{y;|C zBuFKC2^a)!q1mh7aGXs`SRv zR&{y;)bu^UwBCxbLu*&iu41yU{Jl)5pGj~N4uQ>Hpi#qyngD?!=gERr8tO!qHXJB= zHDO~IaB;K{Ehgv{Rm#rr)&_DTx_NsFU70YL&Q@YCnw*QnjqPtrCr2A{oXWC=KW)dv zl@0+)hIkM~s5#doonwCuJ;fVkZG)&>&0dM(Av8y0j-;>~7Q?MT%7+Mb6Nd;Yos;cE zduJ;U9`+D@lw>`w!BO4M>L!tnIv`(*JhgxSJ+@P4+N%AQxcnQqK0TycHXw5g>b7r4 zSNVu{-xIhybj1?nVJ`}wFx`T)g=FfLfCWum0|_+x6AO-9>V-7Xii8?@1B?Okx$;Bw z*6vqnxFct@JEWH?F9qb10n&gXCI{DyOEUwlqL>1NR5`0LMzq{v8ye3oB+-U}>mi5+ z?>VN32&Un~98kpy>(tP22UXG*KY>kx=`rRJfVhimNtr`>VbIMihyk+B4oEft%)x3Z zG}sa4kOc=lw&2T@`0)Ry+j0WzHM6A4-=dM69nyQRFqVDzKAXs`z^JJOQ&8KPpv?kf zEzTd*T#zJjy_)!p4lyfq$f-7%?G}?pf6(Y8+34$cJjUeim&|PH zB2i1o2!ul&gYZm<90o@)SPKPv}u(kxQcF=e*#|~GHx3_|ASGW{uXET(6HrcplR@hu8V6%#SoDEGvL_nOMu@S5A-J z{Q8bnAu|=dR?uffKkLzm0fL;LZ#CMl7#hX<>OR!*Wo_n>cehclxCyFjjW5;VBc#Z( z#8!auLa2|ftJT;$T>Qq6fv!~O1MAgBF9GU9t{oauDlNIGm2yu@M}ilFgNqNT{S+I( zb)~$HxMtEi*uDk_U^JR6M$|QkJDV=OSNB`@;Q89Ro(kdKl2CyGysdb9i;-)l+(6Iz z_$b|k{l&uKN3jqx<1Ef*xkE<{yS;tZ>G!rBM0&#CTRJ#uPqQ)^tY*`$s;j%ja*W00 Kdj1c`Izu$PbrKo? literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/6b/6787dcd124b08cbe754dca375d4780fe93829d b/project/.git_disabled/objects/6b/6787dcd124b08cbe754dca375d4780fe93829d new file mode 100644 index 0000000000000000000000000000000000000000..c630c97531c3af62c166b90849299a247af1b6ed GIT binary patch literal 55 zcmV-70LcG%0ZYosPf{?pWT@s+P*5sK%`M1DEJ;7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A4AT41y0_SY*PXs(@AHuc!LgNpv&>yVX# z?Pe(VyLom!>xK6o{x7o=XNTDoeVd&MRaF3tgv9hz-5g--0bQ7%$MC8qjMLJ88toKJ%3{iLK&RpO7X{)ZJ^&~pZ6`XtZRhPXNOdZgD$;HJ;9@ko~5bN!r zC4GM%yC6^E{Yl*B3~7+)D=1CM$xLQ2lRU%Q)&Kh9JjcZr#{4YInRjpWLKGAiB{O{b z)2?S5dwf}i)m6WgC1&44lGa8*?J7yk%qa&39+G8_>wPL-gq$qd-MIBXzd}sY*(>Ee zFxAD-$bcjUpm#qkGG&cbNvK}>VBZ~2|39W%r{?cQR}2mp`G4OSZbrVDXPFzN#(nwg zPW4UaexNJN%TGy#gbuH5p-Yx)O#I9`oBx{vX5QNH-D@^fby;RfD$KPd#SDFGZf{dF z>AGVZGWl4?CV4^4&ASwZ3X~T@v?%i C9n1Xy literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/6e/bd2527cdce2b15bd6cc270a499f9d52ffa9af5 b/project/.git_disabled/objects/6e/bd2527cdce2b15bd6cc270a499f9d52ffa9af5 new file mode 100644 index 0000000..a462acb --- /dev/null +++ b/project/.git_disabled/objects/6e/bd2527cdce2b15bd6cc270a499f9d52ffa9af5 @@ -0,0 +1,2 @@ +xM +0@a9EL&/!& m#< ܼuE:y!R*ylE^& @*b5.XrHx hy]?HD_o |}9d۸i]4>& N_>B \ No newline at end of file diff --git a/project/.git_disabled/objects/6f/ddb9b73aa728fcbed47d4700059f7f994eea64 b/project/.git_disabled/objects/6f/ddb9b73aa728fcbed47d4700059f7f994eea64 new file mode 100644 index 0000000000000000000000000000000000000000..cd68f21ca9d1242f7f78cce7bc532e98c7749cf8 GIT binary patch literal 420 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 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/77/3a9fd182a19dcee76d0fbd38c77130512c6789 b/project/.git_disabled/objects/77/3a9fd182a19dcee76d0fbd38c77130512c6789 new file mode 100644 index 0000000000000000000000000000000000000000..6d6c4574caf399a4bd0d3a916fd93495301b9993 GIT binary patch literal 1316 zcmV+<1>5>~0nJuTZ{s!)?ODHK03VtKVtYR>+WZS%LW6w)+)AMqmDzJ$DIA?Tosor2T=5;2?(Fr zsGoeQd1qop4_@1UI1J%;IyBA(v(#)Zsb0hKq1Esv>g0CQ##c+M|Wl zp04>rZ*}dOjkYn%-i=UQh^nrs)Qz^KwuRB*BFpo9r9ze2 zWUE7YB0uIG1O7PoiP>EmR6v%H)vA7@u7QhMZ;hDGXn$X|x0e7$jgeZ83e z-M)0Ehi%fzhY{Vi7BtXk{s0PrPhi9;1RimSNe}?aD_1;gPaU|z%#JR&S4%5RyaU|s z0;OzYnW=4HVt3ysZqvA+&xN(1H{#aj2|OzSA?=)hPQW7P&6Ba;$)ivoG~u-Gdjj3K z`pShUEX7E9!1-ruf{BT%=^*gs^hA6}3C~{Sps){7Z-jG;#b=7zZ;VaE<*_~bIW;zSU)HYnOM z7L7yp4 zx(gK0ShM7+SVzEyqHZz26nCzR?yoyR%yWd9VaRgJw>{$Z{DSTSDxTdeW>-_G?FSsd z6=AKc0_124naXg23eRpzJQT)s*)IXk8mzGe)Kbb90zi^Qf^iLkRH94Amfz-!B{TGd z5&VJa__{p6!1YDG(VngefYj{7HG5f*rjNC8z86OerKvO?U^>4)@+P#UqoSeL+s8T< zWBE9iy+gHCrdF$3j~j8GBnm)zlSz)+(lF3}*!E+rww%8lA9#Cjk)Fj?I^?M;w2$x` zn3x84EeN63m^5znXK21#MTM_$qhnmJ8WVh4Ie3`II5}Vm2|`AYdTUDUnZQd8LZ@M^ zoho~rdp(yv1rr*^)O8yABG$M~*&@qFVo&YXcxR=DugV*45H|QwVd!3p*|~HGM>s@p z`)E>L)5f(hLI?pGrmd^nji$ACn{>yun9~bK8PON@tSLYY$wX!* zi4o}xucFbn@P-XXVN;{<+K^!uDtWNNQDP>bOhb3dOPIZsoQsZd%}AA>);Zd5>YO!X zYUNU7G+$iU;fm5MYh9v)0|l6yFp54YH_6VIR6gfXPv!u6L$?!fU>VTl_XH#bbO8ex zjx56yCq1Hg4OJf3&S}fucR^K*O}H43cMvvA_*gYYvWXe>Ps>~H%2ps2R>_NJKo5AM zxi)q>CQl%C^A+0|a>#nWm>@cIlVap`!559e?DD7G$*^EY2PI;h`9|{+E|wqF?VM*^ aG+n&vM$Es91sMGJ=q5t@QT7*J;qbqpXN8Xd literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/77/4ed9cdaf05d0ef484fe96b619b563c72f69b65 b/project/.git_disabled/objects/77/4ed9cdaf05d0ef484fe96b619b563c72f69b65 new file mode 100644 index 0000000000000000000000000000000000000000..af50ca57cff202641186c3333d4faa775f67d38d GIT binary patch literal 896 zcmV-`1AqK@0nJuzZ_`K+zR&!M5vdg5Y@D`mAfbMULV3~ArfP!V15&iLC-zqB-DP*3 zIuP!+GrLY2J1s{~25;a^JT(gLt{Xe1MGnsZr0s^pyK!A@gzCRvFfRLVr5ta}l*!mS7A zN;$~5!PF_Ugt;!E4iErl({Qle?SOai_NrAH76Xf))aCEQpG7t3-k|` z4uGHyUoeNjDp#}=-BP0kM@S`FFfNeyUubQUv4*o z(Yh2}iJR|#8uAu|x5_R2dN9l~7>&;-P$0|D*mg3QwdgFtn~EyqG6!C=e4QSjSRX$8 z^9VjYesF15bgq?_`RY>p3-eXZ=PRD7m0jcy_tqTqJZo^Ya5%`CQ2ZjxvRM-Xj6AsU zNJ(dufcv_-Agm&fwlhpxVoQ1dR>fhOQi?a4@lXhL6^{)k=D;Ih;)*Tp-4##J6)LmP ze|7hPLi0WOnkjYozLOH-dc241{%W=^fwfK*b@CE-0z~?t)knp-}2=y z7OxBH<>@r~7>_FI!DX`;{f(%p?)d_v_cVs$VNP{LLOT`rb{?OojL)g7#}jIA70kg)2M2T=(zPS|?cR5wi0bsJQ^m6Y literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/7b/be5062e9bb89ec7f2d1dabd54974f02e9b3be4 b/project/.git_disabled/objects/7b/be5062e9bb89ec7f2d1dabd54974f02e9b3be4 new file mode 100644 index 0000000000000000000000000000000000000000..9d31042427ecc08d1cace07b500badafa0da221a GIT binary patch literal 893 zcmV-@1A_c`0i9KCkJ>m8zR&p;Qwd!_N0U`Qvd3+!U6A&qE{NTJy0(i+97s#-oNZt^ zn*V+?wqsHWwYoz{U}s*Qd7hccYAaXp=IZL|m$Is*GH?PW*!F13OhW^Ok`=^B8t&rj zC@O{Fs$dz1NyWN!Gu#5`f0t-5f|Zn8&V&V(NuiB{vfyj}0%J%&|MmH!e*5XS zxBmBI;{Wtg!mYU3Dbevs4A;hG8C*vf;1p6-%vdnD64?=^kLcLwOwbU_vBsKW#A8@y zV)zEJEDFs{jEGO5cdIWvGc7qoEFwR)Cscw6cC~m*EQCVBcs%YzMJs?CSP~3O;{@!T z2u(uzH1HbcyP_xs%xw0h^%%j@9bv)$-eI+9*7aJV>}`GmhRK)FgVnoh7Fh~Lt*h0g ziRL7GxU@|G-?01#X`oheU*GrbBJL*u+8~H(Pi6VCx^-e}MH(s}K@5DtWbN*p* zPbDKa*e?Fzp!t>Py=+5I1`SF9a41DC56M<$jOHQPC|+Q~ki1(T(?^j(7#*r|iv6l< z#r^#Jw_cs&PAE11oeKY>Q~7kZc>g$GOeW8_vxld5w@=UacZex|`MQ>Su{y@r0BH)L zGZ91Rsk85FI(?i3*ZumRl~mT1e0`59-=j2k7$QWW^L>svFAT;FoO5*WjXKvMH8G4| zqmH(`w(%9$sFuc&19o5~4i`7sroY@6Q|nQhQhLj3Qp&VQdnbpdSq^;|fQp-q%yA9O zXOBwC0AivE8{_p8&UlOttgg4EQ#<{lr3lVw`!36PZ7y2*fK8jq zZIwSCXAg;6)Mat(pVKBuLe0=x13ZVlbb-@=_W!ILSNcyEPg}siVQSo51C#~yU$u%P z^6Maw=e8tQN~$}0HMMF5W1^4tgF|38N*+M)15C)J9~=|=&#s>-4mHogNTBIK73~`; z_A&5DaEncnC2%8T=&%txE$aWVQj9t3}@NKLY`#9WD%GcauecFIXrn TrWS*%!Xl=^nyC2~y3B}LP}R5F literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/7b/e9fc3722215175a1ca19a7907681291f2ebbe9 b/project/.git_disabled/objects/7b/e9fc3722215175a1ca19a7907681291f2ebbe9 new file mode 100644 index 0000000..1dfdffb --- /dev/null +++ b/project/.git_disabled/objects/7b/e9fc3722215175a1ca19a7907681291f2ebbe9 @@ -0,0 +1,2 @@ +xK +0FaYEܼo@ 4H˷'gɭeHil“טd y֦xbT10LPNӆCȈ%KHb ֗Pi϶GC^'\z[WIlPwLHNԶA.C \ No newline at end of file diff --git a/project/.git_disabled/objects/7c/12aefe3047ef4f821042cbd864c09426ac8f7a b/project/.git_disabled/objects/7c/12aefe3047ef4f821042cbd864c09426ac8f7a new file mode 100644 index 0000000000000000000000000000000000000000..a9660a71e54e297cab5334826c2b39dc14581743 GIT binary patch literal 540 zcmV+%0^|L70gY2lkJB&^<-EUQv|Wj>c9W%DfwU*IEaCtN0Y{|BO{R$}$79Bml0ui? zj_vG6+T8<@Y{fI<@$-AnOG8UI%U>^^c;pQ-{5gW~8SMov%-`hs1;7L@8)a*(KnNVM zq(oe_O3DVX7i6mpe6F?ap(MM~b?P%TEv#x043)|>oOy$(EJ?*ilsEX_()HW+_=xB!AQe1&D1{i;K=p}5R5vNI>Z(rU5QzzOE8b@6tddP0f6AdK1Es}t6(y>lc2HBxH z*NNFQ1&<{nZ^T#LqYUcb_5b?#+7BQ#Z2MT4peW=}`XF3Ad$fn(P#gA~&!rm(U;n6W(`Htr#PNA{_}ApD2#pFXAw z?8A%>d<@C#?0Y#N+K{dN?24Cxhfcu?W-R_0bNjG@A* e8ex$y9%?empXWK8=dZ$;hjCDQee@4^9#_1-?F%RX literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/7f/1b905d0e9147e236fee0e24cc1188bfe8b720e b/project/.git_disabled/objects/7f/1b905d0e9147e236fee0e24cc1188bfe8b720e new file mode 100644 index 0000000000000000000000000000000000000000..06396678fd9b29e26e536e9e1250fdf455424cd5 GIT binary patch literal 876 zcmV-y1C#uC0V^p=O;s>7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A4AT41y0_SY*PXs(@AHuc!LgNpv&>yVX# z?Pe(VyLom!>xK6o{x7o=XNTDoeVd&MRaF3tgv9hz-5g--0bQ7%#}Ix=Z`RT07oU_E zTFg?}=JHB+t^Hk8#SnF~+bW#G?FHt1jPuHSYqd}0CI8v-!U%VCJn2-@Rr-RhMO!q{3WVQq0h|=Jqx< zlde0qA(M}FY?2q$+`O9+NhLI9G-WU}FfcPQQE)6M&?_mfUKTf6RLH8V_HpLBTnABb%wsl_D>(w{fE^W7+&_^;)?b6u~GUYzK$ zPf#ODDhpDJfo3rLoUs2N!+}lx8t*0N&HP+2^`Vm4J%|ydC7C(J48pRChxi(}+k=)i zgl)Ui#$fZ^n-OY8S!PM9ZfahcUJA${lMQuxf4TS0S|R4QR4Lr-^$O-Y!2qQpfU~gM Bl|BFf literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/81/036a412fcfbba8372f7a419b7633081788070c b/project/.git_disabled/objects/81/036a412fcfbba8372f7a419b7633081788070c new file mode 100644 index 0000000000000000000000000000000000000000..f3c441e9057ee00245f1e6ca787dde2c54bc8eb9 GIT binary patch literal 303 zcmV+~0nq+<0V^p=O;s>9G-WU}FfcPQQE)6M&?_mfU&TP15BJcrtnnU|7Up_g1-%&_&C%+z$jpN&i8rhfnPfw{%({B9+vqTIyH zJg{4~UpsPH&rS2rtzCDrni(dpPddE(55%^T)Z!8b>Cc{MYi{xvtkoFHZE> zC#Vr6l?AEAKrj>!lFXc924PvnLwpU~?LkW$ z!nWOMW3c(|%?LH4EVCq4H#M(JF9l?f$%Z<;zubFgtq}8DsuXVadIj^HU;w8}f5|GJ Bo7DgS literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/81/9ff33f58502cc32f471ee2182c89afa1bee690 b/project/.git_disabled/objects/81/9ff33f58502cc32f471ee2182c89afa1bee690 new file mode 100644 index 0000000000000000000000000000000000000000..2a173533d0a428a4fc1802e2f5f17901c5782968 GIT binary patch literal 94 zcmV-k0HObQ0V^p=O;xZkU@$QN0)@Q%lvIYp7cRD*-}GhnpM6Q&buxEtzhF1%u%Q`P zzPu>, D^VH2IU]^mzfj) p1CsqRZ(gKjw4y İo7w8)2ʦEoUf$A3rn<njEMNlIZY[V=DI+5y #P+P!Y{jLjˆ6#xT[ C}C=|9*>=VfY#r3rw7}lbDXD3;b!?d>u<>M}Mn?KN!xlwJpT_)+ zjA)T}s&Ayu1DtOL{6_PQwMDl{$@f$?GR``3k(M-c=+Ko`c9h3+&&+Tiu2f+ydPOiw zcxiMko5u{`2(r<}XBY6xD(Q%=;4~co{{Y~gP*(%EbxGy8#nQB`KgVhcobwyoE5d5< z0;r{m5tGSm!jI&plb$Ha)1KPYmK&vFm|0NX`Cx>+lLE{Kk8dJyWJ~_2f_WEnbGQy$E|W- zZD%xUa?H0L${Pw~J7F~&^}}vLDYJX`b&=5Y5r!^+Y>#ojL6qtZb)2%NW%duz2k~O8 CcC{M- literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/83/9e956300509098a3a2583c926148a369f1647a b/project/.git_disabled/objects/83/9e956300509098a3a2583c926148a369f1647a new file mode 100644 index 0000000..f39ba29 --- /dev/null +++ b/project/.git_disabled/objects/83/9e956300509098a3a2583c926148a369f1647a @@ -0,0 +1,3 @@ +xTn@朧JI夑ChJj !uc +{ZQ^+OGI-y<~}co*3V?@uvj<J)jL6hD 0Q[M74x[C7pU`87IfNOMTQ\ǯP?O:`C~FWZRLCAbC)dM}Bjrem2RuY򂖌bA$[+aiM+ ֤6$Jh%|fhS%{ž+S[niLQ?K`$UpTSkxoJ|9譑bI5n$F+e +7ow&~9pJewvbwӺqu5&_`ZHmG$wZ`Zc+fM8xطCs(ax7B}O_ߌ?g?QƳd \ No newline at end of file diff --git a/project/.git_disabled/objects/83/f1b4e87e672b28fc615b8c71ddc2418f35b893 b/project/.git_disabled/objects/83/f1b4e87e672b28fc615b8c71ddc2418f35b893 new file mode 100644 index 0000000..42f1236 --- /dev/null +++ b/project/.git_disabled/objects/83/f1b4e87e672b28fc615b8c71ddc2418f35b893 @@ -0,0 +1,2 @@ +x-A +1 Faf5"m4RƁ^Af pO<1i2Z 18hٙ V4vFTFwۥ|hc2)X+}[ $`V/ \ No newline at end of file diff --git a/project/.git_disabled/objects/85/326a61aa56a88c4e733845583b6cf7ab0eb29c b/project/.git_disabled/objects/85/326a61aa56a88c4e733845583b6cf7ab0eb29c new file mode 100644 index 0000000000000000000000000000000000000000..508bcbbf42c45b852082f4a47ce4ce6277a8bbd0 GIT binary patch literal 876 zcmV-y1C#uC0V^p=O;s>7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A3#TlxPjwws!>{|aXbii$RgU7R)d9kNoe z-3&EC>;4(IzxQtva5{Y><-ioRHT_jkRRzFENK8-F%>l+9(1rPV4B?mbW*vQg@kxoH z#VnO=F0XXg+TTT03{f|`t->kXUSQ70IIq07R{KOg-ac&$QwMZka&a+|$F-I##Ckhu zN#EbcF36L3e-gJjLmDLd3QCi5GLsq1B+u}6^}oJ2&vCJZF+U4)=G_~;5Cz3W$qfJR zPndjpmWFyw&fJ|VRVy@o%d5UZ?J7yk%qa&39+G8_>wPL-gq$qd-MIBXzd}sY*(>Ee zFxAD-$bcjUpm#qkGG&cbNvK}>VBZ~2|39W%r{?cQR}2mp`G4OSZbrVDXPFzN#(nwg zPW4UaexNJN%TGy#gbuH5p-Yx)O#I9`oBx{vX5QNH-D@^fby;RfD$KPd#SDFGZf{dF z>AGVZGWl4?CV4^4&ASwZ3X}c2Cq5I C{=eM- literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/88/482edf1fd75a3f79f83ada8b008abf2b867075 b/project/.git_disabled/objects/88/482edf1fd75a3f79f83ada8b008abf2b867075 new file mode 100644 index 0000000000000000000000000000000000000000..62077def8d55aff60f7dfd429d1db9197bca46f0 GIT binary patch literal 3494 zcmV;X4O#Md0mWKdQ`<-u-e-PA&(ze|?1C^%l9_Rar3jD=y9rQSY9FZ7M#ybjK~{UE z7KUN?@B5w87qw)WWM?0Shs2gncc1(D&S~Fd>PBo2UJhRTC7sPxp+$V3s&Yd-ihcTU zR1~V%FrUxme=1q(1C@`{iGNnkRbEQ*B*ulBi5@TSy4&+*UZ>-6DfMYFlGyAF z$Bb2$D!(X-wurE-*FB1aj|oXCoo3~hc@E08tu1jV$8nWuL7bZ{$EpzHILmJ0U;g{-^!)Pe>HFi;VZg$!cw7@A9Sz0KhQN+j^HHqjNN6Q0h;@7@c0^o? zG#7d*g|4(J(m2DCJf6v+`1U}}W>uc*2XR?QDbBJu*J(cab^|0MStdm~*Qv@uxi6Bc z;Jr(k$%LK?H5Su!GTnr>;zWxiE^hF&kTZ1`XJTHc&mb(tSS4U)B=F9Xl*Sg=kG9d% zLRFKg(8R*rvJf#3ZjYh321kOWrTdMUtg5*J6?CsgM-l zVhTnxxb23}=}f9hZwNerBkJM-ikPH{jirQl*`KEeW{+LbUl+T7H$gNO{clWoMhmb2 zs(;Fdbt@LdqRM2%2ljja0s%9l)h#}yrI@8<2^PK)m-J-V+psAh-0L+fptaReewP+1 zpFt*CwMg@kTI@wKzY}}n9~Y-5Q3(a-lXU#hH!tbkx`2XClqF~C_%2Sf_$HIRb#oBK z)k5TQAvh0qah)rKEvG8@!pJOqS_7MoNocR%yC!`Ym3y?8!{(7eai=ThZ8=IY7NTQ5dLBX|a!*tZ9w zlsEvX-MBc@Bh99i@DZB20+apHe#ooYjV#!=%_H&mU9mG5i0{7__Q5X{n!NX~6h2bC zxW6~?REkLvCvse6tgI(v2~?N;5d{^OQIr%di$u;*QIOyZ3bP5k0&E#$MFBw>*;Nth zK%Y798)XeUYO{|>vThngrM1Og)G&dIP@-P)c*++(M2U&iyE)ODjP#the~53LuRF=L z3f#OZG8=7z@=aBs#&JBE5VQvEbJ`f1IBduV;xMl?BJJF&+H6SGm#U@N3YmgGL^D~I zs3~nG&H!i9QbO@mgU$JthJMxZnn$=AS71?XMPz zatac(&B?Gxn#s|hDcWzQ=n@*5Z9*AAIo z#A9iAa5X@TtK2jQdKzn!KV&I#m2Z~7m#A645lj*4hWi7H&5#I=7|j8c8QDZTXnh=_ z`XC47i9`p&i=3HBY1(jeoR5_-{Si68=?;vp=(DTLHh&JS8tqs27N;b)?j3*ONCGIO zJ-=ikW{phLf^p0R@wXvz6xj{2v(AQj5;6mVdHmw$S0Lt<>GekgiU~j)cEUou43BGFbR<2%)D~WL6|Ez}d@o$5 zLF;!N$<3I70c*{{az%M3HFdQ?sx;jLBZHur*K+-F%u0UY?T2~9JcSds`i{O0LqMu? zYL=;C2T�iLOYF)B7fZrCdw=1HjJanGCjfnHy)si#X-;BAB<|+wzJmohEr5+tDqH zC@1ViHR)cI$$X-xE}m+wcH6aHY0(cv;YkWIR6BV(HhfL{l0mKA8_Wj0MzeU{?|Tl0 z==spD*=~-^kV%YI>INA);tu&WwG4jrLhl8213aGy`vq2)H72(i2UD5cGBCPP=sm-& zsohLesZA?RBNy6<()0`i63xSyQ92$=G*X(jKzmZ!1IQv?iYVOm8vuXpI;G%IAQDLO=>-jx2VkD44w4`?z~t1un8O5!R|{VuFRt+7;16ill~ zzdhTQ(n)hWUklH3&xrP#rz}L-aEF?q_Nc{>+S+D7;}a%!)JNOOVrzjb)%K~$!mb#0 zB#O5TrYNV4CGF1IouPq=2)sdTC1 zwF6DXBWuhIiaSbh7*H8&WB!4Z;zvahM!u4!Ca@l$juvG#CnZJh1Y29F`Og;dL&=%U ztI-UYsr_FuNTy6!N}7-@O`uI_LB&dR6=!E|1b#e%x_69Aaf~^?qO$&}(I5LslogiM z6-2}CcaKY(KVe1)YvUFDhi}H#_-;NteX_OLpZ(|5@HvVJinx(%lO-#G^IV>RJ+8Rv zvNJ6%H>RuzOr;lI;Z%Zxu|Ma6TGgnTZSC_!=&izN$F_B=?+|D+(xS^KE^KsB0n9W! z#=H_UYM;qnG;U&mXjsX1zQiS#CQKu#O}=o2-}M#VBs7R!MtLSAg$WwBme3uqGs(^T z>t6a+X*C4_Bm#p|I5IcqG_iVIp z?Xdq;r&yEta5qDDRz@2`3@2MHNON27^#PQ&YY~kNS`(R!B3aY5aBZG?N3%IDmfUK5 zuyY;G`5}Ll*y@BsHe!{+h2Ej+1}3W|4^gRyldXNiZCbGF8OjFuT20r6 zU;(ylEkZjJVE+F{o^YQp2o#b&D^WnWB$C0D@Omz6Qp7MXW-Bv^3kSZ^mG>Hhd1`9Z zToyXTP=#;7+>LP^6I!4Nq{$3A`#D0mk68;hNE^I(h)V#vQ`+#8$K~$Hg!s+pb$A!g zwcRNu19<3*ov(?ZkD{S#B+dHG(4S)#Ta4*l9YM{a#z}&4Hq{3u;yaa&g7$}VW+-8e zLUv7>tAmT+?_=wb{n6*D4DQAgL{xS_*axW{>SS~^Qc3Bf$@Xc?WeevM$`3SbLJDal z9Z@prt-F#K&s3G`gK1n$=rXixNrMEd2Yzvl&%4&Sw{#%gl=@``&2}xJH;og#3d7sm zwrrlr$+zQ=a!pNmSV&G;i}+iC4r`uU{m-iXf^LYm4cEKQr>W$S8ApMY*B=8Bf{=7( z12*;7&>=6JYH+Z7OH8ot*+(#Ra~qf&iY6~^v3b|z-xTf9zV2S)Ut<;B=N{tDufHB? zb$oGZM}O;HA_v2|7&q^*3t_Z%=9N9Z{X6~W}kq14K zOACm=Sr{G*Xt;u$Ue$z<13x(mLre(V8#dM&n!O0m>xIJR{!U6$7D8fwR~?Ap_Ob{ zzYM3jWk7|yOVL)$6n@Q8&SgSBV6mP-t;P%7dK0#`S8tvT@CKK3K5_~0gXyo0 zsXql>0-^el0T1HqTfT0^e#Iqb``li5afwN3rTyf9t_b2uoaTOJP@m5jqC=-Ouv`|g z*SK8t$0R&_eNa_Fvx?mQ0*&UbUt*x+eB1bST@o%y-aSx>yRHknnB@kXeiF2#o&fGI U9r|oL=Z|SiPUEou0<4o7H@Rime*gdg literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/8b/439f9efa9eec5418bc2ac8905b14c8c13e882f b/project/.git_disabled/objects/8b/439f9efa9eec5418bc2ac8905b14c8c13e882f new file mode 100644 index 0000000000000000000000000000000000000000..754357a2ca061463756ac9006c18fc3c95d79126 GIT binary patch literal 85 zcmV-b0IL6Z0V^p=O;xZkWH2-^Ff%bxNX#sD&dE&8E72<{W)RF|-ml2xxyM^Z!o}M7 rk%UQxXB1Rjc~NQ}LSbx#%|-nHIdi3yL^5v?k zTlOu_ChZ>Euyw;R`m@&=jC*d{mpDu ztS9-D5278HRhw6(88)l4C9enasSDWzGh6<0HfwnMvIZ1;Y|h&Y9CcO|dDWN|hQs}A zmG58GygV;*UOMM%Z&n-_IbYX!Ik`EnrU2Yol4Xti@im6;F|&mpdQn$@caew9e8N~;mCXq&*UK@lzr^QdRq{5gZ=Nixb=m&OeN~lT zWs`R&tiQ`n&)8*^Piev=D<A#0GYFD6*v6{E*x@03MAZ$`(P4ic<^yyB^uiL@6So6W> z2M0TB|BTQC8~|719Ad9iy}ej;*jC?ESG+#Y8s6Wf@%Z0d!kZEHRZExU9=&Z?oGX0$Pd333U{_HCqk7u z3I&`umT5@+0l|Pka*U z-F{pxpuz3ONwr*M<&Ax?1l6-SM*Q%cT~+I1%8L9Q2lui{m|XVRhBz4-=~;fwr~RYd zTfy3R&CXvQNq=H_!)~(4qU|*p?puIc#+P~1z|=Rx9{}Jj=!aj%CFx7^Ax|PSEtnbB zZb)|g$twRhexp?^RG{MQe(zi;CJkf5>&qN=EN__PsTPWTU1pcCbfkEO?4sbL)vztA z)=-mG*}`EFCYsJ#^M97fksFzOM03#JN=w-=xW0}QitE} zu{Uq!@uk4}gCN>jb5l-~L6sPRo>K-!tA(s6%(@NDxytg^cZuY71crb`SUch12{Wf< zreUx!T*1z#YN#NAzXwd7_h4A?a^5c3>FFsuu*8A$uz8Mn-rH3(gw}E>LTC;^bume2slc~I zHShP{IQsN0dj>~r$}R%TFgOPb_WbEdZ%<*(pkSC!&F+Gk&6@}U$-&@Z#$j3v;|T_O zDlH~S%Pg-UD~7VfRiKMJj`Mg%kQ$6_ITF|;I**u4p$l0pxuM}7XAkGt9-ZGDyxnr{ zaHzqLXW?qWpjxU}U3aPpFrc1GN3bPkDdHqY|Xs1!tDc?lS- zXy2t`2rhCtv=UgrNiE!XBm+zo0#YMS7d06n#3AO) zh(fgfGoc6cq@&aki2PY=J28F5Yr>K=tU?Lu6_h9`Jx7Btc>Nkf5j^NI!I?*TePm<(R!>=|hkgz+^T0dEsTeo)2Q3Bx|lCmF)_rM;cp7}BYT zL&|}k+IPSL6L`z2nQ7u`tsz|7eoxpH6sX@(jLOA z+!a{*ZZ!ourVNgCF-B}FaA9cDKvGMNKBvK_K}0lMoU1z2dvgyN~KX7pyX%eg@P9l z1{3cl<8Gk!M5dO8FDi20E|FkySegS!PR|slX%~bKo3>hEj}=rPsYU%l6INKbmn&Wh zYN`y&6gdZ^Lx|AApvlL=Oe@ktb-eN&Yz?>=Aax~h^NJ9{;nU6+?YO!|Xjs9pr7>|% z@4nF^fePn*9=J4+z}2g2e|?N~TzgYkTDwa6izHJMR9 z9TaocEV5~JHMlO=YVepXv+Kdt;2}O;4Q7bvpx=>r$uIeiSRRRs5>7}~oNhJ@_@Cr0 z{QiSIhM&g=>{i-3##S_BT2<1x>ADug#B#$&U=3)M6ZYm{c!bO# zrXCEB@$~Sm-s4QcqYpe@x6p9vA%i*+%y+tx!Lf!5vSX7dvw~kUU}M<~Cg3vCk(5@M z*V)bB(ZK;*R8U_h_SqMBwj2*0X;gF~mGKl0Pf(ZMY;N(Pmbkt4rE>#2&Qo&JsX z6|>2$&d8Mz&to3+@GdZ_Fb;e^)-ZPB6U=olbP_ANc-n%_JvIen(}dxXonj9?S{%9P z5g;E!DrN}s2IC4LZNwK3ckFbgGK}m$C^CGG_;^BDKlyL8zc{i(N2_QfNTppJoail# z6_ILZ*|=IGpfMr!wut(F{`pU5^OfG)&=1PO5N{)_BKyN1*r(7>e$Wgr-wETOC`X=vL7F)4{^D3;jy_}mm~vvHKT16jZ}bwpK$sy1 z2_BQM_QKJz`mMh}f7TVui-Videtp*%E;p1}%88VmH-V zyA}Aeb`mGS;S5)(vx%jv^3{60%-hqA$|4{&jVM>95#&Jn*=4Bhh;&e3-@D$ceJaxs zas8oBz{xCDPhwG9OFLJD90`Bljz~L)_B~)0u3^7tV>5yUCQ&4IwmAQGkvJ@~?;NDq zw5xrs(?0siEdaL0tAR@40~o46D8QCNob@dIdxWGFFWeQzMMa98OkT5;ifzfK`FiOn zAH~Xt(I&Jkl_J;!kB{i_XkTpQ%ZhlBm#ei^gY-!LlLm_*v8F)3qeR$0)+k2UsNcT2 z%urA`-Dq|Y&YU&%b{xC`xMy<=?Mn^@>Yphdf{({9iK~%c9}b1fiIk8?e8YzmsH#?~O_wW30Z{2V~C4!Hr8j2JzgyJvi5+8-& zs>1O*!S79QN*JIB^btv(wgw^1Rq^SgP~8-=ey97r>Hb32`rd=?Wal$9;6ziP+^ehR zbn`Gp%#iM?#+VxV-s;`dEB_zRJ;;M-A4s}bjqv7URXWWZDrrtnH>z$Oqt$vjn;(>$ z6X#Fq7`p{2u~TitQsF){WjTm(6NvBC;P4S!&<~JBwoV;7i5Za|7WvQsld>(qDh%1J=JZ}k zEFK?uX~qBr0;!1v4<(rHorE)KI8hR0Djfj8KXn8N={PU3lOUx@2`7##GJKLk3$%QW z(P2h)66$j2X$y!+(m8%1q$TjQFp^&4?>@F0wx#K zLCzXd;{=*2X%^-OMvI3Ldn4Z{Q0gbm#G!4{Orvm#K7|sFl04SZG2;~f94n_(- z)T}q=?G-Q>2&Z5MtXM{%Ys&1LN%+vMFxsb)K6J?i#F=Hv141fDhia+MNVb4a>8$(nb;RoNgM^paS#cvSbc})a$H?1D~Un*yD;G0-M5!lAhbFT`~mjk(yvB<69}M>pRDml3Fl?MD-V zw`bZBX}-6D>Wyf~(X(*tr@All43$j`2%UOe{U(zdAi)#5d7V!g{UE7n28V1pJ+U8; zSTT1#9JN>NlTu1%-B1AbGlJ$k#~?Blu)n|O<9B)c9g3y*8^3JsKlVlSV>~zsvFUNK zfH4+xBE1bYVt2%)++I>Q#|ht8Zgux^Fa;gXc4e#Wr+=Or!g`5ZE6d34U{f zM(Qb=A&WLx}lHKnmd z_ag2&N*xv(D~q2*!cM;2Lh~*ziCve7&$sFngL08}cxt^FY9ZC+=yY=QnIdP$ya-}_ zsi5ErOIZZ0%l3UW-rcDJvwKnzDD#ZOob0Vu&C#8));(6EEQyy**uuM?8I(Ky%SMsl zDpcp(?RsPj^K5$+5QxYjX(NM}Zex_h?R6t3i>QTqC_SwF?|=W-e^P@u+D;&P=)e;l zx!aD_33Mg#s(X?2fdmX!3OWSrJ}cW!zG9x> z$W7|bgzbNiL@LE`U3{V#&Eb?zK5@9@j+Csk+Wnhei2*vuA2zbW%XSTOCmHWjA3x)i zs*evh8{0w5-XBc+#F1=pV-&Kk=j@!luG*|XqjS@C(*J#z^mLeH@MG zj5xJPh*nZ3b85AEXRpM^?2`z4BsyG{=z<1O?W5bOKl-*Rya%KFro-WZbE88trnoTk zI$MzoWZkRB{(8Rc+tT@w)Yo3JUxz52KJ=Zr|9f!UcT{tqAT_I%bcsaB~Qyi0%je14LU&f^@%OKF%Cjj5nG3P9zL#XTEwSC9Tu z4Ow&rXMyt{TrS=+lghb~w{g7P48STkoVZeH;r1bik_Sb_5!qMb(w##@DQ=^L`gE@3 zZAFq?!6C0n@ZioTg;R8wlG^K0rxJ(NUTpg25{)$>V1 z6BGHhP-PpY(pf{vJyZIMw?SJC@GUO*PCFD>pbPd<%ArS8u34dRwQP6ZYm0G(o2g5% zY=N)6vmBg2GC1je9Z#~Zio_l&%4uxIRZfZ05D~GKl)+ec4WYY!5RkRAjt~V^!gUpA z+W&(3<${I8*OyT~viEg)nb%dhq$)t6Wv18B*+2)5JU@kn*hfr`^^9Lw!gZwfsk&Qk ztyvn|sH#R}-+US#SEtKU!VNHev#vI}AKwUds9L&yN!FpdLMqxJV1Ft85oZ&ZWq%F+ z35gJJO28{Pb)2Xd0ILgjFBfva$LaKF-ZE*DM>=D5W$K> z3cl{PoM!cOw?i8T&X!JP9;Z8p2%8aK7*G-oJ~RPz4R(pGwvITv`)AckVM5cUjfC#} zM)AUyG?4%(T*k?ZI%Rg4nuIym=iOqrapaVVrmZ9T)58d-DH5hBNYj5k{QkScT1@lS zFNy3FB0d`8lSGOL6v|?#9q@HJ_N969QVXoK52U^uCczU9;P1VMjCS6oa`C{oo( z`7>>iSjFCom*4Ec6zpA!EH-WFDvBr-e-QrRhk-*s#N<_iHcPfgpPFu1g!f|Rn#OGuo`UUI4QK{ zzwc}(1iz0JY6V6I;mNxJJHd%y*N&B?%@v66Fm;UbbRJ{^QAO#&?$KBKAu{p9n7RN9}TW}EjB=9tKZ=~%0T zQluKDr~@i*K=pZptX6`6##alTCJL5X5kR2ZL9jW}<$5MF4fmZEut*>yA5S>-ep7qYa^J<1Y`cUUKS2RdC!|)k+ybTJMJk=>M5y6b5_Ue)dDy6ek zy;`6wYv82O051~}jUq7e;PiB>Tg@V|H+Dop)tT){{Q2n&(ope*wl}dvA&XX^a4vI< z?5RDRB~mKBXGvzDZsd3<@IM-qZqo8xIfknz(fveDt4}{uauj@iD+<^90zX;8Of!W# zQ^L5z-s^5y(>>-(AHyh15|}XJQ%kt#8ol&C3}H*Zp(1HXVk}_C8TI-r_(y6x0`^Sz zK-yadijfPkaz~fZ$_2@TD>ArgQ730m1TJj`en=J_4?*GGO(cnYXXL_SzXm~feBJMi zN4?viYs}_sc^KFI%64yXH|!6BVBG9=N7v2KxYIgPUk3W)@?N_=49aQ~>5kxXDj4wlXq+V^+j>5Q~K#8W@=49xlE^HkfQ0wX62t9>u_j+P2!49%}mi!-&wSET23y;S9Wb)!S`XW>pP$FcvanGyk^|m zm0PI?mNTB1HEkT@7Wof3E#w9+U~2*IK;C9{7qnRpUeo%;%=Sj21Ngr0xH2Bt{cAel ikh0}H41yL}IcPn4X6U=laM7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A4AT41y0_SY*PXs(@AHuc!LgNpv&>yVX# z?Pe(VyLom!>xK6o{x7o=XNTDoeVd&MRaF3tgv9hz-5g--0bQ7%#}Ix=Z`RT07oU_E zTFg?}=JHB+t^Hk8#SnF~+bW#G?FHt1jPuHSYqd}0CrP&oVbkjr;P~ zo$8y;{Xkckm!Faf2_0VBLYFMpnE07>HvcyT%)GVXyVq=}>axs|RG4c^iW&OW+}@^U z(sjo+Wb(0&P4a@8n|CuJsf5NfF#Q14e$GgFV`;zY*%$UXeol_RuHVpU+YA7`5wZ0k CR?x8k literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/8e/acdbb626348adc3d5493c688b21f1129b3bb01 b/project/.git_disabled/objects/8e/acdbb626348adc3d5493c688b21f1129b3bb01 new file mode 100644 index 0000000000000000000000000000000000000000..1dad52cf8ace82e43f9f6a4bf3cfafe445f02da6 GIT binary patch literal 226 zcmV<803H8$0acH&Zo@DPL_7N{xH$n5bST;(Sqdb3KcMI!TXf2n5(QZdf(HKgO0rX= zi$Lk#9Zwxg2T#v059ETx1Xr*)kjI1gfle^N5XC`zriAUjS)hofPmA(eq_6QYu%5_o ztCYzGFEuZx8RhgZb#-k3W`5kkd$p|AADjFtA(5jWJYvXF;Q;W`vs%n#%i5F0Wl1$m z#nmaXz2T#1?9rL9gA^5u4iJS|!&^=l{}-IsX$qQd&H_5))$rj{{r4SLlrwrOv9y@~ cxPf`tT5)adQYe7h=x(U@d`#>8FMNb<;iH{!c>n+a literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/8f/8b62eb83c2e168d23f66a99197e3888d0e4e15 b/project/.git_disabled/objects/8f/8b62eb83c2e168d23f66a99197e3888d0e4e15 new file mode 100644 index 0000000000000000000000000000000000000000..bcadb23afb5d9a4277c335e0d650a062d20a1a4c GIT binary patch literal 878 zcmV-!1CjiA0V^p=O;s>7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A4AT41y0_SY*PXs(@AHuc!LgNpv&>yVX# z?Pe(VyLom!>xK6o{x7o=XNTDoeVd&MRaF3tgv9hz-5g--0bQ7%#}Ix=Z`RT07oU_E zTFg?}=JHB+t^Hk8#SnF~+bW#G?FHt1jPuHSYqd}0k0$23^+HGBxdH60|O7qGRO5k6)!?gmh5ia`k!ARrs?dJ z@*bG#VrXPQ5(Ch?9~POi#;PP#FMY7@j;H@0)2&nUccUu?hl~8bZwxmh-^{bjjZ)*j z{B@`LrgJ~g73Srqq(VZ6*S63l%QYr`W}VIdO#w4+ZTRjr8>+f2vm_Pf+LB_1zBRYE zshM=$u??AgtYeeBpyuY?j7Tb>F%3*VK((JUQr=kFuX^@{eU6`#9G-WU}FfcPQQE)6M&?_mfUKTf6RLH8V_HpLBTnABb%wsl_D>(w{fE^W7+&_^;)?b6u~GUYzK$ zPf#ODDhpDJfo3rLoUs2N!+}lx8t*0N&HP+2^`Vm4J%|ydC7C(J48pRChxi(}+k=)i zgl)Ui#$fZ^n-OY8S!PM9ZfahcUJA${lMQuxf4TS0S|R4QR4Lr-^$O-Y!2lg(fK%?f BmYV9G-WU}FfcPQQE)6M&?_mfU%)FG;3ccjwVur29WTvJI{%l+#H}(6U56mrQ=XWbX73C&o z=7HU^{o0YsdTyF`Ztc30)yyz)ebV9Oe;~G%q!yPjNPphs&Ud49;=h*n&UL*$dU2x1 zK0%ErsVqn>2AaX}bHe_A3GYHEn9^z}@ZVy`8 z5Vq}38-vYvZ$_vYWtk}YlWEKQl)US*DILs1Oot>IDoB! CX_=@1 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/96/496350ee59fb2fd226eb340094130203514ab8 b/project/.git_disabled/objects/96/496350ee59fb2fd226eb340094130203514ab8 new file mode 100644 index 0000000..365a61c --- /dev/null +++ b/project/.git_disabled/objects/96/496350ee59fb2fd226eb340094130203514ab8 @@ -0,0 +1 @@ +xA0 E)/ 2t=bKMC0s l{\y2@"cT)r5Sd.#܊xU*oE4D*LMߥRǣupXWf3^b _[}6v&"Jm{?LRؤd#ܧhCIu \ No newline at end of file diff --git a/project/.git_disabled/objects/98/b57be9edb802938d18d007793bfea810626126 b/project/.git_disabled/objects/98/b57be9edb802938d18d007793bfea810626126 new file mode 100644 index 0000000000000000000000000000000000000000..d751060e80480cb09badc7eb41390548aff30c8a GIT binary patch literal 584 zcmV-O0=NBm0fkgeZxb;P<-EUQ*hWe#k*vZ6l_&@VITRsPN+T{UL|%I~>*BRnwl^Ol z{CCFQZkmv&NIuQyn>TNqE0e=$^zQoA#p^7WI&)=`T)-W-vi9H&h^=Ook8SgaM} z2&h-m8eO6GuwquST%iN0!IucmGcP$5l5A9IUP=d)ZPpH&T98jKLxF?Dwe+QFJeAKI zsYD0}g}Bk4NsTrDnv+3Di`*N#g>{J*Pr3mkqcWU%6v^!NcE0#>Gn-_Mvosa?GQE^~ zla;#AfSCWRm4&{QV?$V&t1H^U;_vxE$X z!;~WFQ7?;xD$G5gu?o2yJ~{|<$05$9@0+Zp7G@nmPT+S6AK)3*QNga+bmJ}KhpVBT z*hqYA`Tb@-T>#Spm=FO#6&C$(sU>Y2`affE|Da_AvZECQ!e}f30}G1wGzMV^LKye1 zR+7|1I|~j{2G#F`0;DI5-B(OC7&FMX2HM6Fb-91Yl=?9XKR}E^C>}vi?!yPc6gG zwa+l!sR^KW((pYzq`lBAj{K0mq5Z!k0AX~Xlpcvr8P{IPSGHnLCvEaaIwJD73jQ6=~aT1PAB*=P5uJ&N`e^2C>31* literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/99/a27fed78c69481f72290697a2a5c284c3ee0ff b/project/.git_disabled/objects/99/a27fed78c69481f72290697a2a5c284c3ee0ff new file mode 100644 index 0000000000000000000000000000000000000000..e5808b9be5a997bf2f53dbf9ecafca5bfc614c39 GIT binary patch literal 877 zcmV-z1CsoB0V^p=O;s>7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A4AT41y0_SY*PXs(@AHuc!LgNpv&>yVX# z?Pe(VyLom!>xK6o{x7o=XNTDoeVd&MRaF3tgv9hz-5g--0bQ7%#}Ix=Z`RT07oU_E zTFg?}=JHB+t^Hk8#SnF~+bW#G?FHt1jPuHSYqd}0D&)=g?afYsgTg&wJmhXa*c_fS!eTqQ^3qy8@_wZhN>>hEJ=mAwxpP$Z_Vv( zY9?KGY(pj=>)0eOsJVGJBa%vJOas#oQ0?c8lsA_4tDb#fpX2A``0M%&owm&Yx|X!Z D6K>Tw literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/99/be5d2fc4e6dd2706e6e2cce62c109d149217e4 b/project/.git_disabled/objects/99/be5d2fc4e6dd2706e6e2cce62c109d149217e4 new file mode 100644 index 0000000000000000000000000000000000000000..702d6e24dffe1356a1fe8fa8ecdfd85397e4f8a1 GIT binary patch literal 85 zcmV-b0IL6Z0V^p=O;xZkWH2-^Ff%bxNX#sD&dE&8E72<{W)RF|-ml2xxyM^Z!o}M7 rk%UQxXB1Rjc~NQ}LScu8-hKJ&QTCNTtZsEPbnVw}D<}m3xELMmAx0*P literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/9a/88e8cd6694d77652a4fb4d492628222121d936 b/project/.git_disabled/objects/9a/88e8cd6694d77652a4fb4d492628222121d936 new file mode 100644 index 0000000000000000000000000000000000000000..024c33af4571567a508999c9046b5f3c4020a5fe GIT binary patch literal 1802 zcmV+l2le=P0gYGNZrnBy?X$mP;D_1g`VLYW zH=_2YUeFsUvIV_Qgq91sv@%uxQrL7suauUTg-os&^oyucSBPs#cfC2?Br28BV0BAX zUfN6~lCG?&9o=pbnd+^$QMvH)ly+;8<71~VrQD(aXb0ydjTYY6@LHH2Nw%meBaosJkG0-VR1qe%t{W61H_~;zr zfm)FiFuJUy#jd0f7OBK@uxDy%IZ6E1E(`nsH^{?Hq)Mmz+ac(?E*ehy96eOl26nlX zvidrBF94WzlHP?_=?V^KMl16L+K&afjBK=$jHK=RXNZAg2;xqO=r#VR5uqAYrM$x9 zjRdF;RnI=zmaRFJS1MBpTk>KxtHTH39Qn9`sh2{39nwD$OQsOm_jD<(@18q+xt6|w z?1k1SI5Lf$*WCyjaHeFm7Ps`N5xO(&3uRNPQBDfQ3z%f(8Y~B>%698~yH6J>6bBV6 zkgdg(4K|E|#|B7I-U!BBN`|jp^97keo>A>MMO4(K^+6;jmD_-_Zfvc;f!yz#c;u}k zu;@y((S?itGEMYeDE$RAyE@$g@w8m2SW5(~5{}9Q32>;Aiei8S8wRllhDvauH5K$Z zXt}CV1w{bR_qfXtYhiQA#w8d%PBHhu=o!doU>!py?Ha%K#8Xaig@KM3spT^7d&7lFGP@v5`ou zfvlE|_6l{>qW}c}W*Jl_xV4s^pe{3cP7H(zUBc~i!|<$8O{dgZV_A{F3vLXZ&agDa z($xmdxo0I4HR#sESWiuTy}ucdE&m1*T%j(wYZM9{pB;G(j^@x?OC1pC|i2nA^vn~9$(l@rE-O%vPK*xE_mSPnxqo*rP zlEY)pvctrIoIw4n{;`0gVoIiiqe%|-Ybt7TWV45M{WgHzo8CMdW6^HZl!qO8Q zm!Vvu*l3`}V+u0SMn4`L@cxt8cA^i{m@&>vy&tgts5l(F!dty@6i%A#KVkbJ;NvOa zdxyPTq4>kl6Ox!UfG#LUH+Y~e@_d4P4@1pT`64tNKTJ^QmE6n2z{ah4n2i<_Azdw# z&{TOLk2Rd&rc$38Ng;JMa>KBxuyM%|Z`^7zE>#~62K2MsvQ+?$=u z-HmW^>7u@bKZ0K>Ylqh*^P%8>a5B{C z=m4RR^W*szfx#tF27S1{Ee*33&z-zmP^!4=^4*Stfc4GlUC_19Y79~tH{L`1#=!W} ze5qA(eSW(eL}0o@@6NBxW6rrCX2b)V!sV1zIRMZJ0CyU0LdRoP0Z>Q&VaHS6G0`8o shD+bX_z7*IpD|p%=a~>n{K2H69o;{B)CDxGo|WqOxQEO8|07CR0WI!+i2wiq literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/9b/867842573f109cf15e4a6eed3abe14f1dbcb3d b/project/.git_disabled/objects/9b/867842573f109cf15e4a6eed3abe14f1dbcb3d new file mode 100644 index 0000000..ad0d7a2 --- /dev/null +++ b/project/.git_disabled/objects/9b/867842573f109cf15e4a6eed3abe14f1dbcb3d @@ -0,0 +1 @@ +xmSMS lh$zљ4l*BHqBHp~p}媽AB-u:3M`ЊJe}(!lg,$d0Q$0t1 I!`锱2/I>9>T27 H,B5?=E (ogH+Np( 9mYU+U|>^p} RKM/;7`+RHq6\HloBl9ċx-aqe WOU!]Wrކ{Tuqt;u {ZZZ!߅X}95Ih hetUգ \ No newline at end of file diff --git a/project/.git_disabled/objects/9e/617af2850975276c1dca90f1c9a27ebdf81093 b/project/.git_disabled/objects/9e/617af2850975276c1dca90f1c9a27ebdf81093 new file mode 100644 index 0000000000000000000000000000000000000000..21476e33048589e073acefa2595f0b2223d74df2 GIT binary patch literal 404 zcmV;F0c-wv0V^p=O;s>4vtTeZFfcPQQE*JkFD=n4DXw5RQWAFWQT{#coUdN%6eC4f ze(*65gDP@PEK17H^G{1FPKBu5u=e=->siU=4=Npd|Li!frR*%T52iLhuOu-UqAc0Y zY;N<8D4Ey34<=Y0e!uYKPkt?!veKfW)V$=%;MAN{sOrV0)6Ab$YdHti{{0*f`1)$Y zOV`s-)viTF`9)6orFkidMU`OJnr(BM`s8?UWZ;e_*#N=H)jYfA_&^nV)tp#) z6IQ|?(3o?nz*3|5)GZ1(-jfqNZhS#btNAFf$_!gE_I zR3*gM{zWONMPQ|gjqhGFCf>7)zUGi3YxQ#G@|V*%ph^Qu)6z2Y98<~?fkBWCal@>R z7iZI^TrUe+^4r%_O+!gh@unG6c}P)afpcO`a%oOtNj}7IG2X5zpL{Etd;D3p1-dV{ yT)JTcD^zu4Vsb`FaB5;vat7EPUkqn-#kYP7sNU6HC*SaP-HbW&UjP7xU%)`s9>y8~ literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/9e/b5a5df0052086c2f844a4d62ca4bbbc8de9955 b/project/.git_disabled/objects/9e/b5a5df0052086c2f844a4d62ca4bbbc8de9955 new file mode 100644 index 0000000000000000000000000000000000000000..f0bc3961ccb82ca3ed8650adfb145612d1ef7667 GIT binary patch literal 85 zcmV-b0IL6Z0V^p=O;xZkWH2-^Ff%bxNX#sD&dE&8E72<{W)RF|-ml2xxyM^Z!o}M7 rk%UQxXB1Rjc~NQ}LZR}n-*XoPaw!LYQfl83`1k1)b?##T!xSFL35zBb literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/9f/add0398552242f6e69e3d55805db7eaff17e58 b/project/.git_disabled/objects/9f/add0398552242f6e69e3d55805db7eaff17e58 new file mode 100644 index 0000000000000000000000000000000000000000..89ed26db585784012b276a0f5c35ed54a6a9964a GIT binary patch literal 4139 zcmV+`5Y+E@0qtAsZX3rH?(aOsL?}Wk;8HTBI;kQlaO5~J>eNE)peTX>UhWRbjrZ2Q zh+-N2$)om3`klG#%>S&?g?h+#j`@XfeZ+Nu`BhIk1vS!;)7;B2WK4E#A z&3W||K4(SFo3PqE$%-~_zP4W#`8Q$o_Joc1+1WX}Dw3EcL}41WX$S?A6i?WwsgiQU zer2OD&)bj|zUeJZLZ!jaqart)lv3I!N-;|KVm8Lr4KZ!cWM^!=Woj0?IqAR0@Uj-H z(moFk*sE~C(+!KroLREyriL&|(ktWFN!?&9-i<%ign#{&>A$BmYF~(rv5Gfsm9tZ6 z^(;!my8e5Z@w2^#UpK)#ZF%sQ!^1sxa86=^3?M7953$ynUS1HLHpPo#&8v&B=Hq=D zkN@>LX`&Sy+p9(xz(#RWkzIyK1@V{QgO5%yf&OW>l+Ss5m2Fj~4rio7B1#a5 z7t@`!cLV?7*CL88+B|BKBDW(5ERj5E((|7QlTI_~xrs7YvQIKjX%|1Gh@?rroG?T_ zimLegXIQxo*5gH()?8SJn!pi-5gsx8Tl&i$dA3*W^gM7FE#>nE+&TXmlv)hZM2T$D{mDS>wnZJOhzY8}B-q<#_Ai!v!t$J$@TON7`%a`@vB1wV;Sh>PDD(E*YDdRpV zlfUte4u%L;$_B@y3lTyzk2SBZ5@ejDW>WhNLU5ahSI9{eBBtyzcesEz8VmdP%CuibXif<0YvQf41j3F54ZBY7#Q(8-oT_ez!^<1c|}r^kyJd^ z6qI);Kc>N#yn2nHmJd$_5%nBCIXgW3ig4&t2}Q_e@rckSc?uNZ5CsTF*`xCz=vtp- zH8GX}HQIElQs7V8y`DO@*nrXDagMzKRv zb}UkU&9Gcn2N8;4GF>V}mQ}b39>dO7#TBnk%(K7ZSvC(I@2OSv+E~4-?rr*670mWn zo&1}hZD)r!sB1d*s4gUP)*31*y^jOAk#iCj{p-s}u%p-oGhcQRz|hsqUS5nmf~Xb% z2*JDn9P;*ZY)xkhp0j@vs(21;6=??p?Ss|Kuzy;53qe(eI;7_i21Rs9SU4|QM2ilN z-G;{g^V@Hov`!C7z4qw=Y^D>=R(Klw>@)T$EZ0R^uuW-YLsFD>G=p%m>mY2K!eO^B zbJ(S-+}K=%WA#furI2J9Y#BTzE3p+LI9MHdGSj-L0V|Du#8S%ET>TK83x)Q6tSL|^ zl~Hu*q$O56SRHAR(Pt>oSD9Go3u)B;LN8$iBpCn#zy%o+L=>|CDtrgo0*Gh_L|r6l z3XCc<1O-_(=PA$+H4w?dm4&u@o9oO$?M;v_@>lIVOPaH- zf}ZF+bXiLdq@NrCieJIsRaP+=Q;!)27Wyp^oP}e}Qwd-F_R^S`lcmo{O3|P@GaG9T zUI+GDC<8jhvR@70Z{K#8`NK&VXeeT$iSm{74HNZlW zm#v9^G*!3E>A0lokMP^V|UI)jl+ypZn+pJi&D5ADL zp|%KKTOV{EOFff8QOC$bUoKYWllxR*+-#cu`k&c?Z2LZ(F^D#Wzw7t120>#;WAAMa zs%i3vJ={4qTvA`j^VrjShlX^>7W(clnpqE`aMc$3L*aK;_=W5oKA_64o4e>-bu1r5 z>s|Nr553=6@88P?@q6f<5J!mfRc{J{d$F$1w#P%t?EAWEOb-ox@9^F=x&IIJ-YeQQ z9FP#J7HHmgt2n8t4<4Uw)v<&xR)cc3Zxqb&i~V2Px=9urUHh9N?@(e&*@^%%I18r)Mb*hTiO_gIAgC+ZBS$B z2YLJebn0yaJa|ZuG3pMPO5Kng5k=jTP*i=vcqsR@>!27?v@qdrTLL`@>U<=YWNYEJ zCIS=&q)&Qvy8`skYYH68){(&*5?gPgK9W4)9DT6!BvkJA z0%#KIr@eF8Qn|5OE@FmkyJ(4e!cvE$)QOP|lH24axKu4HxR={0>GxieJjKnJz?V(W zeb>RG$81GEpcZ*D{>W;~P_xk203<2y>Uc7=j@G3Vk7iE)jtr_-xtjv*ae;uYRnWmUnmkI2B&*Go z+JGYn4HqYPa)ss{HHR08Iv_%ChOW-kEA;m<*x}IW&h+&uw1WmKyv8atRnx5BA2?kd zd#XXBQHa!Snu$%DrkNIDhU2;oWOnR|q0f}=PxSo^Y98`YZF+OwtRcaka|(X}#oS|E zYi93U^7s7d$>{-&bh#TOAoeU<9&l2jLYzs#Plx7v#wkdCn61crPxsu2Wj8vuhz5zd z6gHMy4aMy$G)8d76SD&b-?mRhev+f~`OeQ?Rv?G{*pj+(WWQ7Jj?rBVhdua|Ryhf8>^vtXn=Ak$= zihEem2D7fu?>rC^p6fvxXOo0h6yEHV;b6d9gP2Oh&N&#i_Q;Ker|&|EBB|@XpvE44 z*6hc{EJbHg%r(K0mLeqCnS^sQVLI*Gh9?X&(Saeh#QP$Fq9xu}P|nip?>^A!<)&WD z+jiUzbcFlq9%0PKZd!6f_=YiyJ}$jPxNAzqi(5_f&|Y`lM8;%`g1X~b6VNk!>!;I{ z=gVfr&en-@<--AB&@E{N86VriOK@HS z+)pY!+Cc`kaM`=ytG3YXrH5H*as96ct!{x-fE!vgbejs0qYtM#nte>HUyyzzt5Xz~ zOa5b(4jG6Z-Zzwry)hx1o^RX3Ero}3ToY+=&mqZiwi6tx%M93_C{v0#-P(pzU}JX1u&LpG zwjIvwS57#zU!c?;-pxQv!6BOym2Wr1P6(nNcxu87T^G>;+8KQ`k6sk&Ui6TwbPwbx z$zz@E^pK7*93P5{ZMT`-z0tnr69oGC%?OdMwx7RHZ0y8JcOr#4$8t)&wH>v9MRB)# z?lcX{bEzx$k;O-Mr5{psw51O%HaKyzNTl`QD@1u5R`Ev`qh{kFMLD$14=q}J;R<(@ zzUR2OAJtz^qhj_0kJ|_Z;sE-v{Gb<3ME-quO>Yr+hnLH{Qx7R!XQ$Ri#non9QpcCm z=#+k}FSLtNvyYR_2IOD2B#NE!VCS42FZ^2w0|SwkoW$AB|2{zKX^VP(s`kJ&!D9;@ zc$r~1LW{}NK62VDm%1j!H>LFLR$N)#q1d}nHn+UerNX-xVlzPeW>=#8KnyysS*$m@YfZuE740)=IU%dYW|RboR!=%c?& zb(5%JWfS;{zqeEdbY_5A=k~gzym$V(Xu=d%E$e2dWZsvg<$fj(d%aF!c(m@ocVSH& znCd>KA6TJma$8T$`+kR8b-d&J*3?Pe*{zB0ZWoS@X2tb2t6O6g z;k(XfRj=$p&Su?nS+^v+7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A4AT41y0_SY*PXs(@AHuc!LgNpv&>yVX# z?Pe(VyLom!>xK6o{x7o=XNTDoeVd&MRaF3tgv9hz-5g--0bQ7%#}Ix=Z`RT07oU_E zTFg?}=JHB+t^Hk8#SnF~+bW#G?FHt1jPuHSYqd}0Ho)c>(u<+=!(JNBLD9j!_CMy^DJ|t)VMEy z-KoCm+z)hxdHE@+kkH|^Ep*9pjftOGXY+qkz|314zI)AvsxHecNrkz#q?n;^&FyV! zCS7-ILna^V*d#Bgxp_Aul1gYy1Je&s?dOb?H-r6yw#@(~{j*H( Ch1K=| literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/a1/4fccc209d999439c04aee9ab45ffd3ff2c1a2a b/project/.git_disabled/objects/a1/4fccc209d999439c04aee9ab45ffd3ff2c1a2a new file mode 100644 index 0000000000000000000000000000000000000000..537365c71033969c985dc08b42284c90840e9c89 GIT binary patch literal 518 zcmV+h0{Q)T0gY2jkJB&^=A2(KN)O8`aX}nl=~jYnS6ZQNt5ygQaB%HO<85MFwzG7l z{qc;QJ{G}&9HJyM{vPv9){R-iyH~>}1NhjfM#3ua4Q5x%`3$s?c>a1=@Wv{Q@L>h( z*pg*m=F3l)*GpjB+AJHu#MpbVTx{tmRH{J_TuV^e2i`Ow(V~{9g+iZA=8JEK-sk15 zHyTQoEkECYwk-&C#0xcoLm$9Y5TA)Fp(YKWLXT8Jc|7boeNZ@ng)_1fK@t9AOB-5LomcK?AoamWK@1GeFUvNtYqD2jVm z#yLPRv{?fD`Cm4^ZTJoY{0|jYqJ?1$aBmre7EH)igd)jh2eO z-o(I3ySqaNPve@N64;}8_@(G4h|5_i=fksXGP{KDc?vpz33;)JcgeA(T{TtpKL45h I1}|nZ_u^pt{r~^~ literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/a2/846ae74c028b3af2d63b7fd41d5b0457c295a3 b/project/.git_disabled/objects/a2/846ae74c028b3af2d63b7fd41d5b0457c295a3 new file mode 100644 index 0000000000000000000000000000000000000000..c17584080e8eeaeffa1b46f4296bb1206681fcfd GIT binary patch literal 876 zcmV-y1C#uC0V^p=O;s>7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A4AT41y0_SY*PXs(@AHuc!LgNpv&>yVX# z?Pe(VyLom!>xK6o{x7o=XNTDoeVd&MRaF3tgv9hz-5g--0bQ7%#}Ix=Z`RT07oU_E zTFg?}=JHB+t^Hk8#SnF~+bW#G?FHt1jPuHSYqd}0FjUW%ZA?wB8Ew6*7)Z+`23TYF9~OW==UU@Q^HXT<=ryBIIPr?#8YE`4wWC&R!|+ zfvGNrMg}A?0KNNRktu7eN<#J02m9`L`u{QAIyHYcx?*s+$p8Dsa5M7FJj>iDHSWt_ zcdBnX_XAyFUVcg{By@Of3th5YW8!Dl+5F!WF!R=i?_RT^s>?D?!nwYa|7wy|Zw_XomDi-dkgcT0*O z-N8vz`6lRt0Ds+8Ma!wK1iy^?M21v{W?ZwljD>zZYKWW&iMo{>Lc17Xt6YK zGJ9W}#HA)gr(-IFm}nwP)QRH*Q5PkHjnOoKGNRNgsWF{pOwc2ox3{*2^ lny9YM1nX^OXz)sG2Fr2S)D(H^w#zY`p&r@f{{Vf#?0PlF#eo0- literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/a4/003ae8980aa451893c3c30254696cc707e9612 b/project/.git_disabled/objects/a4/003ae8980aa451893c3c30254696cc707e9612 new file mode 100644 index 0000000000000000000000000000000000000000..802a3e5ea93c38324051f1bb5f7ebae0290faadb GIT binary patch literal 404 zcmV;F0c-wv0V^p=O;s>4vtTeZFfcPQQE*JkFD=n4DXw5RQWAFWQT{#coUdN%6eC4f ze(*65gDP@PEK17H^G{1FPKBu5u=e=->siU=4=Npd|Li!frR*%T52iLhuOu-UqAc0Y zY;N<8D4Ey34<=Y0e!uYKPkt?!veKfW)V$=%;MAN{sOrV0)6Ab$YdHti{{0*f`1)$Y zOV`s-)viTF`9)6orFkidMU`OJnr(BM`s8?UWZ;e_*#N=H)jYfA_&^nV)m+t2 zF?{uR)k$YBk&c%=-eUjf&8~r~DfcW1&o9a@2CGb8Hv9hNz`YK$tT+Rs57(?d;km69 zsuJRB|Du%CBCyi^KMof>HH^&KE9}3#RTVk~6^W_+mJtE57wxK=rQnI{AjT>t@WE{{jG+Ey6H0?bWmZ literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/a4/751a95c9e121afe4ff6f330b0f54e5c78e6f2d b/project/.git_disabled/objects/a4/751a95c9e121afe4ff6f330b0f54e5c78e6f2d new file mode 100644 index 0000000000000000000000000000000000000000..fbbe70f50a41d0548abb54e1a6029335b14cca6c GIT binary patch literal 403 zcmV;E0c`$w0V^p=O;s>4vtTeZFfcPQQE*JkFD=n4DXw5RQWAFWQT{#coUdN%6eC4f ze(*65gDP@PEK17H^G{1FPKBu5u=e=->siU=4=Npd|Li!frR*%T52iLhuOu-UqAc0Y zY;N<8D4Ey34<=Y0e!uYKPkt?!veKfW)V$=%;MAN{sOrV0)6Ab$YdHti{{0*f`1)$Y zOV`s-)viTF`9)6orFkidMU`OJnr(BM`s8?UWZ;e_*#N=H)jYfA_&^nV)tp#) z6IQ|?(3o?nz*3|5)GZ1(-jfqNZhS#btNAFf$_!gE_I zR3*gM{zWONMPQ}64XkgE+5$v3=RH)GEH7XSuvzg}$g&2|6) literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/a5/47bf36d8d11a4f89c59c144f24795749086dd1 b/project/.git_disabled/objects/a5/47bf36d8d11a4f89c59c144f24795749086dd1 new file mode 100644 index 0000000000000000000000000000000000000000..acadfb273200e0038ed428f62652f9e72242ced4 GIT binary patch literal 173 zcmV;e08;;W0cA})4#F@DW%en8x>ahBK+G(#v2lPZZA_IawJW>jb9<5^Bm~R**nZDV z3GyH#P%+$qEirA-7h4wc7d?y@W4>4g3~im<%*~sVvqH}evYW%gH8)n zs_#oIO5m1dIZ>}My>`mL$vMFKxk@%R9G%%^{l?iO{=)fK?^(DnI bRqMDLoXXL#JoiS;tCj$(58q%H+RS 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 LVr>5b)LgNRaxfSy literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/b0/e2109b25d8075179631b8e8482815940ddcc51 b/project/.git_disabled/objects/b0/e2109b25d8075179631b8e8482815940ddcc51 new file mode 100644 index 0000000000000000000000000000000000000000..da0df90870d8368caa6d5373edc49ccd66760b8f GIT binary patch literal 85 zcmV-b0IL6Z0V^p=O;xZkWH2-^Ff%bxNX#sD&dE&8E72<{W)RF|-ml2xxyM^Z!o}M7 rk%UQxXB1Rjc~NQ}LSfRvaGcv)=yH{4&}t7_ z!W=b3O0HnbMJTr}iVf5#Gt5jQ6|41tchl46BI*RvRY97EvGmL|qC*T@p!tF=_x zU7_|*VM5$sEY}uDF)1^p^e9UUYRePhdch4^-!o09&=IcW2I09k@uomRM0^L^1qzrg zaJD3sN=1`iHoE0OQc?nn?Ln+!O67Z-L32?^~oq#VwSojI( z1;WNx+z(3`B}$0W9r*a5 za!s{|W5wP7D{rZJB1sj(78$*zi1&FaqnkAu(TY<{=(?3I`y|=U8u>ypzM3NPQginC zZA0FMWAMX9ghp2Np_$q3QTi4C9K}qWykkfAQ*LXHyj#CUUVnN&>`fU;{2e~%cE?_UHqP$}uDKu6R2bE0f*sr$-{%_I zvqmx9t&90S&ARRG4GDY6r}4>Ic7L~=%Z&*3tb!|elwie?MQ!G9fm9Y%T@Gi>c88-u z2U^rstx|OI9zGM{(AP*7_?>c9T?nOyn&G&z61XR#*6OBpw1-?&N~#)r;z?qx_|J$9 zJN%bEu$$~r&hsV!7f@O?PPvdW-)bqboYz=8>tcg8!#lMCz;#{Az$jeZ%@@qb@$6;f eb;w{|=am`bKlR4rUjHW}@PQ0_aQ*-%!2lH|&|6#p literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/b2/d540e0790a850cb385b1e81d5a89ddd88927db b/project/.git_disabled/objects/b2/d540e0790a850cb385b1e81d5a89ddd88927db new file mode 100644 index 0000000000000000000000000000000000000000..b9674d138817b197575d727dce74347f4303947a GIT binary patch literal 2775 zcmV;|3Mln>0mWHSQyV!FzGr?#C$+UUcQ6s*l{EH17XvknV`icYBVh)EQjekIrgvVg_|@!mB5|$L!N5p+T4oX#JHu@T zI#)VQN|Fr{H1)hYNZmF~k;t?^ zdb9uW-G|Gw)AJ8+PTw7$_8Thf!rcmh%KEUmh7W}p%RW3ks|EvAz;S+8TPG$O^)P95LA z871bmKa=HH6tY-S(vC`94M&jiN&;6(c_pwi9Ths)!)aX9j1YmtIlFijniJ8a$EnOk zk;RE>EQa!9nd3o5)=o@+W5W%Zq$|1g7d6bWektlFOa7zV$jCgve$p;Gw6LN_Z!>Z{uEdWz=ptyH#zgSe@e*<>=S-@^tL#tI0k5$O-BsBAh52p(-6zbX$t|jYQvZ_ERqv!k zn>v??+pydD4+=PCtiHx4Wnip~K^30B2O8;j);wD`*LvkVcwwod;zpIa7~`2})~zZs zeY=;);s*BMpBJYmiNSCwhH5bF@=JQR3TU7c?Zut6xDhHBSGnx0@p~;RxvYYYo$@p!-q5FP3e~0D>WGN=fSsht&<7TtN>@ku8 zGi`%(I{TGHhE{(#8tnAp%WEl0S;7x@Y>@_XvoC=*I|sV32-W%rBuSjq5t9jO@7CD( z&FG@zF!q$?-H|!1w+5J=H+z^9af2-Qs*}eQs4{eLj4)fFl3n8;ifVi%OXs9K1i$PO zjl+*Wf*<%9Fv8s0zfv4X*#7#J1H-_u6sa6kc|OH$W^7VaVn3tkaHR_J*Q(5Y*Z>hnRTkb+IhH)2T^Ij-4yd{Fp&6P4F&8rD z-qdU=s*I>0;-xU;-9s{##$euGRN@RvNM$4%p6Vms-^;|@_WCT z%`UhGf9)aW&)}WIfrMr4qmM+Kf&}e384*#r%>K%wJ;V$Y8SdD`MDyq0^9EQRC*O*m z5SY(%R_$I7&_&=k$M3H~iFF|cl643<00vdTmp3~Smia>(D0H!Iu++z#^#|1(ps(EB z%@VTPn%&`G*_szvW zGMll^w84d|^#XN~b~A^M{K}mOGcD2@mZ7wb5{m1+ zq!!&va#;-R=&{(;Gkpbvsn>O&kYyI(32MZ=^es?4c5})$bWO%$((OhK`gj4uyOY0K zktuVDEvdQ}fi}V__7zpcv0+7Tomsr$Ikm+#6F2=5ui}>$%cm!pysILU*p$L^VmbVf zAVp_wMs_g^rMNw#O;MS9CbM6X{sa|Wn~|vMX;eROg}zWZ%%3z&s8{m@aqpsh%>W`ty^zbIv!gj+3F)IX(pD1%8PP#m2wP^v8nAehpY8{(3M#wTgLZjE*dAztQ zQyWobfp`O9*YBF7z0f$Ug&MsY`14Qb_*)!n&8@=z9B96Mh_attZ-FG|PFO3n*kWK& zp9;9fnqdparX!!gg55%9^YqN7B2=g|(88B*T zEA1(P8LH7-rfXW<_!#?Z?671G3?r;H>)%;9J+H7$c%|_`*hkx?de+F5Mq+6!{Jn|A zCC!C$`al$}6~SE|O-*rF4?UH-(NeS4(go4C9JTAJ;}yHSp}@w*45MxHDY8XuktA@2 zC&Uzu=wW4G!Bi76QWAD(Nkw1g?sTyY;&*g9H(YY}hr5Q=XV{uTW8)zGH~ZoP)kP17 z_4nqNi8hpA-1Y_wh!Bx+^GoWN#$U%VFiDXR6A1ieNyxJYgyFV8@lAw4p$ye-eWjx$ z#)07u*G~KH6_KBtUZ)Yve#FQ3bNqsQi}*a#vuy)CqC-Ep0P8)+8aU-4*2nT9E{;}i zVPs-2%5?6?-m83Y2dD@j)~lvXG1gUK4@ROKQcs*;^WbI5qxYZ`hB>%-ViW7=3eEm| ztwMaA)XD@7Uo_qWOui`kC_Z1DGzlMt{ts3U=HOOCuq6Kq@0c^QeH&i;flFb7NT5bm z(Z>s8O3=>di++9KVT@Z7M+|~Tv@SeH#LtiDmX1b2n8rs*cCuJK(WFMtdXBzao5Zh? zN&LE&8>*j!OM-7MVjUOv#1<5{f8x#5oq)0@1^qpu^ePz9kp_M!ZF(L6cHZXZqS`34 zm*99k5nwE_U5la6P$)?9tEO=5_O?j-cXTuOm7Bs?2uXuIgN|>idx=KP0TA2FEi3wW z(HyZ_iuIU(MU*!;|C>#yr99VcJmI&i%EnYiS3EJq@1!w_)fF6V{G_pSfHG7z1me4vtTeZFfcPQQE*JkFD=n4DXw5RQWAFWQT{#coUdN%6eC4f ze(*65gDP@PEK17H^G{1FPKBu5u=e=->siU=4=Npd|Li!frR*%T52iLhuOu-UqAc0Y zY;N<8D4Ey34<=Y0e!uYKPkt?!veKfW)V$=%;MAN{sOrV0)6Ab$YdHti{{0*f`1)$Y zOV`s-)viTF`9)6orFkidMU`OJnr(BM`s8?UWZ;e_*#N=H)jYfA_&^nV)tp#) z6IQ|?(3o?nz*3|5)GZ1(-jfqNZhS#btNAFf$_!gE_I zR3*gM{zWONMG%W)O+`Khib>}&oY=5IQpb)@esdC3X+UXOT4tVON?9T>2+|>LnAP#( zY}%CTWkE}R`+BNrC@Cu5G=nM+DatHxPRvOz%}FfDhZru#+co8rZ$)#DKg+g2_vMyL wH*8>qs*X%d&L{~^O)N^z0K4Oh;f${M)^7pTyV~pI8{V#)F=ze@0FMQ{*1*)ood5s; literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/b4/89b14e31fbc6d2cb2b824831651c13572d1320 b/project/.git_disabled/objects/b4/89b14e31fbc6d2cb2b824831651c13572d1320 new file mode 100644 index 0000000..5b5c2e8 --- /dev/null +++ b/project/.git_disabled/objects/b4/89b14e31fbc6d2cb2b824831651c13572d1320 @@ -0,0 +1 @@ +x+)JMU064e040031Qp,(+)`JVʳǁAeL @! y_ބH:1!ZA}lr~nA~^j^I1CAC_ϵW><jKf^Jj^rq1c2S6.󻕠r3n~e=7;vjf>?JRK?orQ:_{^8cFT`9a?5KΛ`C%{#JK2se5p-mv7#Ԍ̒TԼ2A&rBoRw_g \ No newline at end of file diff --git a/project/.git_disabled/objects/b4/eee0fb31e438fb4965950fb8366f28d5c57207 b/project/.git_disabled/objects/b4/eee0fb31e438fb4965950fb8366f28d5c57207 new file mode 100644 index 0000000000000000000000000000000000000000..dde9ee8491fbdbca09962529902ad6a7abe9edf5 GIT binary patch literal 304 zcmV-00nh$;0V^p=O;s>9G-WU}FfcPQQE)6M&?_mfUxtd}y;0 zPp!Kmx325?t&+75ona9~rv#(T+mGd~wheW+x14`M`VNoGzl!-w4$XX{^j{P6L6 z>%*(3FnycjR;>y(qb#!|RW~)SOfLmwkjaKRy}#UhXRQ$PTdEXp_Id^LonQdDLxiGd C43jGW literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/b5/3fe37af1ea9109ceb3639a23f61f388e37ee0d b/project/.git_disabled/objects/b5/3fe37af1ea9109ceb3639a23f61f388e37ee0d new file mode 100644 index 0000000000000000000000000000000000000000..22f21a4ab5705b1dee07396854b05812dfb8af24 GIT binary patch literal 6321 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 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/b5/c54b11ade52984481ebd13ffe4e4f954fd9e61 b/project/.git_disabled/objects/b5/c54b11ade52984481ebd13ffe4e4f954fd9e61 new file mode 100644 index 0000000000000000000000000000000000000000..6be8afa2dbe794574a10dcc5fcad3ceb31190eed GIT binary patch literal 876 zcmV-y1C#uC0V^p=O;s>7Ft=bZF#rMuy`=n{5{8F~^G#nREwG7R@@f0beOoe5Oqy$L zXkcJwVxpjzlAoNNT9lcdmtU01@PZ|j{iT{hoV9=lYtbj8A4y^7RbdKK^U4_F{A)IS z&-?1B>TrxB{dL=~r{ND)BgyNfRwU*Y6|-|k9nKeG7B={)|J zy(U%|s`Qc)f!@eVVGvPTbK#C~e7D~ZzLcztl@D)S+@SwlKi5~#GGP=GZmU<>3J`2yr`*@Gu1uiV!UF} zH>hEW1qFIp#SBMMp3Z*We=W*h{Cwx_Zw$#tt5f-)Dj)%?o1C9pkYAjtSDBl`kbigQ zcB|zYfA(Feb!T9mUq93DRSHx!Fm&~bGZdzxbzk4_XVc^zDgsrNm!6qdp_`Fk3^A4AT41y0_SY*PXs(@AHuc!LgNpv&>yVX# z?Pe(VyLom!>xK6o{x7o=XNTDoeVd&MRaF3tgv9hz-5g--0bQ7%$MC8qjMLJ88toKJ%3{iLK&RpO7X{)ZJ^&~pZ6`XtZRhPXNOdZgD$;HJ;9@ko~5bN!r zC4GM%yC6^E{Yl*B3~7+)D=1CM$xLQ2lRU%Q)&Kh9JjcZr#{4YInRjpWLKGAiB{O^p zd#t6h#_GuNoX5v!K7FmzT;1mewW}mCGp8IFcu1BxuJ@^U5puF*cjMOo{0cEmXRnm^ zz*HAQBLk8cfZqME$dol!C82uhgMD{A{r{M5otnQJT`@RZ(MI! literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/b5/c61c956711f981a41e95f7fcf0038436cfbb22 b/project/.git_disabled/objects/b5/c61c956711f981a41e95f7fcf0038436cfbb22 new file mode 100644 index 0000000000000000000000000000000000000000..2d717ea5e4700b2bfe1c3a325159010cf6307194 GIT binary patch literal 55 zcmV-70LcG%0ZYosPf{?oWN;`+%*-jz%u7*7N-R#b=0fn3^K%RG^HTFlijhT2OEPmZ NOEOb|f&d#{7w*Vc7>WP@ literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/b7/d6c4d32e4629dcdabadc6a830091af62c3a7fc b/project/.git_disabled/objects/b7/d6c4d32e4629dcdabadc6a830091af62c3a7fc new file mode 100644 index 0000000000000000000000000000000000000000..7ddda1c579384b35fa774cbcc07353bccaaeabb9 GIT binary patch literal 195 zcmV;!06hPA0acGN3xhBag**Ez(kVJL8H6rMp@Kt)F6}SSBrO5W$r(W@{qH@gsM+p5 z-h211ZlGpqdOp~;1N7{}o*u38chH7?*$bg%98IM>&!SbMh_reluOnJ33Ypdl;95o7uG@r70b!M#5tI{zUTMObNux!lJj*$?cKa-$ULU#0*6 literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/ba/16969816de7663935649ffc51681767e27c032 b/project/.git_disabled/objects/ba/16969816de7663935649ffc51681767e27c032 new file mode 100644 index 0000000000000000000000000000000000000000..b9ab9ccbcc8e5db26d828f1680acc1c97d6bcab4 GIT binary patch literal 304 zcmV-00nh$;0V^p=O;s>9G-WU}FfcPQQE)6M&?_mfU__J||+|=)XJ}|eKo!_klRg{~U znFn^u_G?Ej>$z#(xwY#~Rx`uI^+|`9|AE+6l3HBCApLohJKv4ciT_&OJJZazE>7{@SGTBh4_m_L`tQBH@OO?XSUaw%j6AS4vtTeZFfcPQQE*JkFD=n4DXw5RQWAFWQT{#coUdN%6eC4f ze(*65gDP@PEK17H^G{1FPKBu5u=e=->siU=4=Npd|Li!frR*%T52iLhuOu-UqAc0Y zY;N<8D4Ey34<=Y0e!uYKPkt?!veKfW)V$=%;MAN{sOrV0)6Ab$YdHti{{0*f`1)$Y zOV`s-)viTF`9)6orFkidMU`OJnr(BM`s8?UWZ;e_*#N=H)jYfA_&^nV)m+t2 zF?{uR)k$YBk&c%=-eUjf&8~r~DfcW1&o9a@2CGb8Hv9hNz`YK$tT+Rs57(?d;km69 zsuJRB|Du%CBCyh}_K&MRzM9B+ZgcW1R z7iZI^TrUe+^4r%_O+!gh@unG6c}P)afpcO`a%oOtNj}7IyJx?b=T=N~V0y+r<2pnC yX%2?t5>VBViOCry!KsNw$r)gGd@-ES72oO>hcg|4& literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/bc/c94668f2ce3e40696be620b5bb981c81b94e97 b/project/.git_disabled/objects/bc/c94668f2ce3e40696be620b5bb981c81b94e97 new file mode 100644 index 0000000000000000000000000000000000000000..96ff2e8a4d85082499e6a6ab2e4b4bad5491319c GIT binary patch literal 6076 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 CY`s_j literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/be/bac89496a3f6dd1ab7c4a3d4cb6e0f5cbd343a b/project/.git_disabled/objects/be/bac89496a3f6dd1ab7c4a3d4cb6e0f5cbd343a new file mode 100644 index 0000000000000000000000000000000000000000..94dc1759de2aab8dad8bc7e34e4d4f2fabffa6c8 GIT binary patch literal 533 zcmV+w0_y#E0gY2jZxb;P=DfdRv^lf|b{(}GN=YL@no0z=1~L(a)`2-neQ>*?6NUSczbdFq6Z&Z)ks(bzQXKwKAnIz60gqt1#hg<2=5oL zj4fIAWjg|fFmpz>A}GRtZfT|T z_Np`V2UA21iKB96lL$K^vOxPts*57luDk!EcP16-W36}0*W4k~5uVjy(;UD>>jMF% z3J9YswMsTnKPYGP26X^0oU%JZsj-ZWz%Ym%WPC0qlUVV#38~y^BAC+Gz@!mtbOoWg zM{AT0)cvMU&#@fEO!yj;t-px@wc}AvlnvO13(DTO#Gxqe zZ5j6f!O$Iurj-ZwqT2#xzc(J!_b8!IaKZ*PayeuiegJ(2-EP1;ah)^Lew@yS1J+fC zC;twCJ=5{@1So0)`7Ngdm7T786akK)J3T;==W%D_tu-FO8W-T=vfqbOQFFbb>2xHQ z{j+TRbv9j$Q#DS|sZsA;JOgs%9?-#QJl9G-WU}FfcPQQE)6M&?_mfUN&EfCVV`(sBZ5Mfyq!?GV@YWEA*0!iy5{albM<>__J||+|=)XJ}|eKo!_klRg{~U znFn^u_G?Ej>$z#(xwY#~Rx`uI^+|`9|AE+6l3HBCApLohJKv4ciT_&OJJZazE>7{@SGTBh4_m_L`tQBH@OO?XSUaw%j6AS=qmx9Le CWtzMI literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/bf/0f362ab7eb0fe1ce44afabfce3f0ca3bceb5e5 b/project/.git_disabled/objects/bf/0f362ab7eb0fe1ce44afabfce3f0ca3bceb5e5 new file mode 100644 index 0000000000000000000000000000000000000000..4ad58d8ce802ab3fba2d8120dbcb358eb34144e6 GIT binary patch literal 223 zcmV<503iQ(0hNzEPQ@?~gsF21cdtMs{@Jx-gb){ahp^*a66qz5lFj`wAkouIF`7>^ zGu3rnL^*4o_F=X#_0w(DCMzBm(2B0_avg;)}|j1k~33( z*2g7F-OhJq0*nzY8dT2>)!p>-M(Dp>ccNJP2v0P%z5qeJYN zT?gO!Y-HEhve~Do+S`2WV}iCGm$pp1j?256wQ19 Hzc@rKi+oNo literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/bf/f8c370e531596abd134fa788c4a94cbb976398 b/project/.git_disabled/objects/bf/f8c370e531596abd134fa788c4a94cbb976398 new file mode 100644 index 0000000000000000000000000000000000000000..3967a32820e2ee23d7c8b472daf9f2bc2b0e93bd GIT binary patch literal 6486 zcmV-c8L8%Y0qtGuZW~9I-rs(TijW;rfk;u5tg#hJ14p)Jf^o(|?Ci|KFpws@DfXn< z&FOCHGK&7pqwbUJcj|s?igKI{uoxk*#Aem0s&l_pXIfNKHa zc8}e$b(6holQ!F3E)w$H&?9@Mtu8espj+8jlX29vmgpXJ*A2Hq>Ts=kq3O-_|(X9=pui z3t(_w6?xU@rH8})WR>q<*I9X9##+S3(^C|^CERZZ|?2qp;e2?iR z)X;hIL{6BVS2b{?7UkPkAHLyxu(!T$^P<@|(;c8yInOU6qxo}t zB#4o|#KATra0t{WU%>t1@eo z`u4@LT9@q~?60cwn`HLW3G45&(=&EeTt8~u&efBPy zXT>d>kwCG0uBRqt%80HkyUCjtWAR=83kCS+pPBl5NTYT++8C>|c3qcjBIJ(Eilk}& z0$DiSX|tPlFfG>E;OS_z!}iYzO~3(g#m~XlI#tVapu@I$Q(b5EdD3M4T^f)7n(Mrs zEm+@Pb%p_~m*zF`Ws=uG{|fuadMB7bKWbZ2>Vti)*7d4zc19#5ptNKBSx>7nfW}ox z0Lwq4f&`h%u9Im2jFwq_c^iU*CJLZkf`dyNWeOa`Dr?$01fx{lHlWgMo~(=3N7L5S zyNCQ_H(Za;*X4|qqOC!|i6lvTp8V`FAvAlQm`HXd{v_rUeDR@xF3-!$JqFE3dL4g% z1eYsw(Vr(plX32l6EfHVs7DNcMSt0YC%_oyLk`PzQJnSZUwdk^p3Slb8^+{!;%|F; zxK<@pu~N$R;EAPK-;*G9Eh@DgY!SdH)#yM{4@qO6^?N_Od)c#hP59?lfJ4v<+X11U zc5XxBSr6pEB*OJW8)m<)*AC*FtbhP!sZ>b*I>A70q$A0%$o-C(F}jY2Je+R zg9a}0%SAh_ZdgO^k74}JicWylZdG5{DuFhx)*(4CtwVAeUaayzXSYh9L*Gg<>i5pM z7E}mnvid5A(aakr7`TNMS(nKb%qnTQA-gCtQlVIuRcq+vs%+tOaesgiTW9}RLxV|p zEyQvtxSEKGRejd8gpWoDl}<*1%n1EE&tModrwW5{zsEj&1g@U|&kL9|Xx~>2tV70r z%5G^Fv!cTO6bYWha3s`9RRS$!UBM*yYg#3B`sxb)l{TirL}o*R41bUH#7ezgu1#Dy zFq#J{R7~{9ttgOIv-J|o43ku>_Xg&eEJ(kHh0^M}?2$gjmN-ihDx|fusjQ*Y*|NII z_{JXq1Rn#)^LE8?sZ_IzaNs6sZp)eUgamiNKuOO)O-hPF)2N|2*Gb;GzN{b}k(ASw zyD8k^=l+ROb`67TkjcYlsT|7L*)JaYic*lInW=cR$M$I1%KKw6S4C3Xe(M(td%nV6z6LGuRga3S!p?VM#&=WV{sdb@H4=PipOgl2E6 zHYVvT6?8yRUG{q)EJOH_y@m&!vI`G03|`%Wef#nR%jSf0=BD=_vq(tWfywmn_MHk7I5PUa`l!?Bt^8DQ>_Nzn3i zQIkQ3iPL9B_^9-sW#()=!mj>NX*)iBmDPkL;Sq5qs31sDl6sB?Uu5-r3`NwZ#tc{1 zb11BXXJ1p0s)Tn6ha!cwV}Hfg8S)#HePORjqadwQ!-I1cLC6kOth{HeV|^02hraM# zX2N)qf|JHm$bp*Lx3&c)aKK8U$BC=729HVlJ#JTIMua>bb8rN{KnSTn5?ZCm;+r{m zhR8{0ScV7(b~%=QSfxNm$`BD1QzRugE)30q$8(vMfJY|W+F1onD3p{#E3q8_5Y!T* z&uQ?f7tE1aF$}~0z(s_8WjzaNy30=32!{lG<*V?$PDH|NnC4f?R9P8>>E+;hk%Qhf zDdsF46ql@7ByfQSHw9Y_p0QD?WxR>>@H;rWmD z82&vRv3sF38B0Vm&lz>VM_Gf~Iw>1Kt4bP|u4}F=0d9B<(t$ls*oV<@jFcm$j)sSL zdhk)LaVGbp&N*GT5Ec25fv>^Qv!71yM0l+B1tOR<%Dl*K7?7}R1~YhtBy5yexvZ1h z!SQIs7Vz%s6Z7mjo-Lk&tq{Hj z9B{N_rZbtOVgF5m*|&&=XO!U+Ka>5%*bJSlf`uS<20D1o0St)9*0W?FXf@Oe}8 z{6GKtm$mpxtvyln1EDnW?zkdlzxy5g0-DK(|Bykt*`tgo{k|?mJV7Cj!DFxIS|2Ti$i+@9A%0`4YC1-OnfORs4kg^BIh!0 z{-GhmAt^`3L!XsKfog{ebMzTcLdx-lelIjaxX@eh0%3-1DvT^Q5Zp*vp*|E3Y&D{T zj$nVD7X_ky5&n=3Wz!5n4s%j&jZrt_VD}LaU1Dfoa4=B+TJjJ)&+Ll08oBi0kaIG!2t3t^ke@rEL%t4Din}r3 z7Ey###8x+hBeuF7jFoP)blDu)rsjll7A@mhiElk&fSmF%?UFl ze_uCkKEG9o6BFc(gik55OYn>i?eNZo>4RBSR5cZMBg`SUh9I;jb4=*kpfp`m)q}EX z2T00MwWo*NS5IVV)CLek_X3FbKl-N(T~>t;C-PM|g{vFRpf4v>Sw(l8?QP54*PvOU zUbP|HVt_OD4$%hXFu#`p$8Z=Ng52$J6O{flk-7odBZw+BA)$td3B26NzRK_zP_!`l z-S*<13+jBNEs4~^rX&Ig22Y>p>ShJ#VUQF!5_vag2VR;XWKj_}-5}d#&%VK}JZ4^m{GgB`-A<-QZLWTy;eVnl*u6W;hPWl9a= zlW;l>$E!$8rUS6?FDyaw6FU)7>f|p^^tz10Gkk(V3$%Am(M?7@ zcGTsBB#)#b;p%os*}xu4Y+X@i=S=Jm1@6f{jdXVx1;EcNQXUXePC}F*A*ZqVj(ie0`uUZP zBAQ@7@gNr8h)pua6C|cXxG#>H@K#$SMo_{_**=48+f}a*Vw5W1eGIGu3G8o;sq?qU zZA*jpiTIL)r@FJ~IQ#8SrAxxU>`12OOX;lb`8r_r@Il1O?5wR37h1+Z`DAEPcAUZ+ zB>8#H%+g_j7l%Z#st!tD(ROBCneVJy(S|~o#yKPzVCipaVmLnFM#-0k*eN37Xa}w? ze9%keMqT9vmG2Q+O|-8pySylPv_m~-9|FPzPSf4gmoN+xtM{pXx&wPX-VK^ou`ccArWc@2W*+1n2%#tTv{Iw z*=3?#2@lU5rEXJCRf~6&x?=;4fcxeDr&i7OFq~?$qFC1=lSbzMf@7Z&h&*c_wc@s`*cxyJiAIhr7b`Xecr>P#~s;X zOPNEF+$EyDNIcJ~M|5|vDkBEc)Q6F#NKlMC-Em}DWX1iXOOo(nVMMqV2tE<__rt4PnykG2eC$5NZe;x7#bJ%i+wpnXqR z5r3fiJn@|g?nj_J?D!KRT2zr!U=$QEm^r0tht>wZqDW&`U-UTGz5mZn5WZhxK+|7Q z(Iwx`N~O3nG(ynVc$xiB7n{)G^I(mRp_bzI#o%zv`OS{Esqt!#1ms|mr)e~TRa=?l zOSiQ|eIb4~^-MF=Q0>!oF5C%8fd&nSVLI{YSfgZ$7VTp6TcrA$O(*KywA;0(sH1*|Eh^pPf$Q#YVuSN*c@7VoWfShBf%wQ$ zn7$L+;l3JI&+2AXr|oDcR^DXj8ybgYlk*y^6n6*j_P^5i+R(F|CI$Oy-{s#s?{-(r z+(?H`ok{$*aZL9iwT}KLrFpy2E>jO2>(sZ4KTNUANBK4`BfsL|9*W#!cek*)!YlP3 zTgTAW6I&8_0Y4$Yd&?2~xUJip z(Mxp34N;7U>DFn(M#*h)d1%*QAhTHDW_TmoIKH$D|I4{2QyJeMz_7DUS zjuoVv`Wu}MKK(3UG3sFG$YJwEyPW=Q4nl62o17K6eE2lm`%vOoUk2yuaD%#igAUIi z`Z)5?)3?kLBE@w>A$v|KBMcGeDOEbyITK}E zx})=!U-jr<&4(0b$ITvI`i$`yaUPEDA{h@obZn{6A3CHF!34f+zNgM|~kK z$K=QcB1mW)1To86Q#~zu=Vewg9f&!^ezq>Zj2@awOxcYK5%2 zMt08LS1n>7!c`~z9}Cjbh@@`BPtec6#f#RBy!^~)=%MOm2!mvT8^=FAk4aPbFc{}5 zd+Q`hw@1Pd9exBC_}v)nfsRdMBy_i?G23q4otiQEg%v9tGg`f~BlB~1WBQ$#zp1VI zy=$xdd$lUJFdSL;Mg?2)lGZ~NDpxIU=r4`x>!@SanW}oQ!(fX(RD{>m%7*3vT#mAM zSV&AD8L`gO9xhl?mz!!l<(*n?+o|I`X}J;dVK8P|U1=GL!};s&Xe*S9!B+Wu6W^%U zJ$>ipWF{}%w@DhvzE|#tp-N(LUIzz8&UWUXkfuRqz>N~4obNMa)IIYD;iZD83fR~2 z{SjK#Y@g{c2vazxCYux)m>~1jg)t|N)=3gof#6E&!MxR0Sc9zES`JJ zW$WN?slFP)p08+in$Fj_Vg=s_Y9Uz+j?w;~o-78>MuzD{=~d&Z#S2U#-Y^c-l}r4D zOyVQ+h!(YV7BMKdx<)~u!c#$U{AdQU6e{>4rPmY>+G>E81LAeh$lpN6?xT=EkEn-Z zg$r3_yA#h&`b5x+Oe?%yWr?hIfpC9jXC7RL+5i%$NXP};qS_(6P+uSe zOT^+F$7d2rfK6>4-Ax`|vbZDZPJ4+5&HQBh&*?^p2a3OpmrBmPSLIb+S0%lV5TTUx zXnGs+o>(jlMI>{?zle@^959-`LAGCt>SaW_ef%R86=8P6zXSE$iam6Sv zGW@zsCG!5EdX@B$%EAlW zD8-u|k5c1LIjYAAXAw#47#r|>xH*M@n53aGET1D;O9;aM zS)xqw#@^kyBNvK;O2;3P(u_-fgje)-Iyog=sk>XE`?i_ly|^Ve`u2_Fj|~Y=0V)7w z6-BMC0GO$Wd!SCe(GS4EyF@O^6SS{Dx5h}?MNtCa%jK_$>;JOYjVXTnbrBy!$7d!& z2hk!z97?ONN$`Jf!Hed;%TR}z@e3sz2MlM``1>qf&(L0^@0So!-5;OCJV(R-FB8Am zj`7N_dB>D^Pac!|?^b-FVT{)cRpB_|gNh>t?C&7Z!ViDRXf#6TR5o}s wJ>5UVO>aVCKp$G9;}qLcJu*(GN4?~0{JG|%$$m8Z>CeJTL+_vbFJ~Yy;%tAx$p8QV literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/c1/02821778a4fc2b06e4e9c4e5266e02507f6c81 b/project/.git_disabled/objects/c1/02821778a4fc2b06e4e9c4e5266e02507f6c81 new file mode 100644 index 0000000000000000000000000000000000000000..e748482abb5ebe63a735b1bff8bfc598613a33e6 GIT binary patch literal 58 zcmV-A0LA}!0V^p=O;s>4WH2-^Ff%bxNX<>m%+V`JEiTb3DP~xv_9^7g))#vj%QLRY Q)P{r|FtN@80GfspifVNiO8@`> literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/c2/9b15cd0bf4be414a63b0f01d51fa4ecd5a15e4 b/project/.git_disabled/objects/c2/9b15cd0bf4be414a63b0f01d51fa4ecd5a15e4 new file mode 100644 index 0000000..6d90fc5 --- /dev/null +++ b/project/.git_disabled/objects/c2/9b15cd0bf4be414a63b0f01d51fa4ecd5a15e4 @@ -0,0 +1,3 @@ +xA +0E] DHF)x|7pW=~2eNV +C^/9c*y ZI%w|$HH9R8Pa1qW#r}KS]͒B9zfl>h D@ \ No newline at end of file diff --git a/project/.git_disabled/objects/c3/d0d185cfb2f49bfcbe62b72c69bab7d03e92c3 b/project/.git_disabled/objects/c3/d0d185cfb2f49bfcbe62b72c69bab7d03e92c3 new file mode 100644 index 0000000000000000000000000000000000000000..2715b425c03295e6613c25ea4299523c1e846784 GIT binary patch literal 60 zcmV-C0K@-y0V^p=O;s>4WiT`|00M>bqSQRy#DYxSlG2j=qRhk`hUM1NjwJ8YX4RpsD^UP#7|TGsg%vSKP{EY2G8QFe@sN|X!kN^HF>{r1T~>$2PD&Z4v4gap9fW3Z z?bOmDRKJafk{Zt_V#uZH$w_W3H5`h@xWb~VLLEEIcdev|XX*@Uz|Kd=8XV0_Rn|Cc zBsPHH*=$rmP;ICuCBxREK)^0!-YVn9Z7BlEduz(rF}Z9lwq4z zodyOS1l|^jKsagHq$Pvwke%C9AT2YvN`u^yuS776?EkC(=LP&Yd$yK7j;;5u>eqfS ztoq8VdQ(y_o9g+=1jR^`z!L=bqh`~S^DA literal 0 HcmV?d00001 diff --git a/project/.git_disabled/objects/c4/64e59be78fd65a3f17cf89dbf60063c57b650e b/project/.git_disabled/objects/c4/64e59be78fd65a3f17cf89dbf60063c57b650e new file mode 100644 index 0000000000000000000000000000000000000000..901b415c062918849e26f933324ca8b5e4a8185d GIT binary patch literal 830 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