From 3fffcb9144df7ea84a3ef54f0341292823232250 Mon Sep 17 00:00:00 2001 From: VISHNU Date: Fri, 17 Oct 2025 12:15:51 +0530 Subject: [PATCH] migration added to transfer projects to bihar program --- .../input.json | 1597 +++++++++++++++++ .../transferProjectsToAnotherProgram.js | 480 +++++ 2 files changed, 2077 insertions(+) create mode 100644 migrations/transferProjectToAnotherProgram/input.json create mode 100644 migrations/transferProjectToAnotherProgram/transferProjectsToAnotherProgram.js diff --git a/migrations/transferProjectToAnotherProgram/input.json b/migrations/transferProjectToAnotherProgram/input.json new file mode 100644 index 00000000..28466ca4 --- /dev/null +++ b/migrations/transferProjectToAnotherProgram/input.json @@ -0,0 +1,1597 @@ +{ + "userToken": "token", + "projectserviceApiDomain": "http://localhost:5000", + "debugMode": true, + "projectIds": [ + "68389a7b3e09080008094076", + "683a7a923e090800080dcb40", + "68393c673e090800080ab43a", + "683908d53e09080008097519", + "683a67013e090800080d66dd", + "683a82333e090800080df18d", + "68380b3b3e09080008079ea9", + "683974493e090800080be1e1", + "683c84323e09080008107084", + "683882143e09080008090cac", + "683881bf3e09080008090b94", + "683a88b33e090800080e0fdd", + "683a60323e090800080d4aff", + "683a749d3e090800080da94e", + "683a981f3e090800080e50ab", + "683a58d63e090800080d3302", + "683a5cd93e090800080d3f50", + "683a89ff3e090800080e1579", + "683947cd3e090800080b104f", + "683a3f773e090800080d20c2", + "68380d873e0908000807aa6b", + "683a879d3e090800080e0a83", + "683c29013e09080008102cd5", + "683a87b93e090800080e0b0b", + "683d872d3e09080008115141", + "683974b53e090800080be367", + "683888013e09080008091bf0", + "6839277a3e090800080a0f2b", + "6839b1ba3e090800080c8d75", + "68389b2d3e09080008094116", + "683936a93e090800080a83a4", + "68391dab3e0908000809d37b", + "683ac20f3e090800080ed2e0", + "683a78943e090800080dc157", + "683906dc3e09080008096e87", + "683913993e09080008099fff", + "683b24c03e090800080f914b", + "68391f233e0908000809dbf8", + "6839b8bb3e090800080c9f1d", + "683a8b573e090800080e1a44", + "683827733e0908000808034d", + "68393d843e090800080abdfd", + "683e7b853e0908000811f2f1", + "683946b23e090800080b0735", + "68397b363e090800080bf75b", + "683a771c3e090800080db8f5", + "681c7b4c3e09080008d6230c", + "683954f03e090800080b6e39", + "683911953e090800080996ce", + "68391fae3e0908000809df4c", + "683932d73e090800080a6597", + "683814553e0908000807c490", + "683b16153e090800080f73f6", + "6839914c3e090800080c366d", + "683a76363e090800080db329", + "68393d7f3e090800080abdc5", + "68393f153e090800080aca14", + "683854ca3e090800080892dd", + "683c79253e090800081069c0", + "683a5f653e090800080d481e", + "683a5bff3e090800080d3c82", + "683a7dc63e090800080ddc20", + "6839fe353e090800080d1743", + "68390c663e09080008098281", + "68380c743e0908000807a4ac", + "683c7f303e09080008106d24", + "683b313e3e090800080fa63a", + "683913b63e0908000809a096", + "6839291c3e090800080a1ae7", + "683a6e783e090800080d89a1", + "6838ddf43e09080008095358", + "68386c583e0908000808cb74", + "683860c03e0908000808b116", + "683950f83e090800080b544d", + "68390ff63e09080008099079", + "683a628c3e090800080d539f", + "68393a0e3e090800080a9fd8", + "68380a3b3e0908000807997a", + "6839ab193e090800080c7ee0", + "683a67f23e090800080d6b97", + "683939343e090800080a98dd", + "68385fef3e0908000808af35", + "68394c6d3e090800080b326e", + "683a5c993e090800080d3e7b", + "683858bf3e09080008089d10", + "6838238e3e0908000807f673", + "683941b53e090800080ade51", + "683a954b3e090800080e4414", + "683aec063e090800080f2731", + "683a2a4c3e090800080d1c5f", + "683a60b83e090800080d4d25", + "683949433e090800080b1b2b", + "68391fa33e0908000809dee5", + "6839cb7e3e090800080cce04", + "6839295a3e090800080a1cb2", + "68390a283e090800080979c7", + "68389ce13e09080008094309", + "68391a913e0908000809c272", + "683a67a83e090800080d6a35", + "68385ed23e0908000808ac5d", + "683940103e090800080ad209", + "68391af93e0908000809c475", + "683a81b53e090800080def63", + "683930b03e090800080a53d6", + "68391d603e0908000809d1d2", + "68391a423e0908000809c0cd", + "683905443e090800080968a3", + "683b31303e090800080fa611", + "683a78923e090800080dc149", + "683a5cba3e090800080d3ef2", + "683b315d3e090800080fa666", + "683bae723e090800080fcd69", + "683a74093e090800080da51d", + "6839ca823e090800080ccb95", + "683923ae3e0908000809f695", + "683a8a373e090800080e1654", + "683a661d3e090800080d624a", + "683a74d73e090800080daaa8", + "683a6a8a3e090800080d7850", + "68392bda3e090800080a2f42", + "683947b63e090800080b0f5f", + "683bab9e3e090800080fcbec", + "683a77153e090800080db8b7", + "68394e023e090800080b3e82", + "683845743e09080008086626", + "683912af3e09080008099c05", + "683958723e090800080b8089", + "683877153e0908000808e929", + "68383fd43e09080008085360", + "683af9d93e090800080f4236", + "683a635a3e090800080d56c3", + "683925343e0908000809ff7a", + "683947ed3e090800080b1186", + "683aec8a3e090800080f283d", + "683824b03e0908000807fa92", + "683a5e0f3e090800080d43ad", + "683911383e0908000809955f", + "683a9a683e090800080e5a6b", + "683918f13e0908000809b9fe", + "68390ee33e09080008098bcb", + "683856363e0908000808966e", + "68390b3e3e09080008097e2c", + "683a988a3e090800080e5267", + "683923183e0908000809f325", + "68392a303e090800080a2317", + "6838aabb3e09080008094d69", + "6839454d3e090800080afbea", + "683adf2e3e090800080f0dfb", + "683959ae3e090800080b8489", + "6838770c3e0908000808e8fc", + "683916ac3e0908000809ae90", + "683a8dbf3e090800080e23c9", + "683850ad3e09080008088769", + "68396d053e090800080bc8ea", + "683aa4ba3e090800080e84fe", + "683921443e0908000809e7cb", + "683999ce3e090800080c5046", + "6839765c3e090800080be8c7", + "683a00203e090800080d180b", + "68393f0a3e090800080ac9b8", + "683a59b73e090800080d357e", + "683888e23e09080008091e5f", + "683920fd3e0908000809e658", + "6839a54d3e090800080c70c2", + "683a65143e090800080d5dc4", + "683861f13e0908000808b380", + "68382adf3e09080008080f2c", + "683c35173e0908000810360a", + "6839c1203e090800080cb52c", + "683925b63e090800080a0344", + "683868623e0908000808c25d", + "683869193e0908000808c40b", + "68387c6d3e0908000808fb0a", + "683a6e763e090800080d8990", + "683a7c913e090800080dd626", + "683a8ab73e090800080e1852", + "6838e6d93e0908000809550d", + "683a6ab33e090800080d791d", + "683932fa3e090800080a66e7", + "68393ff33e090800080ad0ee", + "68394dae3e090800080b3bf3", + "683991b43e090800080c37de", + "6839b3d53e090800080c9327", + "683998853e090800080c4c28", + "683930cf3e090800080a54a2", + "683edf213e0908000812880a", + "6839fb443e090800080d1627", + "683a62343e090800080d5257", + "683996333e090800080c4540", + "683c62683e090800081058e4", + "6839907d3e090800080c33ea", + "6839533b3e090800080b64d2", + "6838aa073e09080008094cd3", + "683948cd3e090800080b1783", + "683934513e090800080a715a", + "68394fbc3e090800080b4b75", + "6839176b3e0908000809b20f", + "683c66593e09080008105c43", + "6839c5ab3e090800080cbfd8", + "68381f963e0908000807ea91", + "683a940c3e090800080e3e58", + "683904fa3e090800080967e3", + "683922da3e0908000809f1b3", + "6839315c3e090800080a5941", + "68388b613e090800080924b9", + "68392a483e090800080a23d2", + "683903443e090800080963d2", + "68394af73e090800080b2785", + "68395b6c3e090800080b8a35", + "683944253e090800080af208", + "68391a713e0908000809c1e2", + "683937f13e090800080a8dd8", + "683d1c883e090800081096f4", + "683871973e0908000808d866", + "68388f0c3e09080008092c8e", + "683931303e090800080a57c3", + "683aed6c3e090800080f29fb", + "68393e243e090800080ac29b", + "683854d33e090800080892fc", + "683837af3e0908000808381c", + "683923293e0908000809f3a1", + "683ab1403e090800080eab6c", + "683a58b93e090800080d32ab", + "6839bd773e090800080cabde", + "683923413e0908000809f437", + "683abc313e090800080ec596", + "683ae8ab3e090800080f2092", + "683a59153e090800080d3394", + "683875c73e0908000808e500", + "683a83143e090800080df5c0", + "683ab9a83e090800080ebf72", + "68384a023e09080008087448", + "683a70083e090800080d90c8", + "683b03aa3e090800080f5237", + "681c80693e09080008d62979", + "6839452b3e090800080afab1", + "683a74863e090800080da8aa", + "683a71363e090800080d9731", + "683975ba3e090800080be6a6", + "68392ef33e090800080a46cc", + "683af4f23e090800080f39fe", + "68392b703e090800080a2c24", + "683ae12f3e090800080f11db", + "683916bb3e0908000809aed9", + "6839447b3e090800080af4bf", + "683931253e090800080a574e", + "683a9e243e090800080e6a05", + "68388fd23e09080008092e2b", + "68386db23e0908000808cece", + "683aa6de3e090800080e8df7", + "683934723e090800080a728d", + "683acca03e090800080ee91e", + "683927c43e090800080a113a", + "68393d503e090800080abc04", + "6838754c3e0908000808e343", + "68398e883e090800080c2e37", + "6839220b3e0908000809ed2d", + "68392cc63e090800080a35f6", + "6838762a3e0908000808e64c", + "68392ed43e090800080a45a1", + "6838656f3e0908000808bbdb", + "683a5e443e090800080d447c", + "6839b0643e090800080c8a57", + "683897253e09080008093c25", + "683a78793e090800080dc0d0", + "6839845d3e090800080c10f9", + "683a66673e090800080d63b9", + "683896523e09080008093aa7", + "683a74093e090800080da539", + "683a5d4e3e090800080d411e", + "68390a9b3e09080008097ba8", + "683879383e0908000808f010", + "683927f13e090800080a125e", + "683837793e09080008083767", + "683a72f63e090800080d9f3b", + "683a97b83e090800080e4e81", + "683822ce3e0908000807f3f8", + "683914c13e0908000809a581", + "683947a33e090800080b0ea1", + "68386e3a3e0908000808cff0", + "68390b213e09080008097dbd", + "683a81493e090800080ded51", + "683838af3e09080008083b94", + "683a84973e090800080dfc4f", + "683a67073e090800080d6707", + "683a53a03e090800080d28ee", + "6839d07d3e090800080cd9c7", + "683b42153e090800080fb8ba", + "68392a183e090800080a223f", + "6839264c3e090800080a0736", + "683a757c3e090800080daeb6", + "6838e4613e09080008095442", + "68391e013e0908000809d572", + "683a5a873e090800080d37b5", + "68393d2e3e090800080abad6", + "68390b643e09080008097edc", + "683864b13e0908000808ba0d", + "683a81323e090800080ded11", + "68396ba33e090800080bc38e", + "683a7acc3e090800080dcc4b", + "6839360f3e090800080a7f1c", + "68392dea3e090800080a3ebb", + "683bc93c3e090800080fdf11", + "683ac7c43e090800080edf6c", + "681c7ac63e09080008d6229e", + "6839d7643e090800080ce8cf", + "683a84793e090800080dfbb4", + "683a64353e090800080d5a74", + "683915b73e0908000809a9ad", + "68391aad3e0908000809c31a", + "6839105c3e090800080991c6", + "6839311a3e090800080a56fb", + "683ae88b3e090800080f204f", + "683b1c613e090800080f8166", + "683a815e3e090800080dedb3", + "6839033e3e090800080963b6", + "6838411f3e09080008085811", + "683989713e090800080c1f57", + "683aa0bc3e090800080e73d7", + "68390fe33e09080008099008", + "68388d1a3e09080008092875", + "68385a803e0908000808a1ba", + "683942913e090800080ae4dd", + "683930233e090800080a4fc6", + "68395e633e090800080b93cb", + "6839cbeb3e090800080ccef0", + "683917b73e0908000809b3b9", + "6839859b3e090800080c1503", + "68394b6a3e090800080b2ad5", + "683a61233e090800080d4e59", + "68380ec13e0908000807b02c", + "683b04d23e090800080f5435", + "683ac6b03e090800080edcec", + "683a7c043e090800080dd31e", + "683932e03e090800080a65f4", + "683923ea3e0908000809f824", + "683a740e3e090800080da553", + "683b3fec3e090800080fb6f4", + "68398cdd3e090800080c296c", + "6839b5913e090800080c9785", + "683966553e090800080bb0a5", + "68397c773e090800080bfba8", + "683afdbd3e090800080f48a7", + "68397aac3e090800080bf59d", + "683a71923e090800080d98ba", + "68395e783e090800080b9434", + "68390e9e3e09080008098b1a", + "683a37ee3e090800080d1efb", + "683bbc153e090800080fd55b", + "683808563e09080008079064", + "683b24843e090800080f90a1", + "6838e5283e09080008095475", + "683abc4e3e090800080ec5cf", + "68384c9d3e09080008087ba7", + "683a7b2c3e090800080dce40", + "683926c03e090800080a0a46", + "683867d13e0908000808c0e8", + "68394bd33e090800080b2e4c", + "683992843e090800080c3a5a", + "683825323e0908000807fc38", + "68393acf3e090800080aa699", + "683941443e090800080adb2e", + "683a76953e090800080db578", + "683942d03e090800080ae728", + "683aa77a3e090800080e907a", + "683a65fe3e090800080d61a5", + "683853543e09080008088e7b", + "683993a23e090800080c3e01", + "683823d93e0908000807f7bb", + "68390d183e0908000809856b", + "683826863e09080008080037", + "683a7af83e090800080dcd55", + "683876a73e0908000808e7ab", + "683abf243e090800080ecbf0", + "683afb493e090800080f446e", + "683837fc3e0908000808393f", + "68394a323e090800080b21dc", + "683844933e090800080863c5", + "6838099a3e09080008079692", + "6839afd83e090800080c8902", + "6839a58f3e090800080c7166", + "683a78b23e090800080dc1fe", + "68388eee3e09080008092c4a", + "6838102b3e0908000807b60b", + "6839e0113e090800080cfa39", + "68397c2c3e090800080bfaa2", + "683928ec3e090800080a197e", + "683930393e090800080a5070", + "6839d1533e090800080cdbe3", + "683916b83e0908000809aec4", + "683812e23e0908000807bf69", + "6839654a3e090800080bac38", + "683a439a3e090800080d21fd", + "683b12983e090800080f6cd8", + "683b15913e090800080f72e6", + "683818483e0908000807d207", + "683f1c933e0908000812c2a3", + "683921bb3e0908000809eb38", + "683a76923e090800080db563", + "683e8d063e0908000812146b", + "6839b9fd3e090800080ca22e", + "683a75b53e090800080db029", + "683932db3e090800080a65ca", + "6839299e3e090800080a1e7e", + "6838fb0f3e09080008095d14", + "68396cfe3e090800080bc8c3", + "683a93553e090800080e3b0c", + "68384ebf3e090800080881b8", + "683aa57f3e090800080e88ba", + "683ed0443e09080008127506", + "683abb733e090800080ec3cd", + "6839840f3e090800080c0ff3", + "683840de3e09080008085735", + "683875973e0908000808e446", + "68398b943e090800080c2585", + "68393c2f3e090800080ab24f", + "683a72a83e090800080d9d78", + "683b35943e090800080fabc3", + "683929743e090800080a1d55", + "68393c2a3e090800080ab200", + "683eb6433e09080008125369", + "683812d63e0908000807bf3d", + "68399ec33e090800080c5e96", + "68396bc53e090800080bc435", + "6839406e3e090800080ad4b4", + "683943e53e090800080aef8f", + "683af3563e090800080f371a", + "683a78313e090800080dbf17", + "683a887e3e090800080e0ecd", + "68392be53e090800080a2fa6", + "68392abe3e090800080a2721", + "683a84373e090800080dfa5d", + "683896cd3e09080008093b88", + "68391b123e0908000809c514", + "683a14f93e090800080d1acf", + "683931ce3e090800080a5d82", + "683907733e090800080970d3", + "683a5d473e090800080d40e8", + "683a47de3e090800080d23b6", + "68386c653e0908000808cb9d", + "68384a303e090800080874e4", + "683a95403e090800080e43eb", + "68399e083e090800080c5c59", + "6839382e3e090800080a9003", + "6838757a3e0908000808e3de", + "683a60553e090800080d4b8f", + "683a6c623e090800080d8047", + "683acde93e090800080eec30", + "683932223e090800080a601e", + "6839571c3e090800080b7ad2", + "683934d33e090800080a7576", + "683997133e090800080c47a6", + "683942bc3e090800080ae687", + "683aa92f3e090800080e976b", + "68393b5e3e090800080aaba3", + "6839624e3e090800080ba0ef", + "683837853e09080008083798", + "683958633e090800080b803e", + "683816473e0908000807cad4", + "683882443e09080008090d15", + "683abdad3e090800080ec8b2", + "683ade1e3e090800080f0bfa", + "683917d83e0908000809b456", + "683906583e09080008096c69", + "683906903e09080008096d5d", + "683afa3f3e090800080f42d9", + "683a56323e090800080d2bd5", + "683887653e09080008091a33", + "683866823e0908000808be43", + "6839d6863e090800080ce6a2", + "683827993e090800080803cc", + "683a69ba3e090800080d7455", + "68398e4f3e090800080c2d90", + "683894ae3e090800080937bd", + "6839c3ab3e090800080cbb49", + "683c2ffe3e09080008103231", + "68392f713e090800080a4a87", + "683bfccf3e0908000810099f", + "683badbd3e090800080fcceb", + "683a92b53e090800080e3881", + "6839156a3e0908000809a81c", + "683936943e090800080a82e6", + "683941f13e090800080ae025", + "6839254b3e090800080a0036", + "683bb1c23e090800080fcf8b", + "68393d973e090800080abe7d", + "683a9c553e090800080e6299", + "68393a6d3e090800080aa324", + "683969343e090800080bbaee", + "683a77703e090800080dbadd", + "68388e2e3e09080008092aa5", + "683a80a83e090800080deab7", + "683a8c6c3e090800080e1e37", + "68392ddc3e090800080a3e47", + "683a9a0e3e090800080e58e0", + "68390b973e09080008097fa4", + "6839b4c83e090800080c95a7", + "683bd4473e090800080fe855", + "683830fd3e0908000808220b", + "6839158e3e0908000809a8e3", + "683bf6e33e090800081004f6", + "683865f93e0908000808bd33", + "683b17d53e090800080f7837", + "683999e83e090800080c509f", + "683925d03e090800080a0424", + "683ae1dc3e090800080f1343", + "683854403e0908000808914e", + "683980793e090800080c066d", + "683840883e090800080855dc", + "6839128b3e09080008099b50", + "6839ba6c3e090800080ca367", + "683871cb3e0908000808d8d8", + "683882de3e09080008090eb7", + "68391bcc3e0908000809c873", + "683a6d103e090800080d835a", + "683935363e090800080a787a", + "683bf70e3e09080008100525", + "6839c7843e090800080cc3ed", + "683a7bf73e090800080dd2cb", + "683934513e090800080a7166", + "683a5b2b3e090800080d397f", + "683ae5163e090800080f1a20", + "68380ef73e0908000807b11f", + "683aae4a3e090800080ea4be", + "6838787c3e0908000808ed87", + "68394b803e090800080b2b9f", + "6839dd953e090800080cf56e", + "683881aa3e09080008090b65", + "6839b9ec3e090800080ca1e7", + "683939213e090800080a9825", + "6839565a3e090800080b7681", + "6839433c3e090800080aea73", + "68393e153e090800080ac220", + "6839414e3e090800080adb70", + "683a75f63e090800080db1ad", + "68390f9f3e09080008098ebe", + "683d34633e0908000810c964", + "683ab2c23e090800080eaf2c", + "683b3dfe3e090800080fb53f", + "683a7ea23e090800080de06f", + "6839123f3e090800080999e0", + "683a67973e090800080d69d0", + "683937283e090800080a8715", + "683aeed83e090800080f2cfa", + "683a7da43e090800080ddb55", + "6839e5ab3e090800080d0305", + "68392ceb3e090800080a3742", + "683a75fa3e090800080db1c1", + "683957683e090800080b7c2a", + "68394b253e090800080b28ca", + "683841ce3e09080008085a69", + "683a8d583e090800080e21df", + "683a5eb63e090800080d4609", + "683a68423e090800080d6cfb", + "683941a33e090800080adda5", + "6839d7e23e090800080ce9f0", + "683935563e090800080a797b", + "68399e063e090800080c5c48", + "683d27483e0908000810aba5", + "683875ae3e0908000808e492", + "6839514e3e090800080b5706", + "68392ce53e090800080a36de", + "683a88163e090800080e0cb4", + "683a8a483e090800080e16aa", + "6839d2ce3e090800080cdf6b", + "683aa21a3e090800080e7920", + "68393c493e090800080ab325", + "6839bd1f3e090800080caabc", + "68394b3e3e090800080b2970", + "683820fc3e0908000807eeb5", + "683a737d3e090800080da21f", + "683abf603e090800080ecc92", + "683a82683e090800080df2b1", + "68394ec43e090800080b442a", + "683a58823e090800080d321c", + "68393a923e090800080aa471", + "683a9f2d3e090800080e6e0a", + "683a7d133e090800080dd8b9", + "683ada933e090800080f051e", + "683a81fa3e090800080df078", + "683935143e090800080a775a", + "683936833e090800080a826e", + "6839392a3e090800080a9882", + "683906173e09080008096b9c", + "68390e3c3e090800080989d2", + "68383b773e0908000808457a", + "6839498a3e090800080b1d7e", + "68394c7b3e090800080b32dd", + "6838a0793e090800080946c2", + "68398ca83e090800080c28b8", + "683949023e090800080b1908", + "683928573e090800080a154f", + "6839c72d3e090800080cc2d6", + "68390cff3e0908000809851c", + "6839bad83e090800080ca4a6", + "68391bb13e0908000809c7f7", + "68394fbc3e090800080b4b80", + "6838346f3e09080008082d2b", + "683a66f23e090800080d667b", + "683b08633e090800080f59a9", + "683ab9bd3e090800080ebfb2", + "683892d83e0908000809342e", + "6839901a3e090800080c32b1", + "68385f113e0908000808ad11", + "68392b773e090800080a2c71", + "683921d43e0908000809ebf0", + "683a7b553e090800080dcf5b", + "683858853e09080008089c7a", + "683b1b263e090800080f7e76", + "683a4a053e090800080d2481", + "68390e2e3e0908000809899b", + "68391e2e3e0908000809d67d", + "683a7a683e090800080dca7f", + "683a67703e090800080d6917", + "683944ea3e090800080af8a7", + "68380b253e09080008079e12", + "683b1cf83e090800080f82c5", + "683935113e090800080a772e", + "68399d243e090800080c59ed", + "683894f03e09080008093854", + "683a9ba93e090800080e5fd3", + "68393efc3e090800080ac947", + "683874b83e0908000808e133", + "683a8ae03e090800080e18e1", + "683a666a3e090800080d63c9", + "683916a33e0908000809ae57", + "683a6e3f3e090800080d8891", + "683aa77d3e090800080e908c", + "683835583e09080008083042", + "683a6ac53e090800080d7977", + "68393c513e090800080ab370", + "683ad40d3e090800080ef8cc", + "68398d703e090800080c2b20", + "683863923e0908000808b766", + "6839036f3e0908000809642e", + "6839cc533e090800080ccfc1", + "68392d8d3e090800080a3c1b", + "683880f03e0908000809097b", + "683a74753e090800080da824", + "683a75c93e090800080db097", + "68384c493e09080008087ad2", + "683923cd3e0908000809f754", + "683ae01b3e090800080f0fdc", + "683950013e090800080b4d60", + "683938e83e090800080a9650", + "683914e63e0908000809a630", + "683a66293e090800080d628d", + "683a6c023e090800080d7e96", + "6838545f3e090800080891b6", + "6839070c3e09080008096f51", + "6839ac0f3e090800080c810a", + "683937ff3e090800080a8e64", + "68393b753e090800080aac72", + "683a700e3e090800080d90eb", + "683825f83e0908000807fe7f", + "683810603e0908000807b6b6", + "683a93b63e090800080e3ce2", + "683924f73e0908000809fe04", + "683aa8043e090800080e930c", + "68393c433e090800080ab2f6", + "683a95793e090800080e4510", + "683bbe613e090800080fd6b3", + "68387f263e090800080903a3", + "68384c223e09080008087a6c", + "6839a8ef3e090800080c79df", + "683a7e9b3e090800080de04f", + "683a523a3e090800080d2819", + "6839ca103e090800080cca7b", + "68390fd63e09080008098fd1", + "683aa5923e090800080e891b", + "6839449e3e090800080af5e6", + "683984173e090800080c1019", + "68386b5f3e0908000808c91c", + "683922513e0908000809eeb0", + "683aa7653e090800080e9006", + "68391b703e0908000809c6e5", + "68392c663e090800080a337e", + "683947c33e090800080b0ff8", + "683ae8b63e090800080f20b5", + "683c16cd3e09080008101e5f", + "683994563e090800080c4035", + "68394e883e090800080b425d", + "683a776a3e090800080dbaa6", + "68390ceb3e090800080984cb", + "683932db3e090800080a65d3", + "683907a33e0908000809716d", + "68392a953e090800080a25e8", + "683a56353e090800080d2be2", + "683817b53e0908000807d01a", + "6839a7383e090800080c7545", + "683aedd03e090800080f2acc", + "683e74053e0908000811e569", + "683994b53e090800080c4182", + "683b15133e090800080f7175", + "683b16323e090800080f7446", + "68380b3a3e09080008079e9a", + "683a638e3e090800080d577b", + "683952263e090800080b5d25", + "683837cd3e09080008083899", + "683bd6ec3e090800080fea58", + "68393d983e090800080abe9a", + "683a76903e090800080db557", + "683935a73e090800080a7bc2", + "683a870c3e090800080e0738", + "68387e5c3e0908000809011e", + "683950813e090800080b50e3", + "683934173e090800080a6fc7", + "68387b663e0908000808f7a9", + "683a60ed3e090800080d4d9b", + "68397c223e090800080bfa88", + "683a56d13e090800080d2d2e", + "68384efc3e090800080882a9", + "683a74093e090800080da529", + "6839be2a3e090800080cade3", + "6839981b3e090800080c4ab4", + "6839c60c3e090800080cc08c", + "6839ac423e090800080c818b", + "6839c8183e090800080cc552", + "683acd4a3e090800080eea8e", + "6839a2f83e090800080c6a6e", + "683a73843e090800080da246", + "6839141a3e0908000809a248", + "683adf3c3e090800080f0e1a", + "683930123e090800080a4f3e", + "68392cfb3e090800080a37be", + "683a68453e090800080d6d21", + "683834f23e09080008082ee3", + "683a580d3e090800080d307b", + "6839207e3e0908000809e3db", + "683a19273e090800080d1b46", + "683807aa3e09080008078d67", + "6839e34d3e090800080cffb7", + "68380ccf3e0908000807a6c2", + "6839216e3e0908000809e915", + "683913e03e0908000809a14f", + "68392af73e090800080a28dd", + "683a9ea13e090800080e6bfc", + "6839df7e3e090800080cf937", + "683962bc3e090800080ba288", + "683bf0353e090800080fff53", + "683b11723e090800080f6a90", + "683840ab3e0908000808565e", + "68398eb03e090800080c2eaa", + "6838751d3e0908000808e29b", + "68392a653e090800080a24ad", + "681c817a3e09080008d62acc", + "6839068d3e09080008096d44", + "683910b73e09080008099301", + "683bb41e3e090800080fd0bd", + "683a9e7f3e090800080e6b4f", + "683bcb383e090800080fe08f", + "683938b93e090800080a94ad", + "683928543e090800080a1537", + "683ad47b3e090800080ef9d6", + "683a837a3e090800080df77d", + "683905c43e09080008096a5d", + "683a84683e090800080dfb3d", + "683856cb3e09080008089800", + "68393fc73e090800080acf2b", + "683b06db3e090800080f5759", + "683b1b723e090800080f7f35", + "683aa68e3e090800080e8cc6", + "6838504f3e0908000808864c", + "683c68883e09080008105df8", + "683860b33e0908000808b0f1", + "68393a313e090800080aa135", + "6839dbf33e090800080cf1e0", + "683a81043e090800080dec5d", + "68394e0a3e090800080b3ed4", + "683afd4c3e090800080f47dc", + "6839069e3e09080008096daa", + "683ae17c3e090800080f127c", + "683a67d93e090800080d6b19", + "683a8aa73e090800080e181b", + "68380c323e0908000807a35c", + "683949613e090800080b1c0a", + "683abf153e090800080ecbaf", + "683a60243e090800080d4aab", + "683a6d4e3e090800080d84b4", + "683afa513e090800080f4305", + "68380ef63e0908000807b113", + "6838658b3e0908000808bc26", + "6839929d3e090800080c3ab4", + "68387f2a3e090800080903c3", + "683d7d023e09080008114434", + "68393a963e090800080aa4ae", + "683a7ce53e090800080dd7d8", + "683b32533e090800080fa7b4", + "683868823e0908000808c2c8", + "683a8ea73e090800080e27ee", + "68394d4d3e090800080b3917", + "683849a03e090800080872e6", + "683928803e090800080a16af", + "683923203e0908000809f36e", + "683910f43e09080008099423", + "683c53b43e09080008104d3e", + "683a732e3e090800080da07d", + "683955903e090800080b7219", + "683ad9ac3e090800080f0374", + "6839187d3e0908000809b785", + "683809123e090800080793b8", + "68391fd03e0908000809e013", + "683b1d703e090800080f83b2", + "683ae9f33e090800080f2340", + "683aa7c33e090800080e91ee", + "68381cce3e0908000807e108", + "68384f073e090800080882d6", + "683984f73e090800080c12f2", + "6839287a3e090800080a1666", + "683919953e0908000809bd61", + "683834133e09080008082bdc", + "6838f4083e090800080959ce", + "683a90873e090800080e2f88", + "6838aa873e09080008094d26", + "68396fe13e090800080bd1d4", + "683a70043e090800080d90a0", + "683946103e090800080b0278", + "683dd3343e0908000811a847", + "683935573e090800080a7986", + "68394aaf3e090800080b257f", + "683b29743e090800080f9a28", + "683948493e090800080b13f1", + "683a8c5c3e090800080e1de4", + "68390fb53e09080008098f3d", + "683a55d73e090800080d2b43", + "6839188e3e0908000809b80f", + "6839bd623e090800080cab89", + "683a6cac3e090800080d81b2", + "68397a8e3e090800080bf531", + "6838091d3e090800080793f6", + "683892b43e090800080933e7", + "68398a813e090800080c229b", + "683915b53e0908000809a99d", + "683908613e09080008097375", + "683ae0523e090800080f1053", + "683937d63e090800080a8d0c", + "6838eb763e09080008095633", + "683887693e09080008091a45", + "68398ccc3e090800080c2934", + "68390b323e09080008097df4", + "683905e93e09080008096b26", + "683928723e090800080a1618", + "683ad8463e090800080f00ea", + "68390fbd3e09080008098f70", + "683a860b3e090800080e026d", + "683c14643e09080008101c89", + "683990303e090800080c3302", + "683880563e09080008090787", + "683941313e090800080ada7a", + "683a854c3e090800080dff53", + "683a80f33e090800080dec09", + "683a70bf3e090800080d9474", + "683a7f0c3e090800080de293", + "6839130d3e09080008099d77", + "6839a1e93e090800080c6737", + "683a93f33e090800080e3de5", + "683c4fe13e09080008104a2b", + "683a6e9e3e090800080d8a07", + "683840f43e09080008085772", + "683969cc3e090800080bbce0", + "683adbc13e090800080f073b", + "683a587a3e090800080d3205", + "683879853e0908000808f11a", + "68391aa43e0908000809c2e5", + "683a61f83e090800080d5166", + "683927ad3e090800080a1099", + "68386ad53e0908000808c7cb", + "683aa0b53e090800080e73b4", + "683a97c83e090800080e4ee1", + "6839b3673e090800080c9208", + "6839045c3e0908000809665d", + "68393a2a3e090800080aa0fc", + "6838ea7f3e090800080955de", + "683929f63e090800080a2114", + "683a948a3e090800080e407f", + "683810813e0908000807b731", + "683951ae3e090800080b5994", + "683b576c3e090800080fc158", + "683a7c1f3e090800080dd38d", + "683853813e09080008088f00", + "68394e633e090800080b4159", + "683813463e0908000807c0bb", + "683945b23e090800080aff6f", + "683a7b353e090800080dce8f", + "6838ef8c3e0908000809574b", + "683998213e090800080c4ac9", + "683b26da3e090800080f9583", + "683a54a93e090800080d2a01", + "683a8a413e090800080e1680", + "683a664f3e090800080d6340", + "683a7ef03e090800080de1ed", + "683b222d3e090800080f8cab", + "68393ae03e090800080aa778", + "683aaded3e090800080ea3e5", + "683880623e090800080907b5", + "683908643e0908000809738c", + "683a69873e090800080d734e", + "68388bb63e090800080925b9", + "68388be93e09080008092615", + "683aadc83e090800080ea36e", + "68394c843e090800080b331f", + "68390aae3e09080008097be3", + "683a98503e090800080e5176", + "68392c3f3e090800080a3280", + "68396abc3e090800080bc03a", + "6839988f3e090800080c4c56", + "683a8e9d3e090800080e27b0", + "683926003e090800080a0558", + "683dac7a3e09080008117c05", + "683a75233e090800080dac58", + "6838093d3e090800080794a1", + "683c64ab3e09080008105ae9", + "683a5eff3e090800080d46fa", + "68391cb83e0908000809cdb5", + "68390a773e09080008097aff", + "68396ac23e090800080bc05c", + "683b1c5c3e090800080f8150", + "683951083e090800080b54bf", + "683a74943e090800080da904", + "68393fce3e090800080acf80", + "683a7b8a3e090800080dd061", + "683b153f3e090800080f71e5", + "683a8e7d3e090800080e2730", + "683a6e4b3e090800080d88c7", + "683ab7133e090800080eb939", + "6838596d3e09080008089ee2", + "683903463e090800080963e1", + "68380e1e3e0908000807ad6e", + "683a66913e090800080d64ac", + "683a67743e090800080d693b", + "683a74de3e090800080daace", + "6838627e3e0908000808b49f", + "6839288f3e090800080a1721", + "683949f83e090800080b203e", + "68390b583e09080008097ea2", + "683aeacd3e090800080f24e1", + "683aefbf3e090800080f2f1d", + "68382bfc3e09080008081253", + "683a63383e090800080d5632", + "683a7b4f3e090800080dcf31", + "68390e0f3e090800080988e5", + "683a75833e090800080daef0", + "683924d93e0908000809fd6e", + "683826cb3e0908000808011a", + "683899303e09080008093eeb", + "68380cd03e0908000807a6ce", + "6839394c3e090800080a998f", + "683947c23e090800080b0fe6", + "683926b53e090800080a09f1", + "68399cc03e090800080c58e9", + "68382d223e090800080815b2", + "683a56853e090800080d2c70", + "683aae613e090800080ea4fd", + "683d5e443e09080008111bd8", + "68391ec83e0908000809d9c7", + "683a6c913e090800080d8114", + "683a84b23e090800080dfcf2", + "68393ef73e090800080ac914", + "683914da3e0908000809a5f9", + "68380a053e09080008079888", + "68390ce93e090800080984c0", + "683912b73e09080008099c3b", + "6839b3043e090800080c90ef", + "683911af3e0908000809973e", + "68387d0f3e0908000808fd3b", + "683a967a3e090800080e490b", + "683928383e090800080a1451", + "683847233e09080008086b15", + "683bfdbb3e09080008100a96", + "683a7ea83e090800080de094", + "68394be23e090800080b2ee9", + "683990353e090800080c3316", + "683917993e0908000809b32b", + "683911bc3e09080008099794", + "683a81ea3e090800080df043", + "6839ca9d3e090800080ccbea", + "683a90923e090800080e2fb2", + "683b32dd3e090800080fa873", + "683932ba3e090800080a6490", + "683a89193e090800080e11ae", + "683aea3b3e090800080f23dc", + "683973813e090800080bdee8", + "683924293e0908000809f99f", + "683909bf3e09080008097872", + "68399fee3e090800080c6172", + "68399b383e090800080c54c1", + "6839af153e090800080c8763", + "683947413e090800080b0b83", + "683adb463e090800080f0657", + "6839529a3e090800080b6073", + "683b1d1c3e090800080f8320", + "683a6de73e090800080d8736", + "683941553e090800080adbad", + "68394ce93e090800080b360e", + "68387fa23e09080008090543", + "6838918b3e09080008093179", + "683a804c3e090800080de8da", + "68392c7a3e090800080a33ff", + "6838475d3e09080008086bbf", + "683a6dcf3e090800080d86e9", + "683aab243e090800080e9cd6", + "68395f9a3e090800080b9859", + "683906f93e09080008096ef8", + "683943aa3e090800080aed7f", + "683945173e090800080afa0c", + "68393f603e090800080acc0a", + "68390f1d3e09080008098c7c", + "683adf1b3e090800080f0dcb", + "683935433e090800080a78ed", + "683a5bcb3e090800080d3bc7", + "683929a83e090800080a1ed1", + "68384ea23e0908000808814b", + "683a797b3e090800080dc560", + "68390c833e090800080982fd", + "68394d103e090800080b372f", + "683868f33e0908000808c3b1", + "683a754c3e090800080dad8e", + "683894523e09080008093709", + "6839489d3e090800080b15f1", + "68392a1f3e090800080a2281", + "683980013e090800080c0536", + "6839dc653e090800080cf2f2", + "683a8f673e090800080e2ada", + "683832ed3e09080008082823", + "6838090f3e0908000807939d", + "683a7db63e090800080ddbbf", + "683a76873e090800080db50d", + "68392e0b3e090800080a3fc9", + "68394a443e090800080b226e", + "68387fe63e09080008090617", + "683ae4b93e090800080f1958", + "683907323e09080008097003", + "6838f0293e090800080957aa", + "6839963e3e090800080c455d", + "683876b03e0908000808e7cd", + "683927673e090800080a0ebb", + "683aac843e090800080ea0a0", + "683aae183e090800080ea43f", + "683a81953e090800080deeab", + "683886d73e09080008091904", + "683a94b73e090800080e4179", + "6839a0623e090800080c62fd", + "6839567d3e090800080b7753", + "683a6a073e090800080d75b5", + "683afcf83e090800080f4763", + "68396bbe3e090800080bc410", + "683a909c3e090800080e2fe3", + "683b0ad53e090800080f5e32", + "68398dce3e090800080c2c3d", + "683987ce3e090800080c1ae2", + "683905cf3e09080008096aa4", + "68395d593e090800080b9088", + "683a5a6b3e090800080d3748", + "683b25113e090800080f91ed", + "68380ef93e0908000807b13d", + "683825dc3e0908000807fe23", + "683a78373e090800080dbf45", + "6839112b3e09080008099514", + "683a68c23e090800080d6f3f", + "683a70383e090800080d91d9", + "683922693e0908000809ef42", + "683dcebd3e0908000811a378", + "683926803e090800080a087e", + "683ad0953e090800080ef1d9", + "683815e43e0908000807c923", + "683bca083e090800080fdfab", + "683aa7b53e090800080e91bb", + "68381f5f3e0908000807e9ca", + "683892c03e09080008093403", + "68396c6c3e090800080bc68e", + "683918b93e0908000809b8e9", + "683a6f823e090800080d8e29", + "683a70ef3e090800080d9593", + "683aa5b33e090800080e89cb", + "683bcb8d3e090800080fe0e3", + "683936293e090800080a8019", + "683a6a2b3e090800080d7689", + "683aad2d3e090800080ea228", + "683a8d743e090800080e2250", + "683836bd3e090800080834f4", + "6839cbd63e090800080ccec7", + "68381e803e0908000807e6e5", + "6839392b3e090800080a9892", + "683a66f43e090800080d6690", + "68391d843e0908000809d2ad", + "68390bb03e09080008098006", + "683c57223e09080008105057", + "68394a553e090800080b2306", + "683d42533e0908000810e8d8", + "68396e413e090800080bccbd", + "683890323e09080008092f3c", + "683aa5173e090800080e86dc", + "683993913e090800080c3db1", + "68391afb3e0908000809c493", + "68394c723e090800080b3294", + "683a6aaa3e090800080d78eb", + "6839c5803e090800080cbf4d", + "683c70e73e09080008106428", + "683a8cbf3e090800080e1f99", + "68390fe73e09080008099028", + "683a5ed53e090800080d4681", + "68382d5a3e09080008081682", + "683a6a0f3e090800080d75e1", + "683a7b853e090800080dd046", + "683aff983e090800080f4b82", + "68394d173e090800080b377a", + "683933713e090800080a6ab1", + "683871513e0908000808d7aa", + "6839c7053e090800080cc28d", + "683944133e090800080af152", + "683830463e09080008081fd3", + "681c8cc63e09080008d637dd", + "6839abe33e090800080c80a7", + "683ad4133e090800080ef8e2", + "6839ba993e090800080ca3da", + "6838311d3e09080008082266", + "68399f6f3e090800080c6018", + "68381cb03e0908000807e0aa", + "68394d9d3e090800080b3b73", + "683923143e0908000809f2ec", + "6839122b3e0908000809997e", + "68391e523e0908000809d748", + "683c54553e09080008104dca", + "68390df63e09080008098867", + "683a59c13e090800080d35a0", + "683a72f03e090800080d9f19", + "683c5cd23e090800081054c4", + "6839b8923e090800080c9e93", + "683a83d93e090800080df8d0", + "683903063e09080008096365", + "68386e023e0908000808cf6a", + "683bd00c3e090800080fe4fa", + "683859d53e09080008089ffd", + "68392b0b3e090800080a298a", + "683895173e0908000809389e", + "683913453e09080008099e9a", + "683a751c3e090800080dac29", + "68386f4b3e0908000808d227", + "683b04913e090800080f53d3", + "683911193e090800080994b1", + "683a7e663e090800080ddf24", + "683a964c3e090800080e4860", + "68388b1c3e09080008092431", + "683a647a3e090800080d5bb2", + "683a6db23e090800080d8679", + "681c84a03e09080008d62eb5", + "68394d2d3e090800080b381c", + "683851813e090800080889aa", + "683913193e09080008099dad", + "683811173e0908000807b981", + "683890003e09080008092eb5", + "68392e613e090800080a4217", + "683a79ea3e090800080dc796", + "6839a2263e090800080c67e7", + "68390d543e09080008098648", + "683912bf3e09080008099c78", + "683ab02b3e090800080ea92d", + "683c26c83e09080008102af9", + "683912ec3e09080008099d01", + "6839915c3e090800080c36b1", + "683952783e090800080b5f72", + "68391f373e0908000809dc74", + "68390e673e09080008098a51", + "68380b763e09080008079fdf", + "68388db63e090800080929a1", + "68380aee3e09080008079d01", + "68391db93e0908000809d3cc", + "6839d7123e090800080ce7fb", + "683a5dab3e090800080d4250", + "683924433e0908000809f9fd", + "6839732a3e090800080bddde", + "6838a5893e09080008094a06", + "683a5fce3e090800080d4978", + "683841dc3e09080008085aab", + "683a64703e090800080d5b76", + "683891d43e090800080931e5", + "683a964a3e090800080e484f", + "68397c633e090800080bfb60", + "683d88ea3e090800081153c4", + "68397c603e090800080bfb49", + "68391caf3e0908000809cd85", + "6839bc7e3e090800080ca926", + "683a75ee3e090800080db182", + "683952f83e090800080b6308", + "683919a23e0908000809bdb1", + "68393b0f3e090800080aa8cd", + "68392a093e090800080a21bb", + "683a9fc83e090800080e704d", + "683a948f3e090800080e4093", + "683a57c63e090800080d2f94", + "68380ac73e09080008079c27", + "683946573e090800080b0494", + "683a7e923e090800080de023", + "683937983e090800080a8b03", + "683a5d3a3e090800080d40a6", + "683a6da53e090800080d863c", + "683925d83e090800080a045a", + "683925423e0908000809fff7", + "683a7c893e090800080dd5d6", + "683a7c3a3e090800080dd418", + "68391c4f3e0908000809cb58", + "683892f73e0908000809347b", + "68392bf83e090800080a306a", + "68387eac3e09080008090200", + "683a8d963e090800080e2301", + "683a647b3e090800080d5bbc", + "68396f643e090800080bd034", + "683a6a143e090800080d7601", + "683af5213e090800080f3a52", + "683833113e090800080828a1", + "683a92e73e090800080e396f", + "6839321d3e090800080a5fe2", + "683844843e09080008086382", + "68380ee93e0908000807b0ba", + "6838949f3e09080008093793", + "683f28523e0908000812cc94", + "683adbb73e090800080f071d", + "6838971c3e09080008093c09", + "68391d373e0908000809d087", + "68394de53e090800080b3d8e", + "683947593e090800080b0c52", + "681c7f663e09080008d62810", + "683bab673e090800080fcbb3", + "68396cd53e090800080bc80d", + "68392bf33e090800080a3035", + "683854023e09080008089086", + "683983473e090800080c0d80", + "683a8eee3e090800080e290f", + "68392ea83e090800080a4410", + "68394d4f3e090800080b3936", + "683bbdf33e090800080fd661", + "683afcee3e090800080f4749", + "683909a13e09080008097805", + "68391ee23e0908000809da8d", + "683a7f983e090800080de558", + "683966b93e090800080bb206", + "6839ce8e3e090800080cd515", + "68383b1a3e09080008084404", + "6839c6ff3e090800080cc27c", + "683a604d3e090800080d4b64", + "683930d13e090800080a54b3", + "683a90b93e090800080e3055", + "683a69c23e090800080d748d", + "683957d83e090800080b7e35", + "683ab6e43e090800080eb8a6", + "683a44eb3e090800080d2277", + "68392f5c3e090800080a49d8", + "683a72233e090800080d9b1b", + "683a68e83e090800080d700a", + "683aef543e090800080f2e1e", + "683a6ba43e090800080d7d08", + "683a89833e090800080e136b", + "68390acd3e09080008097c71", + "683919823e0908000809bce7", + "683a71a43e090800080d98f7", + "683a73f13e090800080da47f", + "6839ba203e090800080ca286", + "68384e263e09080008087fe5", + "68381d973e0908000807e3cc", + "683927053e090800080a0c09", + "6838ffc23e09080008095fe0", + "683a75313e090800080dacd8", + "6838a41b3e090800080948f5", + "683a84703e090800080dfb7d", + "68387cf43e0908000808fcde", + "683af92d3e090800080f4116", + "683881693e09080008090acd", + "683a60133e090800080d4a6b", + "683af2463e090800080f3531", + "683811123e0908000807b967", + "683ac2943e090800080ed456", + "683aabf73e090800080e9eff", + "683965513e090800080bac57", + "68380fab3e0908000807b44b", + "683942e13e090800080ae7be", + "6839afe93e090800080c8937", + "68393f4d3e090800080acb80", + "683abfa23e090800080ecd29", + "68381b603e0908000807dbf2", + "6839142d3e0908000809a29c", + "68391cdb3e0908000809ce96", + "68392d083e090800080a3842", + "6839bf9c3e090800080cb1c1", + "683a76583e090800080db425", + "6838100a3e0908000807b5ab", + "683b47c83e090800080fbc57", + "683a864e3e090800080e03b2", + "683921d63e0908000809ec00", + "683a6b2a3e090800080d7afa", + "683ab5fa3e090800080eb699", + "68391f383e0908000809dc7f", + "683a66f13e090800080d666c", + "6839b0c43e090800080c8b56", + "683a682e3e090800080d6c86", + "683a6d983e090800080d85ef", + "683912703e09080008099aa1", + "683a7b1a3e090800080dcdf3", + "681c7de53e09080008d62666", + "683838fd3e09080008083ca8", + "68392c803e090800080a342f", + "68398fa63e090800080c316d", + "68390cd43e0908000809843c", + "68390bf13e090800080980db", + "6839cfa13e090800080cd79e", + "683947503e090800080b0c08", + "683830713e09080008082075", + "6839d9933e090800080cedd5", + "68387a6a3e0908000808f442", + "6838582a3e09080008089b6b", + "68394e233e090800080b3fa7", + "683888fd3e09080008091eaa", + "683a9c793e090800080e634c", + "683afa8b3e090800080f437a", + "68388adb3e0908000809237b", + "683af63f3e090800080f3c52", + "68380daf3e0908000807ab2f", + "683aeb963e090800080f2650", + "683933583e090800080a69c3", + "683b347f3e090800080faa4f", + "681c7bb03e09080008d62379", + "6839a80e3e090800080c77b6", + "683c1f8c3e09080008102523", + "683a7cf03e090800080dd815", + "6838067d3e090800080788b9", + "68394ca83e090800080b3451", + "683879cc3e0908000808f1f3", + "683927a33e090800080a104e", + "683b1fde3e090800080f8802", + "683d80bb3e090800081148d3", + "683a6aeb3e090800080d7a12", + "68395dd33e090800080b920d", + "683a6d0b3e090800080d8339", + "683883b53e09080008091129", + "68380dff3e0908000807acc2", + "683931813e090800080a5a60", + "6839084a3e0908000809732d", + "683931f03e090800080a5e5b", + "6838534d3e09080008088e65", + "68393e303e090800080ac300", + "683ad06f3e090800080ef189", + "68392d813e090800080a3bb3", + "683a7a1e3e090800080dc8d9", + "6839bb983e090800080ca6bc", + "68394f6d3e090800080b4974", + "683a754a3e090800080dad7a", + "683a6a9e3e090800080d78b5", + "68391fb83e0908000809df87", + "683aeaef3e090800080f2536", + "683a596d3e090800080d3491", + "6839bf153e090800080cb067", + "683916063e0908000809ab76", + "6839d1283e090800080cdb7a", + "683915fb3e0908000809ab3d", + "6838543d3e0908000808913d", + "683931883e090800080a5a9f", + "68385c073e0908000808a57d", + "683a92373e090800080e3650", + "683905de3e09080008096aeb", + "68380d4e3e0908000807a927", + "683ba29b3e090800080fc879", + "68392a4b3e090800080a23ec", + "683936163e090800080a7f5e", + "683ae5623e090800080f1abe", + "6839c9c83e090800080cc9a1", + "68391de53e0908000809d4c5", + "6839342c3e090800080a7055", + "683b0a913e090800080f5da6", + "683837133e0908000808360a", + "683c2dea3e0908000810309e", + "683a7ca23e090800080dd684", + "6839233c3e0908000809f40a", + "683913bc3e0908000809a0b9", + "68390b693e09080008097f09", + "683ab6ee3e090800080eb8da", + "683820403e0908000807ec95", + "6838fd3d3e09080008095e6a", + "683920733e0908000809e39d", + "683880063e0908000809067f", + "683b0c143e090800080f6081", + "683a67ae3e090800080d6a61", + "683812cb3e0908000807bf15", + "68392bcc3e090800080a2ecf", + "683946393e090800080b03bf", + "683b2a423e090800080f9b57", + "683a666f3e090800080d63ef", + "683b904f3e090800080fc4fd", + "683a5a053e090800080d3645", + "683a2cf83e090800080d1cd5", + "683a8d633e090800080e2208", + "683a8aaa3e090800080e182b", + "68394ee33e090800080b453f", + "68391b5b3e0908000809c674", + "68392ab53e090800080a26ce", + "683ab3bc3e090800080eb199", + "683d877b3e090800081151d1", + "683a95223e090800080e4363", + "683946b53e090800080b075c", + "683bd9033e090800080febcc", + "683997233e090800080c47e4", + "683915ab3e0908000809a96f", + "683946223e090800080b02d0", + "683c427f3e09080008104029", + "68394e7a3e090800080b41e5", + "68393ea53e090800080ac68f", + "683a64be3e090800080d5cc0", + "683993e43e090800080c3eb5", + "683913693e09080008099f37", + "68392d453e090800080a39ee", + "68390b033e09080008097d35", + "683831103e09080008082232", + "683905053e09080008096804", + "683932e03e090800080a65fe", + "68398a753e090800080c2265", + "683941a23e090800080add8c", + "683926ad3e090800080a09b2", + "683950023e090800080b4d6c", + "68394bbc3e090800080b2d7a", + "683a68a53e090800080d6ec4", + "683813693e0908000807c169", + "68390b753e09080008097f36", + "683823ba3e0908000807f73e", + "681c86e23e09080008d631c4", + "683927273e090800080a0cfd", + "683989073e090800080c1e45", + "6839401c3e090800080ad25e", + "683924003e0908000809f8b3", + "6839283a3e090800080a1460", + "68396c483e090800080bc614", + "68394d3e3e090800080b38ac", + "683925ec3e090800080a04d0", + "683d765e3e09080008113c16", + "68390fe73e0908000809902e", + "683c6f6d3e09080008106300", + "683991873e090800080c3734", + "683a975a3e090800080e4c7a", + "683908933e09080008097449", + "683945c93e090800080b0014", + "683a61ce3e090800080d50d8", + "683d7f243e090800081146c2", + "683952413e090800080b5de4", + "683a6de93e090800080d8743", + "683aeed83e090800080f2d05", + "68387db33e0908000808ff2f", + "683a5da73e090800080d4242", + "683a618e3e090800080d5016", + "683b21963e090800080f8bc8", + "683941fb3e090800080ae07e", + "683a5a773e090800080d377a", + "68384a433e09080008087523", + "683a98b53e090800080e5349", + "6839068f3e09080008096d51", + "683a66203e090800080d6262", + "683acbe23e090800080ee77f", + "683942eb3e090800080ae80d", + "68394bd13e090800080b2e3e", + "6838490a3e0908000808711b", + "683935493e090800080a790b", + "683952fd3e090800080b6324", + "683a666b3e090800080d63d9", + "6838679d3e0908000808c061", + "68392ea83e090800080a441c", + "683db40d3e09080008118442", + "68385d553e0908000808a855", + "68394f2e3e090800080b4786", + "683846a53e09080008086975", + "683c86a33e090800081071f1", + "68395b453e090800080b89c5", + "68383cbe3e09080008084955", + "683950213e090800080b4e3b", + "683a69963e090800080d7392", + "683988573e090800080c1c75", + "683922b63e0908000809f105", + "68392d533e090800080a3a5f", + "683928ec3e090800080a198e", + "683946233e090800080b02ea", + "683a99343e090800080e5542", + "68387c0e3e0908000808f9ab", + "683a77fe3e090800080dbdf1", + "6838b5a23e0908000809505d", + "68384c9d3e09080008087bb1", + "683a9e043e090800080e698e", + "683823283e0908000807f4f9", + "68392dc13e090800080a3d72", + "683875213e0908000808e2b0", + "683878533e0908000808ed0c", + "68392ded3e090800080a3ed4", + "68390b483e09080008097e54", + "683909533e090800080976f8", + "683947363e090800080b0b2b", + "683a7c8e3e090800080dd60e", + "683aafca3e090800080ea852", + "6839a1583e090800080c65a0", + "68391cd03e0908000809ce49", + "6839d19d3e090800080cdca1", + "68383f793e09080008085220", + "683a5e6f3e090800080d451b", + "683809783e090800080795d2", + "68380ba73e0908000807a0e9", + "683ba5553e090800080fc966", + "683a69493e090800080d7208", + "683a5bc53e090800080d3b9f", + "683a84c73e090800080dfd53", + "68394f4f3e090800080b489b", + "683915e73e0908000809aab2", + "6839abd93e090800080c8086", + "68394de53e090800080b3d98", + "683b13aa3e090800080f6ed5", + "683a63c73e090800080d588f", + "68392f4c3e090800080a4952", + "683b06f93e090800080f577f", + "683925d33e090800080a0438", + "683a5dc03e090800080d4298", + "683a6a1f3e090800080d7650", + "683b323c3e090800080fa782", + "683a63c83e090800080d589e", + "683b1d4b3e090800080f8367", + "68394ad53e090800080b26ad", + "68392bf43e090800080a3040", + "683d97e23e090800081165ee", + "683a879b3e090800080e0a6f", + "683a98ad3e090800080e5310", + "68394ee33e090800080b4549", + "683c624c3e090800081058c8", + "683e83dc3e090800081203e3", + "683910423e0908000809915b", + "68383e0b3e09080008084e02", + "68390f883e09080008098e50", + "68388cfc3e09080008092829", + "683ab0e13e090800080eaa9f", + "68381c7f3e0908000807dfbe", + "68385a273e0908000808a0d3", + "6839726d3e090800080bdb2d", + "68390cfe3e09080008098511", + "6839909a3e090800080c344f", + "683a888f3e090800080e0f11", + "683b200f3e090800080f8882", + "683a68453e090800080d6d2b", + "68382ffe3e09080008081ec3", + "683a95963e090800080e457a", + "68391bcf3e0908000809c88f", + "683b0f753e090800080f66c5", + "6839c2623e090800080cb83a", + "68384dcf3e09080008087ed1", + "683907293e09080008096fcd", + "683943903e090800080aecc5", + "683914843e0908000809a446", + "68391f823e0908000809de25", + "681c84ab3e09080008d62ed8", + "683c39a43e09080008103997", + "683a99fe3e090800080e588a", + "68382a143e09080008080c39", + "683a9b353e090800080e5dc1", + "683bf2b93e09080008100159", + "683914a53e0908000809a4d8", + "683a66513e090800080d6358", + "683ad1f33e090800080ef485", + "683ae0133e090800080f0fc7", + "68399feb3e090800080c6162", + "683a76f03e090800080db7c0", + "6839d67a3e090800080ce67d", + "6839166c3e0908000809ad44", + "68393ca33e090800080ab632", + "68393c853e090800080ab53f", + "68399e783e090800080c5dc2", + "6839c03a3e090800080cb2f4", + "683bbc0d3e090800080fd549", + "683952b83e090800080b6159", + "683eddfd3e090800081286ab", + "6839363c3e090800080a809d", + "68380e523e0908000807ae52", + "683a94c83e090800080e41e2", + "683907683e090800080970a5", + "683a85953e090800080e007e", + "683a82f13e090800080df51b", + "683927873e090800080a0f81", + "683909f53e09080008097923", + "683a95bf3e090800080e4634", + "6839299f3e090800080a1e8d", + "683824453e0908000807f930", + "683919ab3e0908000809bded", + "683808623e090800080790a3", + "6839beba3e090800080caf92", + "68397b8d3e090800080bf874", + "683ac2853e090800080ed429", + "6839c1823e090800080cb61e", + "681c7f363e09080008d627cc", + "6839045c3e09080008096654", + "68390ce83e090800080984b5", + "68385ed33e0908000808ac67", + "683945ec3e090800080b013e" + ] +} diff --git a/migrations/transferProjectToAnotherProgram/transferProjectsToAnotherProgram.js b/migrations/transferProjectToAnotherProgram/transferProjectsToAnotherProgram.js new file mode 100644 index 00000000..17d5da1e --- /dev/null +++ b/migrations/transferProjectToAnotherProgram/transferProjectsToAnotherProgram.js @@ -0,0 +1,480 @@ +/** + * updateProjectCertificateAndTasks.js + * + * Updates projects (from input.json) by: + * - filtering projects that have isAPrivateProgram: false and solutionId = old solution id + * - updating certificate.templateUrl and certificate.templateId + * - updating tasks referenceId and externalId according to mapping + * - updating taskSequence + * - updating solutionId/programId and solutionInformation/programInformation using fetched docs + * - checking certificate eligibility and calling certificate reissue API for eligible projects + * + * Usage: + * - place this file in same directory as migratePrivateProjectToPublicProject.js (or adapt paths) + * - create input.json with: + * { + * "userToken": "", + * "projectserviceApiDomain": "http://", + * "projectIds": ["683a00203e090800080d180b", "68393f0a3e090800080ac9b8", ...] + * } + * - set .env with MONGODB_URL, APPLICATION_PORT, INTERNAL_ACCESS_TOKEN + * - run: node updateProjectCertificateAndTasks.js + */ + +const path = require("path"); +const fs = require("fs"); +const _ = require("lodash"); +const { MongoClient, ObjectId } = require("mongodb"); +const request = require("request"); +require("dotenv").config({ path: path.join(__dirname, "../../") + "/.env" }); + +const mongo_url = process.env.MONGODB_URL; +if (!mongo_url) { + console.error("❌ MONGODB_URL not set in .env"); + process.exit(1); +} +const db_name = mongo_url.split("/").pop(); +const url = mongo_url.split(db_name)[0]; + +const input_path = path.join(__dirname, "input.json"); +if (!fs.existsSync(input_path)) { + console.error( + "❌ input.json not found. Create input.json with userToken, projectserviceApiDomain and projectIds array." + ); + process.exit(1); +} +const input_data = JSON.parse(fs.readFileSync(input_path, "utf8")); + +// validate required fields +if (!input_data.userToken) { + console.error( + "❌ userToken is missing in input.json. Script cannot proceed." + ); + process.exit(1); +} +if (!input_data.projectserviceApiDomain) { + console.error( + "❌ projectserviceApiDomain is missing in input.json. Script cannot proceed." + ); + process.exit(1); +} +if ( + !Array.isArray(input_data.projectIds) || + input_data.projectIds.length === 0 +) { + console.error("❌ projectIds array missing or empty in input.json."); + process.exit(1); +} + +const debug_mode = input_data.debugMode === true; + +if (debug_mode) { + console.log("\n---------------------------------------------"); + console.log("DEBUG MODE ENABLED — NO DB UPDATE OR API CALL"); + console.log("---------------------------------------------\n"); +} + +const user_token = input_data.userToken.trim(); +const projectservice_api_domain = input_data.projectserviceApiDomain.trim(); + +// variables (lowercase as requested) +const chunk_size = 3; // configurable +const old_solution_id_str = "681c71b03d8d030008d722f1"; // filter existing solutionId +const new_solution_doc_id = new ObjectId("681c96133d8d030008d72d10"); +const new_program_doc_id = new ObjectId("680893ff3d8d030008cd037a"); + +const new_cert_template_id = new ObjectId("681c96153d8d030008d72d26"); +const new_cert_template_url = + "certificateTemplates/681c96153d8d030008d72d26/140558b9-7df4-4993-be3c-31eb8b9ca368_8-4-2025-1746703893679.svg"; + +// mapping of old referenceId -> new externalId & new referenceId +const task_ref_map = { + "681c71b03e09080008d61890": { + externalId: "BHPBLMIP1-Task1-1746703891222", + referenceId: "681c96133e09080008d64345", + }, + "681c71b03e09080008d61893": { + externalId: "BHPBLMIP1-Task2-1746703891222", + referenceId: "681c96133e09080008d64348", + }, + "681c71b03e09080008d61896": { + externalId: "BHPBLMIP1-Task3-1746703891222", + referenceId: "681c96133e09080008d6434b", + }, + "681c71b03e09080008d61899": { + externalId: "BHPBLMIP1-Task4-1746703891222", + referenceId: "681c96133e09080008d6434e", + }, + "681c71b03e09080008d6189c": { + externalId: "BHPBLMIP1-Task5-1746703891222", + referenceId: "681c96133e09080008d64351", + }, + "681c71b03e09080008d6189f": { + externalId: "BHPBLMIP1-Task6-1746703891222", + referenceId: "681c96133e09080008d64354", + }, + "681c71b03e09080008d618a2": { + externalId: "BHPBLMIP1-Task7-1746703891222", + referenceId: "681c96133e09080008d64357", + }, + "681c71b03e09080008d618a5": { + externalId: "BHPBLMIP1-Task8-1746703891222", + referenceId: "681c96133e09080008d6435a", + }, +}; + +const new_task_sequence = [ + "BHPBLMIP1-Task1-1746703891222", + "BHPBLMIP1-Task2-1746703891222", + "BHPBLMIP1-Task3-1746703891222", + "BHPBLMIP1-Task4-1746703891222", + "BHPBLMIP1-Task5-1746703891222", + "BHPBLMIP1-Task6-1746703891222", + "BHPBLMIP1-Task7-1746703891222", + "BHPBLMIP1-Task8-1746703891222", +]; + +// output folder (same pattern as migrate script) +const output_dir = path.join(__dirname, "output"); +if (!fs.existsSync(output_dir)) { + fs.mkdirSync(output_dir, { recursive: true }); +} +const timestamp = new Date().toISOString().replace(/[:.]/g, "-"); + +// arrays to collect results +let successful_updates = []; +let failed_updates = []; +let certificates_to_regenerate = []; // list of project ids to call reissue +let certificates_results = []; + +// create mongo connection and run +(async () => { + let connection; + try { + connection = await MongoClient.connect(url, { + useNewUrlParser: true, + useUnifiedTopology: true, + }); + const db = connection.db(db_name); + + if (debug_mode) { + const project_ids_raw = input_data.projectIds; + const project_ids = project_ids_raw.map((id) => { + if ( + typeof id === "string" && + id.length === 24 && + ObjectId.isValid(id) + ) { + return new ObjectId(id); + } + // keep as-is (string) if not 24 chars + return id; + }); + const debug_query = { + _id: { $in: project_ids }, + isAPrivateProgram: false, + solutionId: new ObjectId(old_solution_id_str), + }; + + const debug_matches = await db + .collection("projects") + .find(debug_query) + .project({ _id: 1 }) + .toArray(); + + console.log("Running debug query..."); + console.log(`Found ${debug_matches.length} matching projects in DB.`); + + let certificateCheck = await callCertificateReissue( + "681c7ac63e09080008d6229e" + ); + console.log( + "Certificate reissue API call result (sample):", + certificateCheck + ); + + console.log("---------------------------------------------"); + console.log("Debug mode finished. No database changes made."); + console.log("---------------------------------------------"); + if (connection) await connection.close(); + process.exit(0); + } + + // fetch new solution and program docs (will be used to populate solutionInformation/programInformation) + const solution_doc = await db + .collection("solutions") + .findOne({ _id: new_solution_doc_id }); + console.log("solution_doc:", solution_doc); + if (!solution_doc) { + console.error( + "❌ new solution doc not found:", + new_solution_doc_id.toHexString() + ); + process.exit(1); + } + const program_doc = await db + .collection("programs") + .findOne({ _id: new_program_doc_id }); + if (!program_doc) { + console.error( + "❌ new program doc not found:", + new_program_doc_id.toHexString() + ); + process.exit(1); + } + console.log("Fetched new solution and program docs.", program_doc); + // prepare ids from input + const project_ids_raw = input_data.projectIds; + const project_ids = project_ids_raw.map((id) => { + if (typeof id === "string" && id.length === 24 && ObjectId.isValid(id)) { + return new ObjectId(id); + } + // keep as-is (string) if not 24 chars + return id; + }); + console.log("project_ids:", project_ids); + // chunk processing + const chunks = _.chunk(project_ids, chunk_size); + for (let c = 0; c < chunks.length; c++) { + const chunk = chunks[c]; + + // find matching projects: _id in chunk, isAPrivateProgram:false, solutionId: old solution id + const query = { + _id: { $in: chunk }, + isAPrivateProgram: false, + solutionId: new ObjectId(old_solution_id_str), + }; + + const projects = await db.collection("projects").find(query).toArray(); + console.log("fetched projects", projects); + for (const project of projects) { + const project_id_str = project._id.toString(); + try { + const new_template_url = new_cert_template_url; + + const updated_tasks = (project.tasks || []).map((task) => { + const original_ref = task.referenceId; + + if (!original_ref) { + return task; + } + + // normalize: convert ObjectId to string for lookup + const ref_str = + typeof original_ref === "object" && + original_ref._bsontype === "ObjectID" + ? original_ref.toHexString() + : String(original_ref); + + // check if mapping exists + const mapping = task_ref_map[ref_str]; + if (mapping) { + task.externalId = mapping.externalId; + + // preserve original data type + if ( + typeof original_ref === "object" && + original_ref._bsontype === "ObjectID" + ) { + task.referenceId = new ObjectId(mapping.referenceId); + } else { + task.referenceId = mapping.referenceId; + } + } + + return task; + }); + + // 3) update taskSequence to the new one + const updated_task_sequence = new_task_sequence; + + // 4) update solutionInformation and programInformation (use fetched docs) + const updated_solution_information = { + _id: solution_doc._id, + externalId: solution_doc.externalId || "", + description: solution_doc.description || "", + name: solution_doc.name || "", + }; + const updated_program_information = { + _id: program_doc._id, + externalId: program_doc.externalId || "", + name: program_doc.name || "", + description: program_doc.description || "", + }; + + // 5) prepare update doc + const update_doc = { + $set: { + "certificate.templateUrl": new_template_url, + "certificate.templateId": new_cert_template_id, + tasks: updated_tasks, + taskSequence: updated_task_sequence, + solutionId: solution_doc._id, + projectTemplateId: solution_doc.projectTemplateId, + projectTemplateExternalId: "BHPBLMIP251-1746703891222_IMPORTED", + solutionExternalId: solution_doc.externalId || null, + programId: program_doc._id, + programExternalId: program_doc.externalId || null, + solutionInformation: updated_solution_information, + programInformation: updated_program_information, + }, + }; + + // perform update + const upd_res = await db + .collection("projects") + .updateOne({ _id: project._id }, update_doc); + if (upd_res.matchedCount !== 1) { + failed_updates.push({ + id: project_id_str, + reason: "no-match-after-find-or-update", + }); + continue; + } + successful_updates.push(project_id_str); + + // if project.status === 'completed' and certificate.eligible === true then schedule certificate regen + const project_status = project.status; + const cert_eligible = + project.certificate && project.certificate.eligible === true; + if (project_status === "submitted" && cert_eligible) { + certificates_to_regenerate.push(project._id.toString()); + } + } catch (proj_err) { + console.error( + "Error updating project", + project._id.toString(), + proj_err + ); + failed_updates.push({ + id: project._id.toString(), + error: String(proj_err), + }); + } + } // end for each project in chunk + } // end chunks + + // Write intermediate results + const summary_path = path.join( + output_dir, + `update_summary_${timestamp}.json` + ); + fs.writeFileSync( + summary_path, + JSON.stringify( + { + successful_updates, + failed_updates, + certificates_to_regenerate, + counts: { + successful: successful_updates.length, + failed: failed_updates.length, + certificates_to_regenerate: certificates_to_regenerate.length, + }, + }, + null, + 2 + ), + "utf8" + ); + console.log("Update summary written to", summary_path); + + // Now process certificate reissue for those flagged + // process certificate reissue for eligible projects + if (certificates_to_regenerate.length > 0) { + console.log( + `Reissuing certificates for ${certificates_to_regenerate.length} projects (in chunks of ${chunk_size})...` + ); + + const cert_chunks = _.chunk(certificates_to_regenerate, chunk_size); + const reissue_results = []; + + for (const chunk of cert_chunks) { + for (const project_id of chunk) { + try { + const result = await callCertificateReissue(project_id); + if (result && result.success) { + reissue_results.push({ + projectId: project_id, + status: "success", + message: "certificate reissued successfully", + }); + } else { + reissue_results.push({ + projectId: project_id, + status: "failed", + message: "certificate reissue API call failed", + }); + } + } catch (err) { + console.error(`Error while reissuing for ${project_id}:`, err); + reissue_results.push({ + projectId: project_id, + status: "error", + message: err.message, + }); + } + } + } + + const output_path = path.join( + output_dir, + `certificate_reissue_${timestamp}.json` + ); + fs.writeFileSync( + output_path, + JSON.stringify(reissue_results, null, 2), + "utf8" + ); + + console.log( + `✅ Certificate reissue completed. Results written to ${output_path}` + ); + } else { + console.log("ℹ️ No projects eligible for certificate reissue."); + } + + console.log("Script completed. Summary file:", summary_path); + if (connection) await connection.close(); + process.exit(0); + } catch (err) { + console.error("Fatal error:", err); + if (connection) await connection.close(); + process.exit(1); + } +})(); + +/** + * callCertificateReissue - reuses request logic from migrate script + */ +function callCertificateReissue(projectId) { + return new Promise(async (resolve, reject) => { + try { + const reissue_url = `${projectservice_api_domain}:${process.env.APPLICATION_PORT}/v1/userProjects/certificateReIssue/${projectId}`; + console.log(`Calling API: ${reissue_url} for project ${projectId}`); + const options = { + headers: { + "content-type": "application/json", + "internal-access-token": process.env.INTERNAL_ACCESS_TOKEN, + "x-authenticated-user-token": user_token, + }, + }; + request.post(reissue_url, options, function (err, response) { + const result = { success: false, projectId }; + if (err) { + console.log( + `Error calling certificate reissue for project ${projectId}:`, + err.message + ); + return resolve(result); + } + if (response && response.statusCode == 200) { + result.success = true; + } + return resolve(result); + }); + } catch (error) { + return reject(error); + } + }); +}