devicely 2.0.10 → 2.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,32 +29,36 @@ function decrypt(iv, content) {
29
29
  }
30
30
 
31
31
  const encrypted = {
32
- iv: '86163e05c1c638696cb9d51f1aa4ce30',
33
- content: 'f54a3a6a806711520211e20f28de15c04574945d6efce7131c3cf8284dee07b7474be21cbbda072d64c320192bea0e9b56b35a127b9ca555ff80ea72e9c79f7775b83d268f82b5cdc636c8a32c25968759734ffcd8c13d47509db710f7603381a05d26c3f3511ca7d27d214121a083c8e8cd86500acc6de62e265e49ba776dd5d69c6e24ef847b2eec6727efbba87a64531a41e8fa378c1d451d326da4d60b4454b96d4c222e72971218d24f4225579a02093f55fc5096825054c73b46a2ec697762cb1e43bac72bf6a869fb658e3d05715939175dd8db51d1612e7ac8105f139cc5c00c99f8e6fa5c42c5417dfbb46a1fbb6a4890a7e8e1aa9d1e3c01bbe7230981f072ad5cc603c623957f1ab5492e597b14e53646ce5524789e16feb12e79ef9b2eee08276ba4339bd8a3db27422d9a5a36dc28b1da40d93efd2a74f06a8ef7c80bfc521085db13d31ec087be14a81f9926690ac6fcf5f4fd72c5bf87c652fc83ddd5e09bb7639f27fa887284ecfbe8e7001d70043aa2a0ecc0d52123511f7a3cf3b79c6ff76471df21b12bd090fa86b023e16ac051d3c9e9281970e7d2288f189c1c108e992a22eb54761d8dbf40360682a1695e654d00a5bcf47391d6b2cb166dbf9d2eb698ff7c48cc2ce2b2287bf30e115fa2903522a8ce94daa6fe3fb2ac35dcd93f4eb8d1b682545a33b5203f2110cb13f50fda5a553e170bf953b3c47fbbcdc38dde36c3e9ae3e053b80c2ab98d4b1e67c743a84bbf0c9f00ac0f15b6d21489f9af9f19a7bffa5e86fac2fd01314389b34a8a8599e5072723f05760f58a6ecf0572ccd2625e2638e591a0b79558000f866b4f7b2ef777e6e4b22616dda6f2a5933f885dd318723acc8876bf02f62ae90b560ef0acd78331efa0327e7676e01e65596c3735f1dbe43a9539976b7cb7d464a9bd076f52f6e980e44eee3818a6d39ec3f71f8e023bafeb629aefa900a7b4381f9deafb116d8c2a205479a9454b3737027c33412729ceb8b663e20d03dbef018f04018c3ff71be015f1a887094537b6b4a6679f1a71b323e0c31d7e57e5ef01c064cabe60149169d1f61bf0a151b630ccbcd5244af3129359b608c837c2da9b4276f8fd92445f7a76e848e310aba09c9b3968fb3e24e04be6a52b987413d2b2cab125abc41c19a95362785b4c52aa9e09d32254db9577d9843c64a91d67152c112c205c1800e45acad865e911ea3806c67b3419fa3f8af7d940eb1b7c284006badad2f6d3f0faf54f6b8f17be528fef9354a00b5d54267a88b5e39c62e505ba19f6d29c288c62ab35d4b9ac369d7846cbc901c077afb9cf5079055c07a6a1fce3ad9d22746157aad7b1a9b83e640eb0c96a7e9c364ecb73ce7f22f0dac7c26f016659e3c47de9db495f9345bc4c1990fead6434c78e83b1b48dbc46c24b15d08a18d4c80e76892eddae09a188dc48ad002ed4e1ed011dbf890930a7e856b5b293087a17943010510b14019e34ea65a5c1de56162a8aa193ce619c58827df622896deefe84bff3a0989394e03f8124dea698a57a6294746482c728a69d66c7a0ca42bd4ae99e4e7b24fb5'
32
+ iv: '61eca9ae13095e7b4f859d455dc8a8c0',
33
+ content: '39f91434d1e6cf3e515f9fc32984b8a98c6d3d65ccae442ce877737f9d69b23a3d3d497137812dd8b53a42ee62b6f355c97a82cd842e9c0b5c4fca6caf25802dc2438192f1637c193f09f92699fad25265a6b5ea3c64b08d14a3ba7fa190a268ea969877db8e145a83b080478d77ada5e0041d85043671418252c114994c9066365b61ff253542211d003b75b3edfdbcb5d2ee027a8a4ead8f53c7dd497f10f23e40e331facfa9be38c28ab2e03d5edf62800af52f42c9eda382583607a780c26988ef51a83602ee4ce57711309f1fc6c18200d8e6a76bf7c806b3a01b0377eea84ca34c9cff16bb4c262eb031e1c5e1cb414099d90ccfecfa861a95db494ffe16a7d842a911974619d2f4af15e1342f6e879063cd46b74313890531708b82410f362c598219c6c7be5de2a7bf96df971592e36b4e151d4165861cb360ee038a069b1a3e9798988b01b3c93f07147f69e1216ce17ebd0a67e3ccd6813f8911e772d287519f5cf87f0854787aff9512b5b5fe24ae3a42b77ef46a3405c0cad5dd3d16ba7105d2d6bf13595b30220fe17cebf255da092bd00f730600fa3f0d9db04cc866240a24cb6760191b0b42e7a1045d96845b74c04d2715bd0cb7f2b4d3b1693ef58b947f3888f07f14b6d7b16c5b41aba2632fee715cdac81a38d977926574557837af012c88a9262956d54913cbc5331c50b779a5c7ed225354017ab239d1b26956cc36024a3f15cd28ca846966982f54aedd8df9cb74494357ecd193c4121b58f1c409c183fc1c721533644eb6462c64c7e91435fbd37fbb99cf3692e7b7700cf949312616c466b5a6f7aa342921ae9a7adbbd7fa1e24719ab939a622eca325ee905f008549570f116484f9a311400aea1a6a3053498506aeefe0e8fc2b9a49dc90dc4be15afde8165d8e1d1e59e8169af935179b8cb1b2282ea4c1d3a4b215ef7d25b9e93c6c040e4e02cc7d2df702eba43250944173666b6f5ab01f510252e7c916872cba2a513f976c55788f52cd84c53742e677d774d9e98b6cb52171f0279560e1b171a0faff7fdf1b796eec7636f6a4c98372e175a2922de906bde5ff3b2a605b1440a49992285ec8ecaa7c2493dc86e8fd1afda2636ea847d058bfdee2917f2f0a89f9f9d7cd51eb9f3688415eef20279f428309daf94412ffd7037600535ebbab067c9d3915ade79aaf50228b8ee881f1aa96f9fb7aff465c70291e9352cc458c657cce72e10a04b0d707cfc833ea3bcd1cbac96ecdf915e927e67cb7745b7621d20c2651d418ccf711c1fb063fd22c68f8d90596fe770f6ea952b0ddff44208539e8b1a9c149d03f21d746505ab7b776336df29632a071215b268c05dc5c972e6019a704a00d4b32bda5a31ca081ccd0383ffada8441a03aeaa4371dbba4712a045cccf170835a45270c0305a8426e9e6882b73e22b7fca10b0314d55f7870793c93116f306228c769fe5ab34f5c13022fc38715d5ce2b12b4161e8921206388f2fd71d88893c14c023311c04db7bb5f88de097be99d54b5fe06f2ed35d5ffc39c9eeed411ae60822ad62cbbbbbec20d0b943c3600e796ada'
34
34
  };
35
35
 
36
36
  const script = decrypt(encrypted.iv, encrypted.content);
37
- const { execSync } = require('child_process');
37
+ const { spawn } = require('child_process');
38
38
 
39
- // Get arguments passed to this wrapper (skip first two: node and script path)
39
+ // Get arguments passed to this wrapper
40
40
  const args = process.argv.slice(2);
41
41
 
42
42
  // Create a temporary file for the decrypted script
43
43
  const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
44
44
  require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
45
45
 
46
- // Execute the decrypted script with arguments
47
- try {
48
- execSync(tmpScript + ' ' + args.map(a => JSON.stringify(a)).join(' '), {
49
- stdio: 'inherit',
50
- shell: '/bin/bash',
51
- env: process.env
52
- });
46
+ // Execute the decrypted script with arguments using spawn
47
+ const child = spawn(tmpScript, args, {
48
+ stdio: 'inherit',
49
+ env: process.env
50
+ });
51
+
52
+ child.on('exit', (code) => {
53
53
  // Clean up temp file
54
- require('fs').unlinkSync(tmpScript);
55
- } catch (error) {
54
+ try { require('fs').unlinkSync(tmpScript); } catch(e) {}
55
+ process.exit(code || 0);
56
+ });
57
+
58
+ child.on('error', (error) => {
56
59
  // Clean up temp file on error
57
60
  try { require('fs').unlinkSync(tmpScript); } catch(e) {}
58
- process.exit(error.status || 1);
59
- }
61
+ console.error('Error executing script:', error);
62
+ process.exit(1);
63
+ });
60
64
  "
@@ -29,32 +29,36 @@ function decrypt(iv, content) {
29
29
  }
30
30
 
31
31
  const encrypted = {
32
- iv: '6d080db869a9b612a4ccf5ffa892aeaa',
33
- content: '7643f1b71187134768541752cf34323f00ef61ee542e50956e876e4f2bcb1ba5ccbe7922a2c329be57b3d99013b3646a2f16dc6997344b84d99d68ed23b0f706966f98e122ac16bfb5b4569637f0880b5301d88b0f7f6c99686641d234e500e9d78815168fdbd7ec4c2b9524b40d54009074e03314826be56da685d804fc2019f8ce907876bd6ee9f27a81aad0788079c1b4695188ae20795756d3ef9bbdedcdd2af2b21bbf65adfc5714aff492cad6bc830ed431558e9b727777655a1f46e991617da45b2a8db4719b37c05458cf6e8321473ba134aa0bde2c595ab445e8dfb8f3e7c2eb60716a63a3949348bd06fe8698932df263f87806210f85e4077b8f2ae1cbcb166136f4275c1db0da850302c93a5770bce5f289c6f11b3a819be5e07cd4fc1bf8e171888d3c85fba925a2242545008490bce0845207450f68b50559632c58324186f8cec81d5d6b9808cbbeeda902374bad545600e843737f5327b3272529d11f052db5207a89b21ccf47810c4489dfb829b98936e6350dd4429fba946af92c5c6772a512bf633166bf0f3c03e3ea8f0b41c8713bc6a59ef9ee8e81efbe40c330faae084328577d6924e4578d78b832410acbad2a7aa05767516f0426ebe55646334fad5d6991bd04afc11a6c44e16923b3a056d7b8d6f5d8a23a67d6eb5ea85959f8e360d319f47360c2aa40d23c8bd7987263f10c270cf574f2c0830e89b912c3d59c2738a15b1caebeaa71fc0d88a0122ab799556dc9c252c9f326d3983fafb34867719a3cb2da90e13787a63992fb15d3526399e35b4fd4bb58359a2eae01e21f35ba55426944d96503e139dc129408e98d6307a4aac1af8efc9ad1faa3027cc05aca745dca47bb3814a264a2091bfec257db7f2ae7495ac2d8c2d7b5181a0bb134c960d912e2734b20f3341b70d9232e32c23090702261870bdead8617578aa920db6bb300d4f12e77c8d0e82a9a4d9f69f8dd3c3a54f91b3afa463cbb15119b60a9d7a085b08e5217161cc12995e417704ed037b6053867cf61625757350ecafb3962055c178dace98a805c8852dbe65251db18ab1b0966d5d7579df9cd413405ef2b655f5545fa712f7d6a24ee8bf96be7bceebc70a8c162d60dd36b0212ed88f4e9bc39a57d316c9a53f3bad6b6e04647d38e2a388fffff32687a4a9bb379f4696df3ef5e75dd45daa73d7fb0784f68fb16732854d11aad5e50c7a7b27e1483b2550970881fb9e64efbfa978b50ce7b655aa372b5a62eb0d3902758f1d4072017e3bbae32a0b769811251674fd4885c789296b315da5b53d5993feb1368ad6350d943c36e28936bc5a724f50391ff8245830ab66e5247d80688120baa091b81778c6a56cd03864c9082c4106569d1ec4917110a8123ffd427c49a0e5e3a34edcd129fe791d9136f981178aab5e5ffb24f9251cb374b5d3401d4f406cb30697d4240ac607f47cf78537a5df9a8f101af97e34e4e7540c016f7ff7bdca5eaac552d53a9a8da7c2342bd5d602e272961602667d267c3d8b97218419d0605d7698564b3dd94cb1c3639ef16fb67dd5b4b574ea55c5ec41f99c98e3b852c91bdf64be1a8a3fb5be9d2bc88d9de1291d2e3e7818c868168090402b2e7f51c2a46b80b084ca95ed8784e5371309c8dd54bf605b7712ea805e63e71a0c58366237fd3828acb5b36adf174fde6cfd5dce22c3d2e0b15a71fc6983093f736c77d12e4d08693699a81e7020e3761c161933ff9485d7632f77262fb97452956f504857336e7bd945d4c14d10baecd0c31344d1b7c1a82a0fde174163eb4458c08d30e513be6ce0d13007b914860a34032a58714e494d7a0a49de21db7c8305b22ba7aa8ceb63a2e197f69f8992636f83966977d82b1de7f7b6426da72b729d79899879a32f178d4264cdb7afaf80a8cb683e26ecf7050587c39f48022e80c786cac6ff37ad876d3996634a8dc6a7ccfb1fb7e6571538d57580f1ee1699617f9ef0635d990c81a764e8f3ff57a5459e793614f4f3623b4969b85c38ba73bbe86a33c3dc6dfe7ea187cc58b7671a79283a6fcfb6b775d8b2b3d1d6592d220f8a50df3b261b4800bf0953aed8204166b463aa8a438f6ede6a5f80e9cbc1d3db269e01e1f2363ff06a38a85ce092d0b6fdbe502d4269c5ecf25ca91c660d92d04ae2c1b1f2a86e6fbac092e6ffafd3d233c6657fba40ae97e2e516754c6798317dcc4084c62bc56646dda64d463e33abdba8011148cfa752c168abd62f036cc7325f252dd242fbc69c318012c5b8e0844400f14e9f6ee3f68e6a0b9aeb0e1260235355fd7e6d15f0f7a1d886473e8bf48b750f78b57a2dd48a8f2abb1977bfd758c34167c5f89ebdae12856c34223b950c22556c54d4b47bdd9c0112aaa88118a6afda2a7f9cbb4da6fb74b512deef398c7ffd86a4de16a76f188b36f6e62737e4cedd55108742efe830b971929d21893c2ede28d8830c39b698d2ba4220dbbcf96f1b33a136e7bffc8824e1d990d6593a706b9700f57421ef8bbf4e40969c1ed0c93421bd608710b29443d69995bbda13c59fc855129246b0fac4a03efc6b861952ff9b1667d1dc695c4f1c3e4dafbac78531b9b0aeb17f8a65ad782072d9b93a94f984cc0c82cec3393a1ee4f4fd530c8196cdfe9f723a0494636c783ff07f011b8eaeeb52829dc0cd2bad9d76d03b5050c5bb79cf77ad3767bdd78c69647b6203cdd8a90b5185a72a923f67f24ced2a28f209a8e2ef7b3da2c28a5209fce7d858ff228dd40ecf27093c757eb80409f618736dc6c1f68c2a4c0d23d3c44da9fdb7ce044e8eb898496fe547b04e02f167ee4bb1e2142ddd6447a55e63158d9677924b92d00fbffd8435b8dc309cb5d0cf624f94385e84769018d988edff1c086048447015cfec9e0aee001a9da728e08d737ac2414651c9aaf88208e8f2252521e8e0f08be3f05db459ccca49b31d61f4aeb9451804ff5dc1e96503cc42b19f447a83f81ca5bab84902b692b646b0ea81acb8627a496c054758682fee1e3e83919c60c66b0d3b5db2403fb33cea62443a2f83677523f0e57518bd2cbc886a7e2e1b2d93d6c61b967aad8ac1127b95049658338b24901647b85024810d5d93e48d6a6f0e7c31f7040e9baffaf97956ff2fc1d6d38db715f2939d3609d5135f9edc41e40a69d6cd96c52e5378c70b1800d2943c8253bdabd3b5cbd0d0d0c9dd8b3b7684cd0d38d7d5535e3c87b51204078a26c3e556c1698b0faf06186278d687be99704509f33b67c073f4b01b53f7779b9c07ba11e409c9a513e5bd0f1e776dd9a8583e49624186128236b91add47287005ea0bb9c65626f97d9e7e8232ca5a35fd205022caa0ca6816651fd34410d8b97ff8cb1a5c7025e68866865ea658b64b6cdd479d8f0cb29761d4d300ebc692103b56dee61de54ea84b59cccf9f7a4d6150eb0c03496f7b6f85447be9982c6b47e84885834b2d3ccaab0566b9206818227fabab00a84c3d133eb26b1c45855957e308dabc0651bca3c181cee0a19b3952759d02fc09424392ea3af418923cc16c49765ccd164b1591a2595aa65279b6b013ba0047ab39658e50a2e9c8d83503f90c37fdac64cb17dbf0de582dfc766ef26994ec81a8694e331ebf43439ceab5d0654f86022da328141da39faad5c711fad9da6d46254c0e97b95bab59aac68c'
32
+ iv: '59d1e27e9a21c35d59fa8c5db73049fb',
33
+ content: '26f9a3287711f4534e6132af9946432d911e9f8f5cc13e1813cb721608e65f3d7704de341dcf3ae62d4d1253ae17d72b41e985400e665f4681b387786fd55e5d84dd2bfb31a64ac28456aedf0854e6766a9615c8513727072d4139aa98902c2c07a940a1e7095306dfb983f56a33036aa912d191d4d873b990fbd2c478c2667891621ffbff37309e6748edb6f02497f9612c13f2aca8a281a1f81738d873cc25717c0570e1b21e832a08a9d0c51d5aad91aa4b9cdf0cdb2d633d86ae7b6da89f1dbe51a7fa8697ec7c47e6bc2d54e1e3e0a84610bea62a31d6adebd13cca00f4a04b9273249f23ed34e0cce0ad6c48b7e583d2005629fcc88c814a7c068fb69d623c873526b3635115305dc0b902f2925f8b7360c4d4374007b7d25ad6090eab4e61c10a74ad7829e00054adbb19fe08cced4baba7053002fc7abe62333642b48084651b9b86cb0c0a3cb51187131cb525c97199832e40fb1d35d25eb878adf9bb2f885fb6dafe994dd17d291e3dd4d83c3fcc8f9c8a1d5c656f5ad54032f6d7d8926a6b7c839db55204db1c27a7435c3c03cd899c4774b923312e3c2130d5687c4463d54c37ebe70b1f236937a159ac5e0dd5d934eb69c08eccdabbae1a1593769c69c773fe9bf6dc1e958dedb60ea77dfca362eb312edd1794be44b6e588a72e116bf329bcf5f3c8c15d3c3f48c8d86f83b267d9db8b0c3669623d09ddda2a4125766b9a448f0134b5e071ec43987d1bf5f8f662eba524985846722ec0b1bf291000217122101b803e8d256bb5363f77f00753b47638c2fb86f099c108b44e38c9a49770c38306ddf30d93afb22753f2ad454fe78587e1b142d14ed037b6f00350865d82ae3263c2bfa0639eb449ec1b849f01bd92f523d09ff7048607ac546348bbc2fbf53fa66b2b7cbec629898895a28887474963f008fc80615bc64087c5e8df9b16aa0a861b63a20f81f99c7021bb38852965dcba9b4c0d10c0bc6c78459c476c0a263969fb74fb70ea87ad72e1676be11a4d772441586808b99c77d752cc300205984773927b641fbbf3f9f9e5a2245ab344e70e4b41c6f0c18a6d0e2d2b0800dcac847780079f6a3f79cfc8e662e2d53ca2297f142bcf8207d42269840b8fcca0841a1ee2a5b461a113c4848f743ef70b43a99622fcb1c478cd0454bba73e3ba1a727eed03e737d86028c730c4781ab8fb32cc574cf50f581525ac1d3a507d7ccf92673533c27a22a03c83dce92819720c82f8c8872f27b1e9e8cfb87446788d46d8b7a030feb7284ded5deab5b43c6fca99277eab94d7d400bf14b944d0f5aa5f2ac203c7e732c26109cb7b05db86d46f5d13e201f7457e6af372fad75569dad6eedf796e8dc4cde88bb3b91a23f93c503496f71351cd1efd769dc00b457f8e9c6f4aac9f2ed4391b9278eaf6dd647d80ff95edc7f2a84f8c3faa9b174bc22ab12508f7eab991279b86f4dae255112a3375c99b33e216a61578367cf5cf9a150d0818187634bf904d306a93688931327412a472f3806b6b47354025f623de438de2213d33a0a4b62e4d6496bf3c9a6bdc0ddc7d61fd8b828f62575e74fc8301233db2ace9e22cced28fe200f2de767e92ab135a85bd9b04f233685796c38f2a6fbf7306dcc01fe72c81ebfe9d1261bced4ca7e849727bac46ca97c6e76857c2477b07b0b661484ba99366cc8988aa30c9d273fb19b8c894a9c9b949da14db321ae4173c754ca74a3c78449d8860d57948ba3932245eadf968e886a4b0af4afd999fff747b9ce59b49233bb6404742b54529fbb32b5bbcdd7635641d7205e11fa836df6efde11def11b4456d1649804c1fb724f78167ea5056814216019d50196c9f8b7d93921c08c987a1802b2fb0030e92852174f8a677920f83436f616e3d68d438e5aa920ea1657944aaa0c120d2ca2c21f54fe45e328486b6faf4e8b3754c8bed1c63ea82e88431d3ec5b841d5493daeaaff846f395ae7a63f87d6b33147807b11a1d207b5920db26c5a79fcea3d69195a793857975be313830303c73e8b9fc6d992b0bc787bcd6f2dcbd81815f070e8d605dd3b4bb81f5d96bc87549edfc45ded2cc5e85d224031e65781634d66d650a91b3522bb150ecde638d3702b0d079d33fc3cbd2222c7e52190b0f15eab8e66a75512b236b9e51ede319733b88dcdbd5d8b0652f4222c0e65d518a038d31dac89e17f932849f0020a1c84c5cb8032f73172f1b6a105a96e5bec7fb37b815a085af87d3da8abe0c1ed12059b8aeffa1dbe9c55f58d80d78aac589172de64e280648400c5911077c7f0ee7770ca8fab5570adf4983c5f9cd0e0c4e6a93846a60ec27d444e79419b282a569bb5da443e7729d57bf403fe65cda490b2bd456b3f855127156f8fd25355a91f43e82ee5d0faa7119a09218d1bd9f28f1b7f578fa31a4a0585a868843ac0e4f31389073e5efd12093b4b8de9b499ab5fbc7c55bf5b3439bb462b85486ef5b77266ad312468700f82932408caa1639f5482ddd29577279deee6ed01e294c86d45ed902afe3aab268503a65af3e6d224823be459df8cb042a571e718dacb58796bad5e4650f07b491b22e2dff1fd49dc6aa5d9df0e9ea7d9b46ced8ea31501ca05a1ae1f50d7c00785fd4056a3650134049caf8b6b2e1d1908b022e1a65e53f7ca8066b48952c94b72564bee125632c65c44ccb38f4e829bb6715fcbace0a54f2793107d28b46a1b81d44072a050bd43f441b6d5e597e287f046050934dd8edc04f558081960971402a84f390560cec009e620be934ebb8e473d8ad02aaa002e79e075190ad64f2f273c5facd7ca861e43d30a1995e2b1135586e4d7e0ab23c19448bf39ebeca947a10df563b65a42ee8f9789dc0ac2538529b8768038b83a4944b89970aac3142a5c6fd92afb0e25b3ffa107b42fad47c4d4bc7c0cdf1f67891fbc768e0172c4f0026d0f717f95925ef84d7de7d09b289e5dacf9514bc849709b598fc155eb7ba8c1c5c53062062cd0b6bf490df32233361d4f735c52d22cc7c37f86b869186ddb1d3887118357468465ece788153b0cb99f86a221159e1508135d22a722442fa9d2c1f97e67476a42d7e8c9732b4aea10023707222487ebabc65935e202d6be4ffee140e7833433d3b93969774c962171827d87a08f35d333d21915d13285c846826cf80ea3121ae4d9fc9b6461bdc1bac8c066930516f193bb9569f4b6fdf1e2a2a892fee353b36972701ec81155434eb2980c32e511c6bb7169eb5092dbedc7cdabebf0bc7f56605a8c939bcfe5536cf8a56fe25e6f3021bb2776b0fe9364c3cffe6f81439fac90dc7f9539c7010b400adb3152bc5d8d7b4e91301a959c9ca04e3cdf14828b38d34d6901582006ce0e4ab446bd5ce68145416f71eaf60ad8018988ae5e4d95df5ed974ba380c010d8cc5323f2adecfdf89abff34a2a652263dddcca2eb3d81061249f528732be882e52536a54c5fbb95756c5d3700dd972eda2d7a318dae3ef73aeda3416569a3d17e8e3decd63033a81ade892ed93562baba7b07df3032d73c7d51b35fb8f9e5ad3935dece5edbd401f554862282a2c2de245c9923914ca70333b02f2dd936e676d448cc22c169c45f2c1e81723bfcdc243d977810fc7d2c0874eb6feba3e97b48b716c108005733cbed70dc248ed72b1fe97bfab650d9a4f712'
34
34
  };
35
35
 
36
36
  const script = decrypt(encrypted.iv, encrypted.content);
37
- const { execSync } = require('child_process');
37
+ const { spawn } = require('child_process');
38
38
 
39
- // Get arguments passed to this wrapper (skip first two: node and script path)
39
+ // Get arguments passed to this wrapper
40
40
  const args = process.argv.slice(2);
41
41
 
42
42
  // Create a temporary file for the decrypted script
43
43
  const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
44
44
  require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
45
45
 
46
- // Execute the decrypted script with arguments
47
- try {
48
- execSync(tmpScript + ' ' + args.map(a => JSON.stringify(a)).join(' '), {
49
- stdio: 'inherit',
50
- shell: '/bin/bash',
51
- env: process.env
52
- });
46
+ // Execute the decrypted script with arguments using spawn
47
+ const child = spawn(tmpScript, args, {
48
+ stdio: 'inherit',
49
+ env: process.env
50
+ });
51
+
52
+ child.on('exit', (code) => {
53
53
  // Clean up temp file
54
- require('fs').unlinkSync(tmpScript);
55
- } catch (error) {
54
+ try { require('fs').unlinkSync(tmpScript); } catch(e) {}
55
+ process.exit(code || 0);
56
+ });
57
+
58
+ child.on('error', (error) => {
56
59
  // Clean up temp file on error
57
60
  try { require('fs').unlinkSync(tmpScript); } catch(e) {}
58
- process.exit(error.status || 1);
59
- }
61
+ console.error('Error executing script:', error);
62
+ process.exit(1);
63
+ });
60
64
  "
@@ -29,32 +29,36 @@ function decrypt(iv, content) {
29
29
  }
30
30
 
31
31
  const encrypted = {
32
- iv: '22b3335a375224316dcb0e33f5d25591',
33
- content: '740eed8702c8ea16617a4fcde05639ecb3e3ce88de2db8c01bfb8ce2ba2b0d9ed8ba76376aa54ec5b2ce183467273ff743634be6ce023fa11414ad8bff00568df27218218644fe353a303d8c83b6af178d6b83e6629d4908f1b66f4bc181a0013c61a31ac7043ca15546b5195e8848d4ba7b6d11ba06b5cfa7211df7f2d12e243555722afaa07af8b3174755a9c1827d781df1b66338dc9c4a66289709de139131b8c31f355d3c0570a13ca283996d37c6457596396e3bb6a9785bcaccea6cbd1643ec495d3b2c8372bafbd506266e72ada46d4b00739ddf6fad51a17200ed4373de97317792f66334b3c41ae04420089037e6bc7f390d189bb915945df4ab82eccfe616b1494884facada1e6712db3e7d593fc936395e14b9a216090f94cd7a69faca5d7ae671a88918a5a8115db8c64f60f0f76cac90acd2bd85eeffbb8059cb996e98fe7a26e43a2be0b0c7061c3a252667e8a8ff0901b74da76a0a43dfbbb0560e9076b21016600acfe0a6a06a1d76e6ddf381cab020ca81bead9c280218b97d4a551421834056d84c3c2d6d7d49233f2046b4c9736ddce3a18f0d8ccfc4d3320c5cb9cac25067b16cb3ff07e94168bb931c4e3793514f76a3b718744a6a2b340263f03829672ec5777dc0f9ffc41d14882a6804bc26c8e282ea83d319cfd6839d2f254902191d9c5a6d22b152083075dede84b3dfd6f4497ba96da77c1f201af52b780208ba07cc4552991205f2c791481e732589a680cd5858b5cd3eb7d8b24dc13f877c305ac8431f126d0d6fc3ca026820a749b9f45814685aeaeee1b6f0af1cf476a878cd11f8cef4ff0bcefa0d7955e461f79eb2855fa802f74b88fddd69bc0f6801e995e2f43a27516dcab8dd3baec88a1809c8f1207a3589db219e2b4fa50992cd64b3e012c81ca0898d4811f631560cd74ef2ef017cad0453d95e8d58f48745dba7e0ec479b925572395d501a7f189059ab6e4c604f34e1dc3af18e85a5f7470d5e308ea15799f608d2b06660924539127e06c318d094da271600c978eccc84cf1f83e3f5fd18f1b168635d4e9b35774ce95e940a6b7fcda03628a969d6fc938a0031a3b505839f3aa698528da81933e9688ac56a8dbc2dac79334d74a85172c0e8a06a4d792225628fcf7a612aca31f23348864f0037f3d03b109bd0434b7d5d0fc5f4172debb3a8c2edc4ea47ac24b936a82c476233292c7e33bb098be81704513c34302cac6984ba0905efbe0cc65d88beefa65302ff67ecb329613b3200cc15813533204a65aec740b91e05f91b3eccf403fde67c58b8f7943c7156eb1c8d0632386bce28a95808c83fecbe304af76a0d35ca56ae80c0cd56cb41225931d299895ce405ee8d9c2952fb98aa957bfe42180a1c08fa345d8d860bdc8209626f3ff1601205a51a6d64daee700358517829c6e87a0709ec117aeb82de5eb3fc9be9b445a817294268d434298d6f1cb599f198a383fa20182be4dc80a6401b62e5353e20b211908366b1678bb38b0dfc568425625db33e089559a4cbfefe395ff8064929b7a6e935093524c4caeeb3510b6f8e710af05cc1abeaff778a11174e34b1421138c10e2de53c9a6d4ddca5f2f4b6f77c7b83f8066dbc3215f42c675a23776656d7fe313cfb097807728d414d6ebbf3d853a65dd00977c2be5e5db521e22d6e0cbb8b2c46ccad502904038c972f4397912bafbe933f756f550377c0756dc4c69d6f5b084c409b816e111b012e28c7d5131b26fbcbf4a7b066ed4c5618c760877fe62a9529ff0b9b0144cc30bfd1097cb9b964f82a47db58d3c5de36c565109ac3990151888d758040ff4711d3b7b5c69973d45ba253decbe295a3afa47d5a08071d70824f59be71ee2145c766cb25fd5114149b1d505b6597ff212d20df1160207a7fed1bf5cc99dee23377c2645ba585865255d6743a9b94f2c508c7406a37dee16148447c6ee27fd2df79f08328bd07762140069feaceb9be2923a0eb6922568346fa161f1b86e151a1f0d90d0170f4a79bda8c005b7bfb9705a14e6993234bf3c85bfec9962880266e0f65233f8ff8f9fe8f738e6880ecc2347a938c144aadf4acf8bf73c675d57cdd4090cd1d5bbbeda7954b879a2a19eb841e00443646faf9d799972ffa7f21ab035843c3e54f2e303d86d71851850c3325b92a751340171a0147d0f9b81204eedc1cf87e7dfea96244caa01f8573d7ac1d673793f2ae3d128a9a289d289b0927719ab018c48289bcb46c9893a34066b533eda0b3cf5921aa327ab102aa499799627069e98d350f19d278b59bc2fff3691a204db9db0dcb329c3d969338839db59086afe7d49e794b50408d447de84dbdf1bc8757779fe7e99003ba31c39397b954d8e528db2fe0f966a61d3a24a947c36519da2fbe2ed090b35f38f5c1da60cc2f7d9e92adf3e3fd1158c70d41b75f29153637442033e849366752ca25781f76ae2f01275b555365cbf53cb5b5a50a13e9474dcd5baa4c10c34e4a856c8786c811c0d7a84ff76f7ae09dc6252cb21a30fcc7350318fae85d9cea53982b6400db50d50adadb68fa914e2242ec770269020830f068cc68dfe027f74d28927fd24da0088083877632b3064699019ef128012eae1747039e7322465fb010fa5bf31559b3f3f20ea345b793d714978da2777a4468c9d253a450dc8c686fcd884778c6248ddb2928cd3b8158584166dd0152ce773540c330ea4c8e19230eb4e49c83122bfe7aaaf58ac70dcb8fbef5195244f51ee8f643949d4d4fa7cbf952734c34028a82f0f10951e329c25859bb89fc6b424b2353fbe8c92759f4c7fbbf6662dc6d325ff0b12333a244b978ba882406678c720214cedc1604396bc176330c8397059ef28f51734817bef6f2cd425852fa5c1f8f073ed7839b0aa7c46701ad9aa96db3fff88feec9c278f77cc9470ba19aee92af7ac4eb8c8e5455343e1d1242457570b718cc2473ebf244d524aef0aac83e280d6246e315d4c805580fdff5ec6657d7bebb31cff6b1004f7ca51f981a9c507ca6abe4b8084be2ff3e045012a7b80d40c7d3d2d2ac7eb05458f12716a4a40d1bbe26b4c2c8a7ba22180e3e5555b352c54bb6ab4905970ac5003b1289bd0232ff2c0f26132e901c51429631590dc828d9776b24acf04bc37ab311d83620f0bea85c500fdce540c726ece1aca433f19fb144f6693390d42fc879848be7eb54e469b10ded01cf9160a7da664237bb3ed150605f6883689393257ab1ba9d8658032bd6c30a5e7e2114106849f2c0ddbf65c42953fc8107d82e33ac697424cfef8efd622a60d0ebd9a446c85f7c1f1de15d6c92dea8e5b2c7f3d90eefc3de931d481a45810242eacde0cc791032bcde78dbbb84591b0c824b09d05471d37513d020292422810174bc36c4335292d2a1245bbd9f547d2beda400a052aaaf78b7a03a2c0bdcc6b50dfd3e09fef3ac8df3051dd265a4d2be5ea6f669c523a9a84f188220bcddfee0a44cdfe929d2e93789d01abb73f7ffb89651486cb467f009ff91a64b3dc9fc5879c49e3ddf0351529d2bced88eff5a79afeaed43caab3486341e56664bf8b639d6c5be7e2c4ffa37cf0b5505d664c1ccd9ed6e53c4ae6e17f361bf4393b6dda658020799b3a904a7dcaba07888ea1a7539dafa4664a23741a968692b4ef43cdfe342389b56f93a62b68eafe2f32959cade38e3849c089f222945e25d1274af69dad202ce93a55d5a2898ffc21e0026263bd6aec70e6c169c9c3f99eaa6132af86c75f1727eee5d423529fd1801b6da048b2c04f78782e2103b65a48069573adc785e5608068e7abdba6edf74e065edf29e1e78425a83e4c9407d72397bb41ee5c5985f35533e1c6adff11f29afe376514d9ac2f2a0d99c4e9f1e416255192e70edee779794518d09bf9ad9b1f0b244bdda5a36d7e832944fad2fa9cceff9ecad9b362a2427e740aad6c772640a7eedb97c92095173a2ecb11c2bdd3331e9773bff6c3871597b7619a730694342889fb7ed4ca2c9246b3c768e7b44b8d52a390c0a3f15e50c8b8c1cd42226e4054b2145ed794712ac299720a78f3922f4686ac2c0c4835fc28bed1049c6a87129ac9d1ea80d6422bc4f07bd48357f93df5dc529f3587a948c67f6a0852b19a4e3b112eaf1b059c3e17addf54a4e7bea37015c0c44f00bdbc4d6df31fa3b5c2b3db0ff8ddfe491ef5adca1b004a520feb6ebc2678369324ea922d8cfc15612e561630184f5755257caa7a459b8d333bf56f9add1210e3833e52c30fd31bab72020b5ad24826f9d059018fc4b1a6b05c53f1c49e4419f077d6dd6a64c2600f52fd14e7a64bcf9905231528ab68135a26636f49de10d2062e5a553a794cb8e1290a1dde0c354b86f019e7fa1da087b850e55e4a749a495159a3f535c20c994bb7f847c4fc118747ca84eb54c503d7df989817fc47a3de5b0b457a5f673331eb28c0d66ba41649bd3d386a3139630cbf1cabe054542031714956d189d5bf8d7c7964385b1a08ea4987f1bdbdc7c858b3f5accb624fddf19137cd4b707cda7443b295b345248c20e3f4b4a201a0f9a6f4fb5289630da8615c81b91a84f892784fb0257ecee57a32b985fdafc684b6db02971f5b939c4320c2150af6a1673dac94d43cc5c8b1a649d0063dee1d772fde56229bdb14109465b15b88671b820c62741dfcbef53922b277f28da6d707f7c47993091c87ce1ad5bbb613d2fde68f12a545039835aee688f13cfcc3b3ccc0c0dbfaed04ea701a53abe12b9596792137360f6c10b9f3e7111c62e31c3f94f5bfec50a83c8f6d9f9d041d65a5fdefc2564bf5cb76044314497002b5df0ac9c95ebced44353a6d1b72207fb211ea3eda2760c0d5129157952dd00f9bdb1ddcc2130585ebfc0441697a27833a106f11b47b672dee76c94be1c23f71709b27f031e77763a1848f9ddf8437b53ab6f78d5cafa1fb9d82c9a700dbfcf390daf1effca0644f59bcf95e88be72143b1e94ba42c39237d17acc0db4c79d5f35707969ae589f19d6f75796737fdedeaeff1caced3d2aa9f874006af3eb721df6c93092f72915d2d1dab4191b607adc62fd50a05c8d7d335069127038990ce5016e74d5225f4407a960de11e73ee7fd8d79a03bd3ffdcb98243cdeb0e9f3a59e7789c2b44cb4708bcb6658ff5958596b7ee9b85648911f388739acf3bc4e1c68e4a77924a196d9d929ccc5ca23fd16a360069921faa79f0fdc0d0df4660603cc017fd32fdc6a092836341d46aa3bd316d63fbb65b19fe02a5043b0fc05a0628286628abceb05c512f0e214df7151a37916c5cc76bdcedcd4d75b54fc20c79d6634dab324a3fc6316bda3b90a72b8ed1529fccb26526c0bd78fc67e8a2b2ff8c377c51240815bb8df751d9535e2372d8ee46ab04e2edd2769e8e9f3193dec7a95d263617e03fabfd73f5ce4b5e52f703c281f0624c38140c5213447083aadd2e1b1ab06293cd43826f424a21142a59e8b765295da47aad3a4bc2054866da7607973e6e523eeb34d5b2521de24da2e49c2764174c3d87d57d37fe7a43b2d6c5a676194e12b771c6a7c569f098bf3bb2e734e500d9f09ff18cfb36a15263c4653514e05842717f6464ae2cc718cef06f5e2385e4d136ee5fca9025466b821d41c73d55bf90f92af2c7b7c088fd171f279b99e6c202550fad556f3d080e57988e99c45519f4ebe1774c0ea31fd1c1f973e537ee3d971c8dbb94aa554241505e1a1147593a36ab3e2c72503bc9b91daefd3c4a76d7eeb05f41efacd8a8b8f2f10334280afd692d35e15b332acf276c53be4400576c98bb2f133a0eec3f54b24c2728fc025cd0427da7755ce745d3e276ddcf18fbc1b9ff56707f096a21966f12ffe0b32784c40ef02225c9e609ca7e236bc89132778a1da4a6c63b3d43df9fe65d92e9881b94c971c81c72cb6f9621c3b27e7b0307480912f226ada315a550cc42d002672d2cd7177981938c589e6a98e3185b2fa4227deb343cb293ccabc95051619dd9c3197d95aecf8d7d0e19529cf27104aad4940d67e8abdde205caad2157e8d405f38f2fa645e566d6f1d015e541dbcbdfe8b3cd07cda6678f1c83f618bcc932ad479e9cf295eacff906a14ad741026ec9d98fa43e41ef483de4df984b4ceddafac1c1f6e40e74141e47b997ff7aef3e0ed41230eccf5f00f27d1a98410f94fafc498d1e90fbc4fe4f0735a826514c2ccfd296d7e8b34ed27ebf0d7932fb08f278e1a44a1481f0675e2437dc7a8f037837324587e56f15668cc12eb0cd1009b30955da9145552398251fc6a3ffc020651c9c6e6fe7deb22d17bc0ecc0f678c3ddc7edfc93a2900777a891f5414a26839231b9cdba1df383a442e627c77285a0e8789e75a7035a53c5eb3bca2270cfa2fc6a443bf4a9ad26f8fae3a18357999e872598fa828f9613761dd3ef0898e0d3c404a1ffaa4dbbb2f13a1f9138abdf659cf267a9b8b3372ed526fde016dd0f765ad231830202d918e38a91a347a648b359d8df0522383331290e0d60f6bb57e487dabda8fd996cf864d1d8b134da27f00269eedc5b327cced0be9e242d49b80432767cdacb0940769cd29ed27e5d317881b390c3452bef6734b1a10a1768fd7db696143d837448b139653c8c1c21dc8f2e0cdbcb9245279beb471dd318747473369f0a67806748b581628348c3790cfec81043e68d42f5844c04d87b08455b537df3e29d2ea0895ceeeacd95fb7e4aa9d1144fb819e9a10e5ac3564addd3f6e180dc7993471bf12ac9701eacc8a191d52ecef29c030a851c5b11c05ee91def16f60feb9f50f833731831fe08f87d7b360ae21a957cee8e0c95a1b512cbf8e233b62f3f0e5ca1e47828b9cb2e4b136a847ba72c62630224487c8b1c5b0588430fd483787f6f7b4e6d239eb2b9263ddfa987bd0a72bc72f220b7d49df0d223e413f6706c06f81f13fd3874a7cc5fd0fc11b7f34ff64076d7a8709c5691c32f6124563f23a54a115a52ae7b0e1f9968a1e692ccaabdf220dcc162aead2836e6f7dbdf891139c06f337734a8a62409558719875a97c827a629076741c7f870b76fdec34e236675e82aa0b6f6b9bb5cbdc498493b0b2496f69a3e5a0982e0854a3216aa0ff70c1d20a9ede0497b57bfdfcf83bdf2e49da17f305815e7e415854dbb86fba616e00b7b89e84b4b5a84687ddfc792ff74ffb8bde66a59132cd8c1ae697fcfccd1e73c11a6f12d7a1b3a06cc57a53c392371f37e2b69082cf7a591951b1d18d36f3d7ec1703914343f2c41a3e23bcf0b6d5d663024742a0cda49f3f8c734c141288279c859a1ed331f76fb8efe3727dc0266bc9f9f2f4d3084dfaca580e4747f0f93529225851814627621153576d0f8d6218e56fa1926728cb86642f0336cbc6884a486553b07b52c0990c76a24b34816c857d3cdba36fdc0ca62f7c62a118d2eff1c7c05f81145ff9b373d4b415b74cba199ab6c3ee45b7c5996d0c4a8dd1eabf60d8e14e5e0bc17e2f8676498c44f71d8bafe346661faf850479c78bed9f2742e1eea40adca9aa285c8c00025bb7f7b8363481ae0a83fc25e32b68f6107ea19d44072bd6884f7ab7d23ea955100e11092e6c91d5ce99da2c981a450ed25a667c895cab1c703c1d75633d1954eaa49fdccff5e4a7df49f6ffb605f9bbc6fa2e600b8a5e51942625ad76d32e78a3d5e25b2c83d299570b2148210935776c9da0b6bc1497099713b16960f5e29bb1704620d3c8294cb1bbc2019486a72a7f4d6a426f2640dc2853259f9183fe899b94fac5cf96f75c6e62ad908f6677a612d53b88e75bf855aa5cb28d7d7289472962890a0f8499b3c33671f56a253f393e693a1f144ffa50571bc25ab73ce45c8d0989cd6ae753ce7787215fa915a40f7e2a51e188d005de3edc68847f1760c948e2e1784908077b657246911b84675d45e67ea4861bcef52542d88165f5558a6a04085ea7b9a8743058694b209f36994e52deb72f6d1878ecd67f7e9cfdb9be83aaf9827780a2376932be5d31a5d90692eb5ccabe57fec89111db358cf2b0ed961256724d6ded3222f5ae702851251f883a584bb557cb5f87f8d7b1071104ab8f750db6da4a02f4e6db4229ac7b19f97a427d99bfe71463873763d13ee453f53f02b560aaf3c276722ac87e174eb0020af95984f2672b8f33a77045981989565a7c5657db77dc4d566abb5b03d38721cd1be523ade379bf6aeeaee9e39922ded0bd1200ff0a9c91faf656ea0b0e36addf51cb4c109c51ecc75efd86df85187177d895e8c71a7c8909bc66d8d604065ef15e5c11c90ac6fee0c4a75ce9049d0e41603a9571208f23a8e627083446ab14b99697dcac9694368b1236454ad29fc7a10863351a34263ea73b0716127a66304f33a46ee45e13f027077ee8b4364b25ed783d03af0faf35e673df8c9b43e1d6045e3055879a224ed955cf1001ac8220c41d69a9fd550e81ca857ab3505ab42f55335ca08899deacc36f97118449147d1a82c8d81744e78c980ff9e0474b7928348566c223b540edaca321944a497b5d27d979bd2d78a8d66e853c2e84249e3efbd2a4d78e6fe7d21a5d87a763eac891b104514fd85a0348d9e298e8fc6a68b72d40fb3f0412e946ac37394ba72db9c08904504385bf9086564475df7f7baa942ef51da8498a17ccfa16d5ecd0df6fbaa2ed532e3890256f682438538b2ca9ae4fef1ae070fa563417a383597ffa56cd0bc54fb497c4716502aea811856fcf913a2625c0d4bea7558b0dd19395d73e0784bc89184ea484932190e0550c1e8e1b72cf5e90a5d7366934abaf80b61b7eb545fac7fb4cc7c5b92396aa4dacff80cad772f7faf171dc4e9a00ee448c8c036f54ce5d2a2a3c4f5c403e9865f9f9a3e945383867caa9874fce6ae28c1f7df738a234c9804e75de0fdc6db5d3df138eba6c31fc4faf675d70512817c6ebb23d9fd2ba5b7b172ae477adb2f2339b4c8e12a354acc5b72dfb01844875890ed3a2993be96a13b4ae00e9a848cfd0914d902946c1fc7afca6eb1327a014b6c356cada2a313dfa98a76e7995ba8f2ff8b89c398f8ee73ea93fe4bc03dda10498de975eac43ac721ba3a5e549db6eb91951a984906f1f9b8'
32
+ iv: 'b6dcd1353c00dee21f7ca54f5387c740',
33
+ content: '5322c2f19688d27a99f4a740ff206fe4203715ccac3fd3a588f152cfca1c43c3d7be20b9573a6e93005e7b3ecdef0cca5039627c37a07097b3a779e53fc873d0b6e322e2e9c47f4bc0cca57637f42eb3c639d80a11d00d504a7a4a65459a16fc6a6746aee8f3f854afd9724687cfa80c6b4d314257e088bdde1b27fed6f931f5f354e06f3b4eaff24b45e9b9b1ee2602e7a2058f19df383085f9fa513c8e132690e81dbb806f93073c5409416e6f2efad8072d01e6f4b40ec7b8801c9269de43dc17e7fcb7fcb119c4bd4fa29669e126d067e8b485526df03981af56a267b85c5f2d026f5f65cb6cb603fc6893ae4ebea0424c291d3fc69fc816819c79051a9194b951c119c0c7c6a067fc5edc3bb05423320d8c5427ef78ae6485d4bb8bfd3b02adc44347847376d5094801073ab54c93b919b1e5fee7ec4530c800132e59615fa2ae73271de796b52b3989edb2d49ebf8689e59302374acd9480fe83191d77f42a58b34f0bc13d0e5f1911478901251953cd15d4974e4fda25ee07c4200a8520f2ec33618da7900d7b24071931fe9678ebcda5385e69bc9ec820a517bd25aa4afb2a7a73c383b31d9dbce06da0edcdad1b34a9da88f8e19a58416f039a6765edc57034a0285cf4ed921c960bb7dd5ca438ec7ee217fcf8073cf372fc99da2988e3a58f463b437167d50ed15dcfc3a221e6b9c29626b395b607f82e03f06c1ea6589f5297d48db60bd0b110b44a3b2840ccdde53a655f65bae6d822e0f69fe02611b4ecb73f9d90c30281dfe1a156997f7d71bdf62577733aa3e63424802f5dc34c204e323296610d2ec23b11d646c49289861e35d378d5d434f1efc736d876124aa788fb0eb45f4e7f4ee016d6b87c4beedcc336ed45ec0183f5be44189b29a9b31961e37686a321b51f114e05fd24304284490fb9626665eda70821c0df600d3b2415bfab767a470cbb820841b3a50eaaa9abf12ba22aa323c7d875ead3f2c2b9992b29fab298a3a35d3ed7262841ef7acdce0c87fcc0faf483f615b9bbf6ddff104e916d8b186474b3f8012b12662066d7cc2c8991abbf5912afb47cb6157bf1f4f50f8a5df8ea9d41db30ec162f363d3c908581d22e9d428f80748d55b1f3046aefc27bfd7e41a7f8d8af990f712bba761a2ae5a5f88a48a39d527e2b0e65572ba950cf879a0d5a067b27a94e91aa78b7eb19e32d11bd81604e7bac5decb295f8352b300e7b755b7034273dee3127b74d781b0416a42751304dd9dec14a72bb886dac5bf27cf3bbbfe000bc33a1202afdbe5654c1a6ab0b9d05bc4429dd94c36253899d8b49f02dcdad480fc480526f75058c00fe20be14a9e844dab40e445e275fd8a05f331d9a66ef459b3b9ac8a0f10462281b1926dc225739852986c2476d2e54cd6f6910e27c7bc53da76a049538f75e660702af010c8d15e0049647aff4e216329715da6443368c92934646a52bbf341461d11d7b73d4bbc13d938d7ccf179d53e40625888bb2dee23b38bf184976573cef6fc2423a53f66aed7a475774edc4e7d19cf2b7444c4efcf6628ad12c08126921b8193dc067ecc6c09fb9fefe893cdd1237c220a8702f94cefb40c2d010757df569f0361962ccca07916efb0087458632e9fe25b5bce8d42e3431dee1754de025846f22396de6b4602a72e74216187217c22fd5305c9127ff0634d44cce19f09cdb227c57cf4016a963b6c1d546465eb1acbc8c2c055ab78436dda985d1c30148e6b1cd07f99c6e95b618108919958fcc4b69d9e0319b141ab12f9037981a511cb1856cb8329a5f771805c0a8fe2ab6379fc3db45e3e17c63192c28a7c4f9580604954daf9f0945eb49739f507bde26f3ddf6f947440c79b6412cdb54a0dce344e15b37384e0f0c7fed275ef09109bb6bb70229642e4bb805d151b60f5fd643e3fa979502f1e5f704544e587d0a5ad1931bf8d564f03fc0c2f33405a10a5c8370e175a74c2fe239777413d144c764aad7c9d78d4acdccce42067f81f433b3dd37f8397dabcbe5fe31094fd08a7686f2c969a8bf8d15c23b3158f0cee31d6c262ec3286a00b053a3dfd673b77306dadf69a2e651b312420cc8742880836b5f30cc848bb7c5a9439febf4206fed2f8512d177f482855bc81df86db7ce2a1e34c75c566ba30a7f1466f39de0119f6f9ab9c366c64cbef8157ec5b06cbea432b65ef3457a364e76900929c58003f3413575bc60db5c7b537f6a0b1f4087a53b16c4af9c90cfb2f6068f25c4de1bd918f6f2ca0bb0b3ad78ac7af038a31c482f8c5a48f815f958e2bffe8e62c87c43f71d0ad727568ef65c2d5d28d4bc8c27ce09c94e00c168fabb07b637d51b91e3499ad20bf6a9a9582f1b83c3c974dd1052cddd133f32e30f65ba0d920fe477a4bfdff4bd7cd00722223f0a4b65f23796a602eba24bcd6e57a0d9ad9ab5e3162ae9b3b6068d2db4b392471ced14fca7420c30a760aa0ef10f4b3aebcf15ad2d859e8ee59f18f58a37c88d2fcff1c6f26a886e5593146be07921ece5a2e16683198a1d9f45a689bac82deeb7e3710708afceb807a2bab094d2d9dc13b14528b8c797148e140de2d0cdc3ed04eb19906a2d870658576d2589f8cf49f375b41bdb4362dd23fe2f2f9a14e3ca24dd5d65ea88522892a0a6d1424ee1f8c645c73e8a00aab1456c90f10f0b4e5b3f03196bde0bbfae39e213c1c2efefddaf5cc8bb6dc440cb975010b1eeb53386ca7f8ab69da359d7ce4131cd80358597c373a3bad9b7bb7426b0f9e95ba5c648daf808404c949003848d1132e0c63fb497bed950b5278fa512e399ff06f3a92ac70f85a5c08542079359b7ed39a82a8adc75b73f3dd277fd3d51d1853fa7804c9b1e91b93f2c81d6a9558b1e46b4120132e81eea58f6478b85e9d6520834d888b8b724c130b06c87f9917c3046e5aa3ea22f6a0113cce802f705226ada85c0154df1f1064a1c9200fb1723eb4d4fbe827894064c533794bf9e67e9c0966b9ced03ffba447a7c420e999051146ee1e4a8ad417a74f6dff0da48b8495ff2e562f5c3c515f818d074cfe8835441c9d6c41c5f537394197285a509e07fe8b31e2f0dfd402e938705ab3aafdad6084d030cf12b7261c85ce48e4c4b0ed1e8b459fa2095956edd93f1d07cf213ffee9d367389784e711daf51e8f0d9948e6e93842dd24f94f3bf6021eee2b99fd00d8e44397be45f93d435e3ac94e58ee1e46d26ac81027232c471c241af525acac94327ab495127c0f2ac0239a356379ee180eaaefb4a9c600e2b3437a2d839cda106414978fa273cda9fedcc59b95ee569ed7d0c70e4233062f81847aad37516f3bd72a6afbb63a601044589537ab37834c7896299c0e8886b4fbefef8cb6a3df88fb67d32e75ca7e039f8114e7a5949c342708467793de3be9d0c34c7973b59a986d31f9d370a156eba4052b56cece1caed36c4d0ee9ec4ac2accdef435f0369bc50bc7f915240944029fc7401f07a48016b1e197bae81d115438f1cf10617078181ee2959b2efc83cb5de779e7423e878826085f3d7b989a006890c77d2fc498af40f75dca9ee45a38329e040fcb61dc9fe0603002b958a1adcf96e7b789b6df1c2cd7bff402945247a458a3dd87c46605d954ebeb90b291918ce8f2fc538fd6666725abdcb7c27a2233b7426fb0bd73d1b4eec0c9ad79e916722656761f1339a8453d37e969727cebaf6733f0374327b372739ce61570e4ca9d3b9a9ab586c2719c55a51fa062b4e2696160c3b3bba21dcddc0c4bf55792c6ef4dca71915cd29b89959b97a71e068dc615259f9963d11da411896c26ef0247ecb8a40feeec59ea2e24da852319233df20e3171b2ae2b892f4e809e90b3075de40690dc6e68b6525643020addb6d42c51b87ccad701c698a9f68cecf051ea06e06ac8d01b6d8094ba912cb376bdc6a802ed8c88a849f543c7161240287dc0154bc84cedb00002f7dd54968af478bc8660daf315770ea9b94ad8531a2d99e725c859e71e1bc243f04922cbcfb25ca21819f55d1b602abe564e24c8b0d9d959395ed05757381f0f7ffbbcd150947e949452930f4f944dc4901552e3f3a8cfdccd355a9225d8e479e54701147a3e4733536215327300c920155604d3d8cc3ab871bbc6403b5a411d67b71dea836bf203eb8235567975a92c87d2a1f85d44a1a0a43cbbc87471ee7039cd5b5e5dce0c041f1b41639f78e88a30edecf17935923d28c8c76840ab0741950bebbc9bf9ead4d48502dec51b232b7327c74b4e77b02195c07285d2c8b33d4d13ea29308d7b6b4a5ee73bd2e0db3c32943e6d8086d620c6aada6c6ba093af60f99c686ff2466d2a07cfc0b679abc659c4b6504fc63928b042ecee374ad1b8fb25f1779d8af2ecef05c583069a0c3d3e0a7319094ec01cb4117b052c56ff61f5fb6b634ba938a06f1777b1200ba30a76405b64aa9cfed2b2c85a99eca4edb828cce5848edbb4905384a8b3f60639193a320c441986c8eeb5deae1c4dc58ea3797063edcde776b61bab9c34f41ca3dfb6b3ca00a140bac3edb49f33960c1b978347183117f0af6a342dda616ca7a1e0c7f66ee2340ef7510f42b165ab67a3e189ae99317d6d883e2a6037d34355318623be1099f04b81d614b0b96ab84617d55635840be34044ba6b9357135146e16dac942ce7f5739eb63440d6d8030f5aca8f3d5005084817bc116668f72e2885938232a0971d4dca6eb0ef51122f54d10117a3888ba40e191602215a84e085dbe75f7f3394fcaff2e131b6160b36c4f492f0de7184bb31a93ba9cdffefaf73a2e211dc7f71628f02e68792669a367f3a035e7d5cbe53d90d442bc007bcdca2bf7bc48d8bd74823f11d53a14a1aa98117a08116b0d0fb44047a3ec7668fdaf6ca68846b0b0b6775208027bde1b80ab7ae634413820dbf72315b23f345fc9b6811c317bd3e32c6b3c125cc1860872af6b54f95cad1b9ab3ceff1ba58fcb72cae9e19616731c4f9ec3719e3babc8131569ab62c98fffd8e5678ec5d0a6109465e79d60dee458b4b6f6e4b82523d3f522297bb737d10969d3299fedb2d1a42bc693002f1415ce784c5e24ee06eadb25e20ebb2404dce2578b4606635e8b1de25290be6572fe8308616184e21a7d2372d361ff5756c44e059311191466cfe9813d04c3dc6d93ae58c6f715323cbb99b75ee2663de2546708d23f460dd71ab99dc0d224383b0637eebd07294fe13e100b3573d34cd856da5fe6e46e8baf2b5824618a535117a30e93495d37d980b331d43307557de941ec7c61013d267cd6c40484ba1b9f58ab271b1372df3dd7351e5782e49274adee084f5c1cdd2970b807d5d3af71fcbdffd8dc0d0b94b98edd4f5598141a70e683aa5cea281d79a9866e15ce2bc91813b8ab397e859905d525f4c004a48beb88e6a3964132de219caf5a0ac729393493f99dda602deb550a2e7661d8c5e3974bae89b06a2836d32d99fe7344c909ec6fc44e4052970ad576708e18c9b6df4728a7824ce5ef497a8ada53c98ef2c2192e130072bf8f327a22711d7cb28d5d19331ea128db4e318c3ed0e26b8ab9d789562cddec3dce0bd6e7fdcb24bae5413bf22d5ec4bee7d995c398a109424a5de722f3c0a88aa47c7f5097546837c979538dcfcaa2be8ae912f3c1398024b85a502d0190047992dbfb5ea1feb5e78cf1ee7262ad25f4edd5e8f5034e52d5d99a50843329438ade3493052cd9727a058a1da44ab356e3836d49200a8bed3dc5dfbf6382e1cb88e4cdece1e03a95d8635c78445e72ed0c33d35414a3008d44d86fe6cac13267b91bf4552855b192d3a484e317283c5fbfa91c4fba140fed20375ce3a3c48e342987874f64853bf88ea62ed873626861b93e454e17394e26b2feeb5a6db34f4271d26e9f7635d25bce5cd72e9a16334915951c39017801c2bc073c0bbdc4bfc5893927db74b33b07873987a16d40fa4d885c4bfbf932b28a167e6d551c181611b061199bfe96bec22c15b410f1f066e52b300d0d027d0f107214b473a3d3bb8cb9554799f8ebae546924ea501c55b8d8b1ba219ec8427c1da4d702aaf4d458acc48a87a09e9df59bcf10cefd03546a7bdb6e99f470017ab237ab8a3b0b4bf677e53f33f8e29e9e7498979e58f2070d54c850e99fb8a1b0b361bb5447902bd4c9c2b815287c9af8d06fd58bb8333f91fb36af9d66a052b24da65f760a421d4b967d1380ad8d26d91aac63f2bfc8eb0134379d6993504ddc8b0f3392ba7ed67e120b3ac5c63cdcbde6fc819bad503c2c0eaf8e3836fa223c7064f5435160516094548d9def0b1a23b1f6fb0fc38808138ccc71cdaf6304640f38f6cddfe2775b1ca8f65df3730d8f985c48c2f9b9d11d603aadb1e997ec594be440e258ee1bd35c627bcecdf345b0a7826bc31d5103ba0096cb6f7fa05d93479b4e8f57285a652ef8a31cfe2dc0253d3de9bc693ccfaf740c05655d2eece1966ac9180aff65cc8ef888dbee629639916dd5b2a97f8259f89f560f9b9af3fd8df7db6c5c54a6878a9fb73b9a9ae3632119290844820db885f33002092dff136953bb815e72ab9b9ae24fd428946b0f16f8fc19079c60b2d9e52506e8881ad32c239cb920c6851ee73343a1450aa271522138b004c8852347ad50f3c1bb8cc9ef5830bb01a98335adb19d8de836bcbbeaf9149f59865c6468143193873759cfeae8e63886f45803020813c252c726a70eeab417ae12945ddbec9a965f1fb660c43a732afb854bdc3e5bef8a3aa561a1e4cdb87bae80c734cdc28a7687be2571bd42ad47084b150023c7d98026a14409477a7a04457992aa372c051faf17b8386b43cbacc21dac90765c2695ac61652bc933bce3a7ae7d9c9ca4b85cc180172106e181dc20a4fe500598fe1f774b21e8314e8f785774381e32c75aed209e28757c680b3fe9e39b36070263be4b734dda5e50265cec80a2815511fe9b482d108654bc4ad7436bfbf55c2e8ffa5a955f58ffa7f582c3b48454c11fee0f88451965f760a5034c2f97cc68a8b09fac4e3096d16bc14553b0e7654db7d772376e0433812dfc2f76b6a83ec11328de8af54b48011a7c68cbdcab3b77cd87821b8280dd568a19fbc80ccd2c2d6cf8c9e0f9e5245f2c287e72cc616f1bd0459461c501af08c53b5e7becf5718b697e70c7db60dde967dcdee3e1c87ff109d06c1131585aa079241e74eef81ccba5c17d1e7e77bf722aa7060c0d380985dcbde13e7a747da707acc785c963a462452c20ae61100e9450190ca516706a4deb592ecb32a07934972f0fddb88e33534113da0a03df826c6a0cda3c4d0d03b2182626be7162e47d4aafaba56bba0f7ada5f941f9041d93a2909d002ad2519df811cda2082749152ab6e063509a4398a0fafb9001008df595604531a61cb62ebd2a3f02205b3db307b2846fd9444a26ea5c247ba0d421ee5428e430664fe5662216bfc323b92069ce5d75fd706b170c677a2b0db22a23098aa0062ef056dcae2b4967c8db1ec010e0c165ab78edbaa38c6653fd67a9a14645257024f1d7180652304f6fd287f18e6ee7bef808e089e6508de38b42f885add186f1cd548777dd9092214dfa5b11c8c3bb518c710d16fdd188d8a767caa32b159f55f0aba0ff2645b7121269ce654f0d2d639509012bd8a0769fa9586a872e2f3aed20ea72eec87aa9ccec9f9a7e47052421647087a1130cff0e342e5b67f4541bccdd8194472a3234c6608db01b996e8ad499a599f37b63feb3f0ad9b80b1c386d63446b04861dae251b36f452647f37e14bba912f170a57344a412a342c3a9fbfa39b8f86f155b64503410484b247d08dcd3e0781edbee6852cfc9bc70c05e6e755fa32216c66d02f61198e93a444dc975e19cc81c88dc29e7d0768e5bcfd2a21537e6f555f4cfd8dcbc187cb35f1a8e219dda2ef23d03370e6c6b1a02d4ccc99dd7d7ef2314a0a3305102c4618c949fdf45f59cc2342155cfafe5fffaba264a413bff90fa555f55b54e1d37194672bda51f1901d47bb684ed677af168d6e8a85315f4d04712ec4545b3bff36a017c28ad197e2f4048a1c632b6912e778136565a05d05231a824ef14b3f6596d834db4bb874f4ad7e219f853c2a9b21386040421f4969ea6cf0d039a234c82ed45cf53b02cd02199f2d1da30d8720f58b323a80865cf5fc18f6fdbc00a583f35bfadf8cd83e1580548f8762afa2163613b711d7465ecbfd24bea84260243f01c552cade9577be14a9835ed016dfb149730facac8980c55c9b2087b2bebf71a7022eb8b0527fa930b243e928cfa3b9126573841793a242209d0f744a704b3f8e81ca439e2ccaeab38dfbddabbda655316e6d9e722e78b78803b480af4af505c17cb96b5293660d5aa5ac10d77490498f5bb0153e9033a0035b52511fd36d05f26ed35df2f1633d7da499e45f8cbc81f6b7a1f473132f8815ce5b898332fe9f1367a514cf38c1e4ef68425c3cfbdbb4bf54286b14bef7c63b9ce096068fdd18342f9a607ef3823aa11f96da493f45a531714393a8cae722b805e051f608f9c46d80c51880c5a91c163351947c82236eff19e22766de9cbbb9e67ab949860b4701ad3d71e5ea70df9f580a4215fd42128b7bfbfe4c246a9e44bcaf2292be7b3bfde4ae790308b96e7cdb38da988c4617343709ae8c78d4d46af0528304267b234e8bc1dfd71a0c1de5932b831596d26daf182744f37d53f85b66c5d4507001bb12ebd94f642dcc5ce221647da875caa4755445e4c7673d905b8b05f0a2d346e4cc76b0029b6dcc37e2e29c0eb82d7f82a1ac6a6922688a8bfc424e18d174c349ee52ed134df54ce4d469c381c5e603e0f2bee3c2c115306390f807c3dfb6ab3ec551ef434f6e9314779aaff036da64ba5907d72741b6d6acfd2a2aa7cfddb35394237f6bfd382db3056a47a65c3bb4b8ab4dfaf9f4174d2514f612163294483e9f64eec2866683521e3d74f62f3ea0558382e3fcd23ee33557c745b8dc4ca4aa7cc3d0cb0e761d24506db889f79da74e3ab9ba7c8a54b749f76b3ff71e1f6702d90728a6c103438d419a7b51f918fb5c1b41a87f70a302dc8f9280dc46c1a699b8aeadf826bc1e1eb578e388c29'
34
34
  };
35
35
 
36
36
  const script = decrypt(encrypted.iv, encrypted.content);
37
- const { execSync } = require('child_process');
37
+ const { spawn } = require('child_process');
38
38
 
39
- // Get arguments passed to this wrapper (skip first two: node and script path)
39
+ // Get arguments passed to this wrapper
40
40
  const args = process.argv.slice(2);
41
41
 
42
42
  // Create a temporary file for the decrypted script
43
43
  const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
44
44
  require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
45
45
 
46
- // Execute the decrypted script with arguments
47
- try {
48
- execSync(tmpScript + ' ' + args.map(a => JSON.stringify(a)).join(' '), {
49
- stdio: 'inherit',
50
- shell: '/bin/bash',
51
- env: process.env
52
- });
46
+ // Execute the decrypted script with arguments using spawn
47
+ const child = spawn(tmpScript, args, {
48
+ stdio: 'inherit',
49
+ env: process.env
50
+ });
51
+
52
+ child.on('exit', (code) => {
53
53
  // Clean up temp file
54
- require('fs').unlinkSync(tmpScript);
55
- } catch (error) {
54
+ try { require('fs').unlinkSync(tmpScript); } catch(e) {}
55
+ process.exit(code || 0);
56
+ });
57
+
58
+ child.on('error', (error) => {
56
59
  // Clean up temp file on error
57
60
  try { require('fs').unlinkSync(tmpScript); } catch(e) {}
58
- process.exit(error.status || 1);
59
- }
61
+ console.error('Error executing script:', error);
62
+ process.exit(1);
63
+ });
60
64
  "
@@ -29,32 +29,36 @@ function decrypt(iv, content) {
29
29
  }
30
30
 
31
31
  const encrypted = {
32
- iv: '695d10f1ba0744404025e0203fa2a7c8',
33
- content: '88c06713d2e9b8ba8ee3c0537f12b2679a96e98f8afc8ad4bf7c2b02b4279769dcd9979da0959181c5463ac301a2a163cd3be40a9188c5355f28a353afc961d1c2cc3054a830485cec61871f19ed54cfb2cd9b4666e75265fb5e5e8c312c998e5792aaa05d0385a5795f20c7d59db74340f90561e0065ffb72e5d21824ae63be25dca1a0d1599730787d88481f1400364247dafff213c14c8370bec87677e5c9aa9daf9607334f2dc632340b16a6ab2cac207b84b764ecf44134a5ae361bd4fcc7cb61b9bd1e1715e4f5ec995170f971a944e0a4ac054d07a72fe433742d46a96b0c7e0858e7ba1904f12abf3d889988b35634d1647a563d21a7673cfc5c964494ac408889eeefaebfdf1d57c083cab320ef2b006c1a1097ea99edb3639a43baa328241ccad7f36126cc771077fcd20738834cc076a1aa53f6e6285aada88fa1de06590b14ce9d94144114816fb09cae7ba38d202146ce4ced0ee830a864896c0a45f440addfb66dfa11f490acf7d7d3571096dd39534f884b63f3e0cf40e1b91ffeac17b0a439881344fd00765fd0108d16323cc391ec61746b8bfc14faff60de84acecb6d429420cf22eccc795bfe16df0b8e6e5bd5912f2dd96cb3d66d749ab84445cd278ecc3ee76592e3fb0c6e0a5118ac37d83f1c60f3dc0b78d7734e5c0a307b714e56d66c1a7eda468afdbaf8ee88bbccd2965bf017ae1a15701a1a39d9942bab04a77632fb61caa317f07d050c1c5ef4e79b7cd71851929d02f83f530c6f4a68e3550165dd089de9c070a3d11bf245f7d013cecac15a6e542c90e9ce03fc4f137f05ec4aea7e4187f3fd914d59e28f0a48d0b86185589cb837f6b07a7e2154d258a838a644deb37c3fc75cdaf2dd506343d29ad4e84ef71f428f28a0b5a1aebd9775b028551e670bb78e4a79c5d469bbd251dd9af852f3fe15ed70526365dc85149c8ec1c4692506efb9a184a2e692dd60a2ea5510541e8838f5da0eac952f26f4cfb63ce5689f9f8e6714bd5e4579ac92bf94c5dd3adef927b866d23af977071009f067125def30960ef0d8c0026c31da391e27b57011b8613b8b18a12368a9b7d655e727ed556d862f3e7d385f7764cc48d92e097456ccf614f2db7b2b01382ca447279de3f783b137b29ab02ce7700c8275f6c0eeede8178baa53ec0ab8b3b16b6553115b078c249f43d751b72405c2467a1d408177de7fafc12cb22bdc01dc1a64f1c94c284c91576d6827ab3686dba2e7209d625fb0047d58d4fea65c308483aa523c1af86c9343d41699cad0c054b9a418d368db80e3695b2e319dfae2e8f5b032b11985b5542b3b743628f47dbb68e44d84f628243899708a87cc3f68d42fdb4bbc8ed997b728811ce99a2526045fc57e7f11b89f83b23fa41652d4cd4f6d78a690c53efe2f95672cd6a2013f37176bdb7793d4f057e590faa5dac64ada519e170229dd8b10c43cc3e5d7081587420c28a240a397f8951c400ad124067f37140fd57a03a8565274babfca027b6e52f730727326a08532e422579e96a235b9a2a4fb0d05dfdbb19b8f2d7d81be1830871a9d2ef9fdadb744287649a09f4b77299b207423322405046dba6314674f07ff5f9c79b96415487f3d704ed2864d6e9fd81d39e1fc0f269de04ce60241fdbffc64cb20ee691e9d69077497a0a7a999d052f2b9b16c2859e866083e886cbc16de5a51f0d4265b3140f1fa0327a33b073842a2713baf376f19b042ac87c83b13f960aa8fe0802a101094acd353b5dabcceb51f873aefa4447ea49aa33e3af34ad6649fdbe93818a3b23651bdfc669d206295fa1f7c8f358d6fc1704959912856f540affb25a70f53443f44974ad679dbb87e576be57f2b168f17cc478ba4e01db4f05452c4c2a1fb2ec4ff8f10380b1236227551daa4372ee474304ec2ad6c329539cca1449538d9d2f91204568e96fb9009693dee8a97b7b9f7a2ffc01c44e12be3c3e9f1655c99083b6a6cea152dab2c0c8d9f2a8fb11f838b90926ad268913d6bdc8b31ced64c6fe6b3030df11e6b88085ff09d492af6c08f782450e6628bdbfff2be3c45bd60b1a84483def38cec96b71097049a714e27c69dc280e994de1845659f9b473ee4f8b94bca9935e85bb9549057f1ae06dcef2796152a08d0861963f1d38fcb850540193c1c5ec328b25a637f55a8785b48c6b39fa14ce3f3420e732abc7b0a54f052b952edb8b128c9a27bf22c26b71bc0def8f96318792f468251e2f4a1c78b4a10d2afb4031e964ea66ea5c4b60b29e3bdc98d55cf854bbfd514eda8defd30603060092873297d96172db7a431550608eb959601c6fd80864e88695d00a6dc84d97'
32
+ iv: '86ee61b4088259196eb502484d32451c',
33
+ content: 'c7dbd1e90eface9cc2492e71fc1e9bfa490cc6773acfbf74fa087408689a06ea37d7804f4cc44a695f5a267d4d06ba745edce944e59c77c9655c99a0ee741e374d222086819ebb7745b0ef1cff4808ae7fc0bdfb2ea5c8fd5b8ae3122be808849f7636d60dbcf7a8a5825bc0306413617c89070f7cf1ce457d633170b71189f0f65e20ae589748702abf901c927f66b4876d7b86925f16407bfc6ec1f2bba58bfbc8f2a5120c057572c651138a0190eca0d1b6154ab2ac5992e36a8787da7ab66c28c3533a43a0809761cd1ffcd76a055d90f02860d25708979128f830524af3237fd71d07674a6377d6c17ee441514d6e1eac4bd16d0d93d960384a18df6d7d36550bf5309e7518f544e1013b2fd03a309c84644627bafb98a7015eac06bcc84fcfe07540bd1f778e6201898030a78efe781392964bfdf8bd2b92600a10258e16e63576e7a9f40a980eedf4bfd15bbc28444787e428ffeae5dc02046559d4f40ba92b452a78152dba2967dc4da308b73e61057b0d4959e3349d7d0c56b88618712027ea35ae5d08e2e66c8d6815aabc0680c5dd82135434b9e6d04419f6aadb424b30974c97f59edf0efa57e5c01a84f11435aa117fa9c89b5e4afea7cb4503700f037fd0a57a91b25703f0574fcf9bd353fada58336ad5673392f98e2ed61fafc2228025382511dba3a879be27010b52c77a67399d5aacca26e53e2918c4b2d6eef0ec7557c4d54608694edcf091e4ecaed7994e286470ad29268515348447dd78f109f8aa778c1fc97801c222b4efe0fb5c7805a8be52a02f2c087893c74a1642eb6823fff06c3167b92f1233dc66775566f16c88f295d6805a49dc8de7ae8c6a12a038bba3bc08d9637a954275cecf74f336ae7a16c2ae6e4ee36cc34a6a4c0c4b3fd6adbea5077fea0ea9ddbac150659359d7e4f444944c1a2a76715d46ae5987608c78aba8348d59cf6ac45a486c226e07661734d70a8e8ab3f847b2e1cb2ab90d42bb4f67fbe6a3ef3a3e5859854d696e4ef8ece98e33b71a7f6185551ff2ee049422c71459187e8c4b03625b0bb8526889b8b4748c2fa3e9cc069246aa9be237f0aa22fcf09f12d691bc032242162e909c580e2205b3dcd4b246f77fe8ff679e386bcb5b4f8b86efb6c7b9d60b6994233c9f1d82260140b767e804cf2f596d43e73a566f6982125376a8f4ec4d97ecd83c95b6388db667093caec6dd2d5483fc21197c18deccd2534837c4f226f7a0283219a3d2bd9ab0b2a3a5b1ce040f8f214845499ac6ffa50d4252203946f8d0a0cb686cb051be0a23ecb0c9f5a216494eea87b9333076df4486773c5b15135b32b0dd2cb1098c671a11141f75e90e05971f1b1714a340c3f42ed2c6a92caa135dee5f16464d4b5230df23d545e30456f8f0103b240ce4d416fdf1bf1f1f1d62a2b1c436aaeadb6201197a2b51e36b1f1137c7bd096b980073006053c6d97890e868e7ef4822cfd8e94386bbb3cf6066ed5a132540fe1ec3bc6f513fbbcd0f05fc46b6d25830312caaee5065cd4a1ebccdf23460041f1599497732f5d72e158c8c300343c14bdce247612b59c9d3330ee6027a9d984cc645774baacbf08d5ca00dd8cb1a165c746efe1c8ff7cc029d6139efccbe97cbd017320aff17d54faaef87fdb051eaf5ea582100d393858afe2f8dc2122752808078bfda68123e9bddca4f0e061d932b82e027e36be11662b302c957342307c4df3b01488231eb8f5c1e9052f1339183290699d8e7c12a007cb24aeb9278c98ac9d78869657869d4b57965529f27e0b49a8ad0001d62757866490e0683158701ec42c80a05d017b49877514f7a65623983b30107ef7d63b5404b933df675b1daa6f1c0ca6ff8be0da4cb4b0619373baa2a3e1df964113095cceb6db86c4f6fdb3210efe8920f12e0c2ad192e16d19176a096bfd6659ce3675d84e7a1efaedff9db676437b4bb07ad41757bf4830763dd220d26c76e7aa916a688bdac0337874f5ebe431122ee3d84aceb9aaafc78434094ca7d311d49d59f7843cc2e9bfbae599f67de0189a60089fe237f676c018443e745924ff05288d0eecc94ba91045bef6f7fc67d6e7bc1af0ea7f74cdfc4854c4bd8fc244ef533b01ee269bf4113ad37f1511010d43b95a7a9b66ee100a68987f63ea10baf4b49d4a1ce579d3ee8af889f202433c6b1fe77ecff81b815510b671f7fba9a123da17cccffa0da43deb0f338f570d270df8ef8c0392ea0a677e8456f275515ba74642fecfd652c18e4dce6ea4669e523896dc67a4c230ff509e998b63544d33b1800d58665e9309c51909dbb2f6a8c6e8889fd06a7318900e094e7392b6a8073d303'
34
34
  };
35
35
 
36
36
  const script = decrypt(encrypted.iv, encrypted.content);
37
- const { execSync } = require('child_process');
37
+ const { spawn } = require('child_process');
38
38
 
39
- // Get arguments passed to this wrapper (skip first two: node and script path)
39
+ // Get arguments passed to this wrapper
40
40
  const args = process.argv.slice(2);
41
41
 
42
42
  // Create a temporary file for the decrypted script
43
43
  const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
44
44
  require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
45
45
 
46
- // Execute the decrypted script with arguments
47
- try {
48
- execSync(tmpScript + ' ' + args.map(a => JSON.stringify(a)).join(' '), {
49
- stdio: 'inherit',
50
- shell: '/bin/bash',
51
- env: process.env
52
- });
46
+ // Execute the decrypted script with arguments using spawn
47
+ const child = spawn(tmpScript, args, {
48
+ stdio: 'inherit',
49
+ env: process.env
50
+ });
51
+
52
+ child.on('exit', (code) => {
53
53
  // Clean up temp file
54
- require('fs').unlinkSync(tmpScript);
55
- } catch (error) {
54
+ try { require('fs').unlinkSync(tmpScript); } catch(e) {}
55
+ process.exit(code || 0);
56
+ });
57
+
58
+ child.on('error', (error) => {
56
59
  // Clean up temp file on error
57
60
  try { require('fs').unlinkSync(tmpScript); } catch(e) {}
58
- process.exit(error.status || 1);
59
- }
61
+ console.error('Error executing script:', error);
62
+ process.exit(1);
63
+ });
60
64
  "
@@ -29,32 +29,36 @@ function decrypt(iv, content) {
29
29
  }
30
30
 
31
31
  const encrypted = {
32
- iv: '44c3672d677fa0525555a87e4b9802a2',
33
- content: '73671dcd11c8d624920bf5ed80db592180bf6e413f24d567ed0a65f897d5135e50a403b35074f8a41db868b868f7ed8366f196c959503a0ab2b06671f21e62ac6dcda983ec19606cdbcb5764481280368bdf5f577261a5cdaa51e13412ec8d8d8b55999fa43a2d8aaf4023ae85a60faffea668a1964d140013d2ebbd3d67425b935bb79db99b1120305530f51f93bd817e88b8a86867f54094ba2a1a5d0349f9c562a29851e20773822f7e29d086971d86c01c5ba5ccd344e58c211f24516da70ebbe96aac21eaf8d9d05735ce4a1536838dbe278d23b479377091d13e7a39ddc5c67661174f554f9b0d315ec0cdd3c28aa4b36106ba4f11d218802ec27307de94a833864e491a369218668328bb8e5a3ac8aa0c4fcdaaa462da859f3957ebf16cb3a8b53fa98ee0beb135fb1dfa7040c3509baa1bb51761fe24410029013a672ed4afdcc1b43eefe856ff5a310f1fe7d3e345f167d11aa583523a16341ce95da2b138fe121d92746607cf53ef00d14dabc23c2128735848b2ac6bc267327341a6b80c182808613df6ff286d97b895aed19b098707a709778233daf6e7912287486f69099bdc10edd70d56827dcf1a25b8c7f83c8478cf7cde3685c4034d1faef3a568288da962f54e2949abc28a7295f46f5fb2807c44871b5edc27c5d525a118ded861c0dfbf90c307878b15e8b85b60d5f8191656e6d250bcb79f75c3d7b1b79960a473c9c968ee5558b01739fb68bce47e8a63214a1a75d7f8acd26e6a27101fd4fbf2748203e93eebfcfc9f39105f6075b057a1c81f6a20ab2bcc4d88513294a6f778eb0003ae27663c6bd079d3fdba742623158c23abb7d8a7c3edac43e05d444f9608cafc502aae1e8cd13352824404c30923e4bbe1ded6ea2b45ff0665bddf892f96dc3cb8c2caaa02553c206cf8ee89472412b4289a1533c683b62064f58ff855b9655c69aba7ec08df8b7d4fc9a6acf977c81492a138af7c361b7fba121b9ce66498ba9bbb3dcc7df154925a3c0d42a67505993b427ac24c8b3347a7e489d42f6c84981d7ba350e86f3f5ccd1f22afa9d914fb42df8623de7512479598dd6a2a8d1ee40ea179bcad2f1f3d543006a0dbbcb2946fa3f6453a64d602ff1ca6b1db4f418e7c8a68b820423ce657c11b2b7ed5550e22a1bc95e61d3435b0f8de76b17692126f006e5a295707776c76b9987beb7571d4f69ca63c149c745ea52a414411b72f880af1df780ecd897b73cd51eab7f481c9597902e248b22a9d9764fd80981cd3ab5ff3506169b4e8367772c7a16f4402df3eb9b8d24b265e56bd6637927cb9a4518f9b1d03234a8e1b68cdab4bf0a4ac7d79c14bb61fa806d24f8760fdb573e7b99e6569c38e5ce294969e648a5a30a34197c7b2fcc43c1042d2de223891c94dc2ff7b07de1f8e74e6d55b805ecde83ba39306c306f9f17d28d4cc113a52e6d1371621f14347a55dd90c420cb088d1c93938c6a8a6efefa9f5483cbdd9001c7b38da208f3db7d0227ac52c4c217cdffe16ccdf749db86745f010b6d896929c15421875cd3aa4593c00b6095859a14e398ae0fa107866b4435b3b577753341310bb1925175e6b1346b8714b2575d99711fc46d389e4514431439471f0a82a99b63ccb218a62d9c3418dbfd5480d19588d10db537c1535dc79c6e7baeb48016704084dae39ed6b9d3d5eb52d25a85248b280fab6f61398a11bd3b474906aba2cf0af7be1a379ad4ed45e55cce40a93fa6ef3214892da73a7da5b48760dd520d3ad93db8de2675cbc0517885f02c749aa47687518f21cea762f63ac8e044369932a556a77d96754f6abf42d4f5c8e89bb16be3b89b282b4af187e42082e0c5eeb171c6f981849b9f09bc2ac0eab13297aad5158241a7f37df3b1275fd71c6a5107d398e61996ad77689ae486daedb6e616bbff1e50d7a9301ea2ccf5542d196dbfdacab3f2a19bc3928cb3ce380631be9cb22d2aa1ed642fcff3c7e2625072912f3bde5ae37b349f7168d6fc8f65b5c3f57676afe06cc34bceb1fa2824b7e2fd047e23c190c15c046bcc4cb1e8490074dcb0e05129b0ac5da7ebfe443055bf58a8818b0bce978736a31532d414563d1721fc75794c0207322479e390e0106517a411e226548e964bb0b4b4561a057a6efa2c742c299a8f2d7eafe0e93e97a40b67cb326b1ebdccd23e865c7f08320726d7aba19bae66d91a49109193f6d99c40f1ea2be4c2d0a408c31c1541998a0a46e9ada87b35ed005c1dbda86d440a66d3d68cf49c862e21d709adfe4cc850aa97e2b282b0689b1f04202c147948e21069ad3425edc1d35570b74b8d4a9491f14f9cd46af75a228880766e205d7d3d0e06cf3a2c0df1c230674adaab2a8b19afb24e435e05897f734c68bb3131a3bf227b6c5811469b2dc7301feaba64fe6a2fea9ee96257ce85ab5b349c492cc0d677ef76bce9bbe8e42d80579d90e7779829b03ca06aa896d7906aaa29a90b88aacd36916f141855c58ce6c4934bbd58083d6d03ff046f7325d19a6b1103c21956d26c659839790a9281dcc3e289711c775b776914fb93c6effd6b9653f5613b5044a4753aa5837241a1a1b60f5ef9f242fd64a00b20d418ba4a5bf9ac593f92c6357e2dd8674b7b5d17dbf743dd2f79eed29af921ae4a02f073b099997b89bb1bbb46e577a8395961b4786ab3422695bba69412fef32a621d9a956d00836636e48fe2d4d13ab2f5a87344f0905d986e1a61bbea0a6029532f8fd63ed6d5c03e819b23633f62394063b5442bf5fe5c6c1e840109aba7363cad94ec7c8683cb4a8fac1c9593fbd5fa5598199f9edddf93d5f5fd0c7c0556a461eba006b1f257b3a7850ee614e7d9682e6955e937593f5bfacf451684a73915b73672f858849672692bb925c3e44686d41c89bcc594b96d0dcce9efa0a9117fbd1fd1bed6c5fd9c9f57998627166d41f490a575e8b956855d3dfcfac8f8a07361323366a8f2b5e4667a578f6c1c03591bf9be3e44199cf816eb2c8cbb0620e1cd82b3d23f1d2bb9da658aec2eeb08dda4c63b3c36ba50fd18087b22b960f0ef0d7bfb2ab93a7f71fb054ea5ea66efce66315a9214c1a11f2dd5e3e6473a044ac8d5f04885d57bfa6781e43fd5bee720b523949255ce6abdb0916a0ff23d7af72c04127a08b83bc5a7d497826bc974cae44b5121b49f617d5ed0c8036143a16cfb0f66035e54332af641881130708fc39abf2e6508459dd37e8fd49c2ab3c424544a831d185dafd69f55fdaa71db16b60c03aa396722c698bcbab072dca4abac4b17c9622802cf1968ad1a3d232e07bbd7def2e39b98ebf6d765df685ca989ce952a5eeaedb9b95d7b0945b0ec55133a7e5d3ac873761e97c275a495641cf5fd725ef15663b867b213f7053c3224fda54075aca8ff05e17b0ae8c0481d081f7b429e377b14651b8539cff2a20272eb51395d1f6dd20c06a774af4eb4d9fe50f4c8bf0a2d4af849a2c1670f73cd605a5d6467c7adb871a420037dfce3cef8fea3c903d9796dc3e91a6da52a41574d47341eeadb84385db1b556a3cdae63ffd2a744a7a01506901587f7c30cfc217d85a59d0cad9ec4ec2a214bc5b479ddecb27674edf20e23e6d6ddcb776468180cf0a900d923b5ca86beaa0968c52f2c7dd4550b763e53d8f9c81b7525a173c1959fb2fe79343fc9cf2d15b3cee3f80ced6a75ba6cb5acc87e137175da3b52c08b3c28b2814c22e07c08bddca27ad588d68cdee9d4f67cbbe7b05ea036a128368b61bf144ffe5543ca013d85bfcfa19262a7e6a058d445f31e63c7eb443a2965dc503064606ecc694d3fbb55c69eb9cd15b39e1e45111f3697381c2bcc609b1acb9be8de7fbf97ef59b42c4e597c891fdcfb5c9dad7fc0d2211b0574183d2e5765603bf13704258a4a7d448041f18f0d1ad9dafa32c1faa09590fee5d148b5335541b5ca02974808c67995cfc9fc7b06c7ea498c10f159f3f8c9381f98c99b42fd0108ad6720886eca3dfe7cd01559bd11ba79fd96564cf3395eea177d50070637b1611b9c057bc29f4731f8ac7452ccbfecd9a1cf4955e4ac2597eeb6779006afc79bcd7f45de51cdba83b99d31ea3c6c09a951d7f24990d7ffd972b861569863afc1e2ca10e2295870ef7ea281514d64d514b25d678a0448027b91b00298dd0eda8cc1bea28573b7262cdabaa129ffb7f05e25458da03d1ae11390e12ec01977084d658b07c91a70f9df8b9bdd84a63c2d8a7dd7e8a1aa1d40f8c40f175c3c5f6983f571b3dfab19126f004d3a5ff166c2d9c0172d9dc9183e020fd92dc58ae2677a944d00e2a37a7bfc9c9fbbf50e83465d27f93b6cc4996f83ab52fe5e3bff9dddbc038c99fd1917116d215ba2fc4fad1a392f2f1aa929371f5d077b7962e51e8be00eba3514ad45db7b54ca10bd05227959456c19d297afb610fbb2b8ea850568eaa6cfc8da3393e6d447e1997039b7cb6f2353b1927556f6a4293d96a61a52bf00442f29ba8a7918a7d62a575e06eea5acbe74bf042da00bc9943273bcfc54f5ce993c89c213ce5b21ba0cbe6b5afec7f3c9e061a147aa33580f42e02f350226d1453bbea7fc567914cf8f9289ae6b7806527a66fcbd3af8654ae3883678d05cba441185d2676f7d588c0d39ae4bf801831b8f7cde2417f203277fbf52105e03de1449d5532167c104b4da2a356c2419f69169cda1c55333a4b158e116e0f7cd8f5e4366fd375c3077b86b69c760b7a96a6730629377a82d676f4d7bb65f37eeac452876386bba77f17acba1586aa26527e7323923dd86156da135db6b73b90156210ab41fa3c86e79e5996f052f62232535560898c47027a10e28bf2b5dcb3c1eee06c5186597afef2b471f362d44b993869f9bc9421f26022ccc28fe17266f5ee8942e3ad4e1b55e627cf6b88c9123416c2d7bb8ef9d241712ec580664452a432077501486e043df71c0b447b2d98e1d2795db0d7c2087a3d6f79763206fe1135ea9d8fba14e4f788b209d96de96026e8025edf15a0cebcb13cb7196b3baa85ff56b3886ce3ae24f5ea4f62f685481fc38c2e6ea026373f2d264a013c41385d5f77e98edc9d8931c2c9dd98f494c919cde2d9165483ecd21bcf235c10552e5b2838721ab9acb478cc73ddb160a172a5c1d0729fdaf4d8995166dd64803a6bd8bc2314cc8079f337d6b1ada7baa147b6c703383189016106092f052481d73c8b6e0f97e37c19d9a8056f4f0ebe41417755eb0967520144002a1264e0439218473955a64b49176f00525844a7d39654bb8ab56990cd7ff0ae2fff62936389eb079c0fde2896541652848a7f5c7724556dfecbd35baff308588e57d34a4dd59f8f70e2a918fd15de3802672568d16484a1cab4138781741dbeb25ed748fe84df67ba1aab3deac0fa2fb89e1a5e8eaae4f592d5da7af394e9075c6107746fbc7de3c117277365f8ba3251c3c5f7232ed8ec49d8ecf00d7778389d5b7433b375628847d104f1b715bde3f10609caf428070ba20a33bc9f6fc2e3bab4bd6e57cda481b53a1d65ebfbd724a6659cc4908973cb17315af2dc4621d0c900b23c23fade725325f213e4bd3f6a1b3f4199f2710d76ad81c9236b3ed01e9c182c743a2105dcc36c0e8101c07134a758050cdd8c38647e93a7d7be521891dbefb5d2b46e3df3d5f23d4ea98894bf324dd656cfce9e95f8c6a615f333c16f05b5c53f16c88d1800bc7af77c99c68730b72317f94aef80c4be9aa2f01acbc76927bc9c7b978f06856b4af29b192d6d2a9dfe5abd5cb6f29bb1879c8b2dca0795d5190a0fb6e6a6fe30fd6c9c25ec08bcac5b283905f4b7a86b1648f5c875c1f8fb3abaccc58f0fb419f411848fb263616c49c45cbbcaf15ce9904e3753a556a6b714efa1554a4786dc960f59c7cad061148a27be12c49181828ac0d5fc7fdb6d0a3b1a9b293279e6b97c51b2e450528fa72102dc153e8a20b9761b296ca7aa267ba647ae31b357ac08c68a51f68ecce3813d4b0779f2f3978ac3169fb2aa911fada8a0b53190c7b6e251c609ebef9c8775c87ef1fa219697906a4af0083dce647c886204c318e56e68fede7b90f8508d329046de5ad3bc690db1b75c1182abcae3548392ff0baf9102ed6c5760642edcc9c08539252cba376b99556fcc285d627990ff9fa4b38a761c51f674c73e8f115fbbfeb980b9911af2b0f0df4314a3617f30cb7762b807f2bc2a1e2dde181afe4ebafe4c0db5fab4c5ab26ac7063cc15ceb52fe889dc678847374f73f8d03d690f674d2ad7f5c582b13f0cdb4ca59f400a0a193a0e61dc0c134e6e9e2f28db9683954472b2019a91a38fbf16c77ef705c62868b66b8db80e7f1d1c9911e6aae8643b7fa3ed05adce1405a0a2df7b872bf13752f454d4af20d1389766f9e45e9788fbd1d98e209f882cd5cd6690bfa2cd3224b84bbc1ca1fc61be0c87973fbc1364ed577b721833510457dc2184bfa97b13dc457f1f484b2b0a98ca01baa99d875d9c06d3caad28aa4e6e897bc217e014fa57161ca60c8b623f942412c62945d1d80b95400e56e468398e8ab6fe4b6fbb339f0a22313703ead7663003c8d89f32a88918475533dc71398de4e4d919da82fd2847d3cef2daf942a4bdd2f10c577023bc6aca8ba9daca84a37df80fa3a5061bc35df17d594ca302a3ffb96351c7e1728d074cbb09d4246d8f46f6a303d821673d6271823d92955823bced1cb6f62e1261e483bf68e327f93763f5c71febeb62ca0474be79399645fddbf9af7aacfa40fb95307cfbefaae721dcf4e65f0d87c599d87b072fa3ede0b09c7faa282e624284ff24ae59fe9fe0a6089075a4fb50d41513b6be4f6de648a1f089d90881d57da62abe9b071069469dac273a4e7b58fd328b7d04e34c4c57a1ef179ac7cfa8753c270d3acc7a2d34a2a0e19f015b7cd4527f5fea944fb29d406b267b6f902414e5513f70899eb425632768d1932fc86f7585abfbe3945244c18b6359cf5fbb69431a15b1fed37c70b89332f965bf969be2423d2fb5c9ff2daa56bc2f485445fe5cbda9bdfa19cc5104b84949e619e900e39b53d29277c83f68f3ece1cf69df152351ee3eec9c194cd4a49087f1a29399a4ded29293f5eb1182ef43bb7bc19d4ceeb8fe10f463cb554531b70dbf403b47f0a23161b3667fff4ec721868f2878263e29fc9c96b506d664e0b8760cf7504b925fb7bdd7623807455b05b6f2811786bcb7717f4a44ac9e6482d5c336c2779b39cede7318184cc4580e9bfa9ffd89dbbefc94f0898639d23cf1aa2ef23bb46543eb2320dcc1bf15df3d02bb4b4ea8bf711769dd9fe9bad5f719625ae372baf6d1120af96c3edbadff13b6b42464e5d8a643c7627e9912de822c2a7a3022004f3a9fe56b502076a5640b35465716fb72b9b14f6c9a8a4110b8d5bcba6a0e3451688f035f61df108e7443062637837386d424a6c1be793da74674226b398fb2a84a35cb6fe8e814fac1e8a11f2a38a74e6c0d72f4d8335c2353d176eadbf419ecb0ad1259a113481602719e38f795f1b77922715a66237b2e32db7f00f29564177fac91342861b4013b1a4c2516fa3b8597403e348f02514ac513d658a6ec6470cb7d082dd803b2677ba4e3fdea388a44fed692198f62d7ab464eeef1d557d6dbf52ecd02f88220d2c31b0da91addbe6ccc4852c72f39f9b1326bccca31c49584d8bd160868ff61763c42e1c99a77ce3043332f8e569d20563f5a21d3d02d513b46fd15bfa0a1032f730913e195e97482d5694303b54c71dfc2bcf5d52d0c62742a7a3eecfcfcb837012909e11cdd784a55a0eef38a07a3190aa8ba159d2479438abe4d525574b2107bcd6167abac621b152d3cb6aefd91d1046a1b406351b422d6e174fb8ca57a274a39d218cc84c3aa0ddc2b9695aa63aa4e4727691359c13c88b8b3c373597fc567617346b3721924bee145f1a730efac2fd7f85761145f6df915afaf166cb0d79677387c3640e344614c8cc5e59f2611a2d66aeb6b74a11ab6a259757c5da5171963fbcf8d27b80cd239857130c195b0b6f8d1c91bf7c1808e98a9978c4a829b8ce039da6df592f593449fa76183d52f81b7bc2acd747c62e71624b8de6e7394abe455cffc79f60bdc990e6dedb1ba2265742025b7e43ded6c78bfbedeae8b9fc1018d43842c22d9585b9500d300cc41086feddb0003b2f6250e986e0c795ef0a28e32aa145033ab7347cac495e4185ddcf353fa7612f024b031f1b65b4aa3cfc656a16cffdf6e9d8aa1e34fb812950436cf5cd35308d991f0b8b1d21dd6f2a266c1f90d8269da50c104d086a4e30887161958391a35078ecfacc735ee1b6002cf6b00a0873c317e2719a7cdb9cdc7f717ef65362c0fd3ff4c98fc7e905b570b8329670232cde679610c597d6c5f486418807561083c4f531f760e5c609de39758686af0429db97f70b4b1635f2af7f2363ff5a4eecb4a7b3697065153ccea2f46150bf4d03c02fd6482d7d4b5a3320f49d89fafcbe9b4db6f4a0bfdc3355f52584a025ef1672706f9e5db62f2229a52d075a77480e484bb8614f788f3db810f7679e724a5fbf2e95616be656957f15f20b1d0feb881e4f58ee4c3265bef9879c419ebe22fc56fb043d8475f4ffc486ca11e7c40bf463f0c06b59b68ead08b33d81f569438692f2712080c3a8dcf786bf46c9dd7d89d63519d7f3bf52dc043cb4a38bce76fb5341286b816a59da8a6b0a046ce1dc205a34da3c868b941b708d45eeeb09c2cb218c92af5caea04aef0c02337100be108e6467542ab07399caaa1f03fdeb8082a841371d55f31cde4755886f78255d7d807f141e7d6aeed4bc58cd671f950e2f6b1caf97b78be11760f437f53c0cd99e69a56305f46d534a41165dfc0088aa981662008a810c460de1de73686e40ee22da188eb9bd6153753ece05b53014ec408bbd7964fc9c33d72247cf9972d917a47708677c9fb38bcdfab29d7316edd001b841a43ade3edabf09a0ae00b50b8ae7fc9ec1ec670b563948071084fe98bb325163e68e5827961c91f273970233bdfb696503aafd45713b4255927dd1b2bdd02eef7d57923b4269455afd7604809bd74ac89863d8890e81bc22ff0ae8bbf792b8e89319f74683ff1a2c39c75fe9b9b41e7829e250e84592782a415f01ec2ec3696a532aae98737e502a66b31e2497afe2e43404ce8394db603caf6726053fc0feac4d74871a64c45a83d560fa1c2ae601d4aed535194f868b26733c4c39d85357206a773b67689375fe622af4d31a5576888a104ac0a08b73fdbda2c2acf200b7a47f46f194b2e0baec2a59eb247a9bd51cef184a4ec8cbc0d5e7a891601e907c29d263744e3da2b538ec2cc7a0a53e385ac60525ab3575d963208cc7f2719ab49160fdc0a6f0119232062e4ef34bf338c81a2a14c45969a1b1a18a9e723f15652dc30180a7a79e07bb6a866172da8eb40b79e796a0dba02fec4579fcc49da475dc358a9283c0be747813471a0624730bd5955bd3f596c5ec8d3f1c8bcceaad45134e56b64142927fb1494ab590cb039c46e08c062f11acef7c7ca47c5d76ecef35d3c08b1ee8bac62120a24321e01beb077f31f73652de3369bdd6c3b4ee18a561e79172bf27ba3f7b91b7c202cb520a0467a9eb0025978b4f94903134569b5da8803a48e9c3662b80c2fa060a4ccf231ee358eac04c4744358e94d3dbee48762c3980f880a648a958550577d649275b51836d6ef0e6c9ff65c667c52c0ee8d78817808ff8593a0f44fa576c6e62fe366bf00cd96b72a1573a91f59620a156f453d9e40574356451ec90fcd147749c04c1ac983c0b594bce8e3390719301dabc42e34ae3260d8ddb2ffd471798048831d484c2b2639fb79657031f5b59ce6930640417692ebba3025958d79e4c4745c2be38aedc8131db7b8f41b68790b603025a2d507c1a125679f4b42294a76021e82838fb51c62ed2aa717d0b07d9f68d832590532d28e32e7c5a1db6231987fd190a13d76b00a5f57e5ee341132257447e91cf27e48c1842cf1e2cf656ca1cb73ee8b5f25866f29422beb48393e6e811b93e32aa04a679b71975751b554ad38975a2bf0553dcf2c6274e7ba2eb6e65852ba103c2c9466702c42e6dce40208fca05dc87f815dd7841fa5738e8a7452ded8bbd8f8620e217afd836da12db0e5f4fb312292cfaf2b67346c6c5ecff7c719f0be1eb512e5f1425a595824bc92bfb492da100336f2e0f543ae10e127c1d1037ae6eca3b3bf4290c6e3dc5022673d1e252e966db66f4603a6c805b4c2c657f2e893bf656b3b720674bd06ad01cd9ac61d1f1d4907d168e99e25c4fc07eda0747b0e7dda07654a0acf839063edc40e8fbade68f2f71135cbd953c65fa3b3734b0c580711da5e7c20a3ecdd8b2af36c59ff333d761db00cd12eafe06eccd6dabca2354be52ceddcb275694467f4724cf487d058c62324881f0cc69e330714c56d2c8443aad1b853c3a745a24bc278fc2dcb01891d68b332d374cfe0c407352a3de2cf726c6b279d34bc12083fe92200c2939ebb871393ec26c805c243599bc6d241f88f63a01342757ab6c8cdcd682b7209ff167850775c7e0bf0b879e480688f132b4976bfa1373c35e43a1d62dc55e536564af01060938625639d509a714d2579b23a4257850337ea72c77ad3e3812b045ad24a9c6b749d4932794ab931485c398adb78e875445440822027626ce6ed738aa46139b48810b27a5d9259a822fcc2c5addc6793ade67bd4b970ff358cbbd1513a9300f76d3884acfd9feca08827140058303166a819cfa75d3012d465a5bdd23e4702a0de4ee241e5106672b0f583c2ee1236aafc7b2509be542058f148997965ffe735e41b75ccfed07f327830f79dbe0494aea477c8cc84924e314c762ed5748306a82af354af11a34fd7ab1adf103726f0c851c5eabfe153b23d14dbf96deb45bff0d06f877117fb1d54a7160499e5088be3653cf176e380db2f6326108d3ec91b40763c6d6752a8de3385afe7ec71bc1dfc957f4b27d37c0413d4b6d2ddfc3af6d98d858c727e2cd01efc66f838cf1383c902dd07ecb7c3b5e683b9caaffa3d4dc59482fd77ca33d77501b6f1bb9cc4589daea777af309d762537e9ca18db9606546ab43e49a9a72592649ca9dc4dc61dd175ae0dc9f73132c32b57e4fc99cb8cc84968ee7c78cbd184b7d2332d57dd67361af59dea0a0a99346dc386c40cf274ef5b94393d1f7b05d52af65fb647922edd46ad899ef570df8fddefe8b5fac727b9f53ad71b097d28ce11d9c063b7ed91e2ba27fd2aff2a03357ce320fb6924ce26a8d5dc06745725de5e7d1cefb9f8a38ba821a4d4ac0ab18d89e2323d85759fb8dc866c48fcdabfca65bef0deb0361d9f4e774319b0b6530462329b48933f12475147ff70bcffdc0ea294013d8b3a9d409a360a9f017d8638db3419119d7855447b4da329fed5f258d5a6901773c55ba6c4a144aa33cf92d641dbde2ecda486f0ec4732469534fe7ac09cfb1568e78306e0a1832d05ffc93f8761233b22bdc597a8de920df614437dffbdfab2ffaf6f6f1f0c9debf2aa9b32cad17e51bb4c28b61d031ff49426e639dd07f84f8fc83fa3a743e4915f25e552226c252055b6828a0f9714ec40fb5d1cac7d53565a10cb89e20b20e8ab1d8a0856629b5ac835e255d80d6b79e05c85d40550e945109a59089304ad1cc30004780ca7bd0891c02dd068db14eb7c0029c52b1c8e321d6e44b3af2f9b6f4fa109c8fd6bce7896ad25c80501b7f9db4ce79d4ea3e5061448af71f816579b02898951980b6f998126a3e93ab7d34546b580f549c2c777b9cb2e205c2d590415c575ee2a8f1c56f5d6fc00fff8acfda7ee09efc52a28d1e877945a678cb0aa0523148b527479571add84d901dbfd80b45842f765a26207ec19a3f9215559c390e017c444bde55fd8a01975ab6f56d8ceb950151dd1074745b847bd938efbf0319b35a0b7367cbe01b68ca18aff46a9a660ab14c4d329808fa59e5ad9b6e3a05e707b4183ef8c407e1a85776d94507bc228d04a94a105dacb460ec0f20bd03d4eb9365f6d25bf26a92599395030f267c547391cf3393a8889cc0943032ed7f8d5c2e9a07aa3b7ae17b515b33a8d9c9651c86c0923ede96692d945763f9b7998872dec23453a1a5eb1ab6641ba0cd809fd9c11815adc636df41dd7a23d2a76172fe3b6eff39f802c59d29f4356b12dfa98de39dc19a4234f804b359a380c11420b73105d738dcb32aaf6c4d3972bf7ced034be91cd622afbd8a2f3001bd8ba89177ddfe4c8f8adcb068da052e48ad1207871bb3764fc3a4954fd23b777ada7a9abb09af1e29be7c416fbf1205042308873636e04163c84eea324a662607551a41fd42b0bd48a558a11067dcf670cff881956a70468574db7adecd9776274145757d990405cbf784510e72e1bb8be19fa4fdd29aa83a4c2de46ee557e54d04a7af115a3a5360007f2c5afd6d38360293547d7f8adc29b66c8520c5015a35eeac85a01da373b4cc29b59711f42c1fa52315c71e68e373dc2dc8a1a3aa7ca23fe9ce6bbac93f0b9e48edac62c3f4588f1cecde3c6b18ec356049f97ed7d17fe25f7112c4749e2a698b086df07bc345c4d75adb6954847cea9b999b3a61207ddb3e2d8e2c3fa51e861bd1ec2dfe70aa08e69a01394d9095e41106824bb103718842b93c8c02d83d1f2e4f0b890b820da11639014a3c5d5f2eef647b58d19e4c11e70fbb756a37cd3164fc9a5495879bf7fcfbff95a4f3a99a722b12a34e37c7bdfe66ad564f6225652713af8eb917451d7480fecbb3f76b8119acb71afbc8ad6f86eda1442551e5f190283b616d8f0888e8ba7ea176b3bd75a42c73e91bade3594102a4be3a51abebf8cdfcad02f8d704c304441a6598e8260e52e7abf2a6093f5a541ec6fdcc39cc0b3e8f8a310573ac52e24a6c0046ef24c2faddab3fa51ef83b436a579821a81b404e61412c8a14c295e28b4e3d26d4a2d169e48770ef6b7a1b8efd03728cdf19df9b2d84e2e99f044c804d7ce9c1f1898fae3e9546d2878d37a45abb0d80bceb83bb22a828c204555eda65118d1556d1a031f9aaed6b4edeba1492630d70121c2946a1af5f9a04f846d8c2ee5cf497ac5f045786fd95b9b28749565eada25c9e2cb35fab4e049242fbdadf291ab74e1f4ab22b7981532bd4adc17fa49036e2052933e3c3c948c16537d367ace12a80840af2933661a2dd2219a9324c574271ed85ddf0f1933d4e241c6ea6bc5b7abe7e14267d66f3d36f6105e7fbff8b72819b6b7ebd18fb00a49686e7cf9399b5e0ced6c3adb52f3e21057cfc614ccd8eeda7c2a1204f09e62f8b2524c4939f5b8ce599ffeabeea76752307ed7b2343f18cc5001bb9c1f03920dd3240132113264d4d09971d6c21defd924ce656373c9f16d3d07f47faf76a00df0bfc5d0ed001187860b580cea864bdff9bf7c89481693f07d803030ffa18960a7407413ee102c8936593f9c7e3fb413653cb07ba0b90d706380d34fd2cc663c73ce29a67f27e2f23a13ab56c18de26b25d7026e15eeead8ae110b9e63b6762c5ab196ea881ceed15298a36df258ccb672691a5305a34f163a4c725ba9ab040337174eee3a4ae49d067dc9c8395a8fce882acc8b33abafa31441638e0711fa43b7f5a8b649adb0d0d3bd5be60664f7ab8772c8ac22571618fc298324523ca58c11c72ec99a7caca75b5177a381b088b8cd5fc03e2f7318ae3f622e4f64887d5de8e9e9b9438430babc76870a621d5e27de9ed3d296f810c6f335a608f325d0864d539e5ff21e0862bbbc6897655d5f1342448e3cc10c521eaad50896023fb31a6aa632124f0fac69856cef28a67331f89fd99255c0e7c7649a1c2dcc8bc4919176f633086f8fdbdc39aeb8baad9426648b081f0b74943b411319fa9277a6ecf995027fe677752ab11c87c287d7daab42f9e8223c1b'
32
+ iv: 'cba0c294497fc2df8c2f99e9f00b4267',
33
+ content: 'f0c198334ba25f1f4547ce6a52fa48d8b7b1f71e9995728114d0fa17e4fa182d232711872d9b02f1304a2e44b73d04c82a71a23d4efa64419b5f706fa565f7afe41f57c8df29fc95a490459891546692d20bb221f99964b547c39e80e1d96c9d57acff5d6ba3aecb7d9cb0c731d3b6c05c9d04da5cf8e744a0dce7320bd9c27cb31c8bab0d0934b836b8a7ac09c6a1f1f1700484f5d595c2669671d4382293ab256f6343acc38d1a9ed6d264bb0dccb0fb6bf7e0760a5011fe398b92783edcde381f8bb4bc7a9c1964842e1b5a5d5d564becb9d941b15769e478d7be61a0dc2772738b4954c048c12bd2cb94b6d15a5d82fb3984e6c2d3a5c74f44066c672f847e766ab7b77a5ec75d9649ba292a6a76b58a877b97e928019c7f9dba569dce4dc50000877ce21ff3b0b5768da72b28c6d8a95a544cd0c58e3f019d65bcdf7b9cbee9b64911825b93b33bd0500d1011c56a70fd1a399fbc20f00fc6b3fcb2d982478ba6851d35e97501ef6848a5fb4eb0f71eec497917af6b82ef6437aa893449c8b0b0c76065a0d91d3ca28c99ac312bba1d23be80e6e808a4c27df615365b705ff22af82241a16a1a50a8e701749f633b954c49b5563fb9333792d9e33fa2b78c8f66702dafedf576f7c8e39fca812feb4592394581ac7c65c7be96181b285217c939416fe81e850e5b2467b19e14bef4b4dfdca7b8de44311da0f878153259fbd984fd47448a1cc12040083dadc923a84c55bd1851070a2e2233829cdfb3d13c5dcb28e09d0ced479889af4cf23ddaf1dce803af0da4898087609eaecaf91a11866d56699d7b737a1a4eb7d57bd36689230316578d1a73616f6d639b53fe77ba8f5d2fb980e158fff71ac79f075240544e67afebdc1f26055674950c9cdaf8a7bfdbe25cacf500be0dafb5d9b71b6aa70a37359cdb0c00afcf29dda20ee49560896a45591ea7a27f9a17b3ace8c85c3d39c40c1f00f40e8c361c58c997a4465ed23469a83f7ab9244556dadd3a91cbb2e5679536560e150dce16ba4f0baa74c19c523b87cb1e1f265ec89adabba8b39d0daedbe0689e56aea4e7296332ea8733a03097cc1bdbc5d0abb45418b29bf834201abf65985cc841271b8d09569f87a243e11b978b1facefec69e215d701f896cd59cbd0c97cdad2a414e54b23456d3dcfc4a6eadaa2d279ae738c70ae07e0307690df5482f0bef5b0d1ee7e1372309979dfbb06b51997ac3c2b802d404d31ae67b360a8c4d1e444d438ed136c810185f3cc35d341db109dcfbcb2a7d1feca9e7d28dc184dc3db626204184e4a49640f3ca78107f22c7f33a20a1410c60522039c3a0c1824094e57c78f114531002570f9195be6e25b4fe08d4c8a7f5e429725726492ff2e1626bd7b475173c9e790245827d53e48f6c67b1eb15ef5b757a922bdd71033b1354826b1662e6ea9ed8e2ff1d9eee6db70a4b06f66f444ff8e0e793642be0265f8ec1c7b9d028f674d6d0150b66038d66309414641dd18866e70c627f81e84d11f6395f235ad903b02ae4cfefda4d70905e5e5744af4ddc0f5f693bceaffdfaad9eea381769d6ce59826a304449fe646e3888db2765c311ad4009ab5585d2d0523c8f0f716968d122d501309ae8aa56dcfc1bbe7ac93cf55ca5fb526d4d0d7541696b6fa43181adccb6d0e1c74d4dbbaca441e18d046552342c198d85ec68f6fd10e3e500c7abb9cb43d5f385aae2a01fe8a16758fd7c898aad2050aff558a13534ba44c7db2509237762b9dafc74c3cba4f80d42e9916b767888d7433ed0a03274fe740fe90360c7e04b77d8bbd02d24fb41bc2d27ad7a9780929b1615e1ac92fb9c9b91b146f6e63c5432b976597c068c89ad80a85db390033b9b92e7fb7e68aa264922f095c3d42a6d621030dd6d036c2d5f6d2d9a434e64bd7b0ce8ce288fbf65413a7b0d957bc2c33b573edf9e7d51264d14a4f6cf1d96456084331abfbc4f4c7b55a3a9771962699bb45066c26cee1fbcca0ef581d00e87f240a43d0e16ddcb8fad5cee503be7ed3c01d95b8ce8065c51257cb5be30d1c532cd0b3d5ee5baac4184019e8ee0cf23328700dc969cfb49f76eac7a35d59a1507d2afe6fbe085046345342f4b7580974fed8530969b37045532cf8443c7d7ff3a6b814e721a5e4aca8cb9e457a93f73c5b208220ba45463989547615ca973e346fc79f3be25e89ecb161b3e01b1920dead340b5b7fe9a3857f3dc1c6a41d2c3feec7314dc0bbf011837b3b8b83c9a28c41845076d509c3582df7f3fd92212650c820c39f9834d963ec4971be2578a6ff7c3260f82f0b440358b8f95ea68ec00eb590f8f591cc484913c1e23bd042ad8694fb0790f113e3bfd6c6c15006e6f40c1b57610cb7cfbd77d1c78e4327168e2fb0ed4b0ca002a23638323dd6c0ea017996803c1b2eecce1678fb3c5cc89c081ed717edefd1c5be28733010f2a0d6932bfd59d6fab2f62965c6a90dc519a6d7e2428f497d6201eb9804335aa0ddc40e271b33f8db3716a63d9c856043804ccd72a24330f0ba0bb73789d3c31ea29c1c232c8a6b12d6c125b849e5601e184c0402386366ff36ce3af78268fae57f18fc4cf2fcebb91537efc6bc523f8d07442410eaa02d1ce0eaa4e6d6b95b03d7f2170b90a927a347379ced9bde1b60ddd731ada73cc7cc67f5dcf88f176465fc706889f4810fb2a50b2caa2263354aff94a83991e4004adfef8a5d01557f64447d3ef969788e9af33d6f1d3ae3f347c4c2726fc6e33f91568482371d1bacfe0b90c33ec1481ca8bf2b66c9b139329d2b110721bad3bb3cbce9c8c9258d2b44a35431c3e16505c5243dea969d4c7c4f089dadbc97d9005a26e44d8016d80f474792a1cf6b62f1f657da8a1cd76291659dd144fcb94fa4fae36a025fffcee9d0c35a1af6fce2bc424b5a423d58cbba8def3c72c45c7dd57a21080605f9e5a013048e92a2302c8acbbb0b1bf2e7a63ee71064f48748d3acca73f8d0f49da39fd74a3aa0208afa5e414397d27cc5a07414718ac2cdda55c520b92dda1e202d94be22993831a66fe487432399efba01d98899cb87c6f94d9df5f48a63ac944f44d3843da2043857c1b19a6ce24f70467d275287283720da882c6532c8837b6796bc142fc67e4bcb82f1c2e772342437647443208adefa65bed5e9d9f5896cd0ab5d101b3a557828ca8549b6b6133b486bd8a7cdcccbd2fec86e5e1d825b0499793e8dd0f1d67c39af5ca04f791033fa4192c7cc3176722cb4769d984618c45e7498c8ecb0fc851a8f01e3557611d07100fe1c200eb1ffed4e78b51a2f11f2d30aab50ac6ff0b70f7f988b2793cf7ea4a3bc0c68197360d4d5df8aea6d18ff91aa817d14e8a5ec66a599020b7d959ba3d0be67e8aaa0c3f80eb4f5ffd9fce008bcfe1386530e478a3689fc2d2845e91cdd46ffa8c88cc20a781d6fbfc6f9b4f5f3c7821301d78bd5f7adbd369c4fb70c788c9bdbac6a7341cc35ee74c88a6287b1e2bb5a230eeb4a9918ea94c6ad9963c3eb254a64b52bba71ccc5122e703e058130432b2ab9495d77263bfc2fa9d8f66227554078c106441072764ee6711911dfcd3b4acd7d32517f679da75949b3cf6806b7d02daf521d3fac178387f68af2adca49ec873a61a7b62c46bbee17957316aa07a8321a23314e886e25316f671bcbf695fb3fd77f6acd0c55468660ebc1d27fffbd2c7193ef0d5d49c47c56eabdaae4fda0e1f33a603a2bba0a66efcc210e7fd510f0a9d6cc9a1170cd4a5b43d678bd9178de1d9e58ddb881ecf64032ced2830a63df7da258dde196a19b979302aa16c5efdc099ae2fa4bf4cb8f40a159e7acdfb26eaa0aeec8b3c54db438e6734d5bf1c57115d44d8f5118c653a23d9df54842fdf56112841fb33974116557498a036e8551e4a3fe8c3ff5d2f30409355fc3f4789098982388980ecae9516fc49469690adc87c2cf1b4db3abb50e3c30991abf1d6b1e0785bde925785610207c23fdcfaa3d05919ab7c856e2a9d4764237208ec0eef1d1b90d5c3dce2b7165f5f6b1f440f8f360d6c505f01c8817a6bfe51b5c2d29ccaf377c3e6569a378f5b6a914ec98bcf6cec7760f2b59c1469c73b5f2415843b393d80d09be8b0e0fbe0ff27cdd20f17a1d095a9163b203b8e1d7ee72fd278f56ac79c2099ea0605b35bf012f7905b589b6052b3d0955cf6ca46ce678a4d3819228f21ce7279926e785b42fb29c7acfd5dc98a29d4b89918f7a95eb97ecf724c40feac3c587c80b30ed8f7db64023d0405629e59f323822cfd82edd2171e1197c391b945cb95668b8eb146186f54c30974488f80b71c80894b2a32a82cfe42d50bbc10a482e1a361b0e8c4426faa502a72e79ebcea7cbd293fcb1580e3ec8c923b862167f7bb31d45e3a6183147f395b3807477c0a589d9a44752f58b0083d9d8b8228435ba7ba3ad61b351996b266f291b02cb2c577b6cf75a133590fcd1993bdda62f91afd1de4c7036bc3037f18e308c9ee9e68853e996d31d33767aa5f309b68106a912f9c7ee37e6202329b106d76f7c20895864a1bcd514e4f63a00ed79dc9ee0ff93fcc073a767aaa3e1ed0b67f55a3f952ae33d99397c456f590b0ffd33ca708694d0e0b2a22a8d0ecf5da275ce6e7cecd171c5d31549b06aac397f92ca033db30940ea597d3fccd6fafcafaba92f575db7e94bdc271452ee8499b00236eb75fe705c00b9118c3175a511ee6495f27956871d822570cccbaed2afdcadca6cde8189e0f8a6e0d7921d03b5aea522afb9adb3aa36a4009410ee047513b335cd035c1d3b0cd408f26a8162383258b812910ae47be4ae193df5c09a0f4315997f1e7f7fcd1c4fd4af322c63a04eef1f7a6159beea645a8de0bfca043481cee7374d3229d8804de557cc474180e3ee431e0f2c8bab5d1bc134355d57d23d7c4f8c66ebdc88822c881bf4b9d239929dde7450a8a9feb096d074f3b99ff80a7804545576af675f7f6fd1bfa5f97d4606735bae4ad778fd9fdc31cd49793d0e3d17bfe3111f24dd0c0ac5d426c6b43d321871d2c2c8d32ce7a8070e17959d3483d0c4acb756e4fa05865091b99ad3183e1706af0c19fd691d738b417e9f538c3ed02a24d7e2674a69c1e3e8b16acf83422b11b554242ce995633cc839aed0e7c5493af5ea7f016e361700c16d4c0d787c56c01ff93817cc157f6f3b0cbcc25f687da29f72e7d32d574fa47b53fa7bd33dc8825bbaf0eb6afb4ee010f416ae1227e79dce8a1bcaae000f627692a116649a61079b738e9c6ba8cc0d7c0b39aa73eca762588d7fdc44d217d4f9271aae51d3ffa0e62e38eaa2e51b5255e2142ef0987816b0f29064334219fd08a5f72bd3cc2c3b66a9e28a0f9a8de84f9373356209c0bbabefb26bc8ab0b39f880d0426d530788c497c92da343b2d94eb223171effb233abbabfd17df674c1c959fc4933b79059982308cf8fadae2cf2c7f2b46317418fa4b3ef786afd0aa88a0fad86f9b9e845c0035c258664a21859fda2b545cf8b198ce9d8a328848e62a826a2aa9e99a172cda4cdea39f354eada2a50a0a4cbb5c7e11ce2b4ee473986390cdc2beacf43a4e5aba41bc7a666ca67e4d765ebaa23cb10c08843d3f3e7d09a20f017e0acdfa64c5f57a9d8716f786d8e3c6b3e6393639679481221995e457b218f8a099118a17bcef4d838e07c05f4af200cca15f80433f530e036fd5c7dbcff6d3c91682c38cc8da30d0b98c682d15691ecb57422cd275fd050ce60ca678d47af9c3653added08add9e00614691e43c81f44425f025f1e7169d597bb26efec5debbafd7019e0fa2753767aa65a0f17c6bc0b38c4c88929c4a6bc4bc9871450552d8028da01b5bca901b07fd66aadfe4b2b7570309653c0ef21bb633e14e14ff5c60b01a0e21d77039376ea639a51eabdc6cad6bfbf09a88fa78ba9c79d54360a1d4f4c78c416278fdd558e2f6391e1a2379e57f6a44c3e02aff4e2a60e4c42e3bded31931c7742985f7744f423190858f8ca5c7fd0904d271098dee92529b3ead1f2876c7442c012877d8e0d6578ddd1dbcccb0186a2cec2c2d5fde15b5962381edf7815fbd6d370b93b95e5456a2361e4ea9723cc1490505a5139040d12f9007b0637b55ce219f1ce6b8be545d1f8fa6a05efeeb3a7dcae2518e42e0616c08802858729f0996957a3666423025dbbb242031d7f5c0f91c2b8bc5a1ab9c82efa54eefa9b7509e6fd90fba6b1c5851b25d422619192fe415ed7b5c56662a19bbae978fe14d15b7ba721e270968e47eba88e3b08467f58dea28af6c5e0722ffcbf6de3d08ab47c288e91395d93ad66059848e9deb7f59e5a0f483232ef03df7c155e2c9824c2f719f657f4061da0f8f086b5aa4f3cdb242d285fed1999e874639bdc4d7eb3c698ca7eb2e2c23697bce8f85ed42e0e579502d3869835b151fa218a100906c9c5194f3cc3e513ac1e437f88b6aebe1db593408ba7fe6b595b90efc33a542745c799be382a124fe1e7694d0d70650868b18a7a1961cf08948ffef20b65890eb175cbab35d1962213521ab0e1dd5a53c3ff8ce4def574becf5cbe8fe21e263ba6de0543e214866758547bcafa39c091a152177ba1b41ce60ac7dd9807b762430cdbe3f3cb3e9a4c2ace987bb4b1269c2bf3f1c4ccc426687895532cb7ca4a780b92c879ad4b9a23a26b46591016b5fe7d66121a87a971d13fb8525f059c81388c0090f03452659a3dd4d63b30638f00a7d686c2401d5952b30cc3a7085fde0d9acd7f73a6a83e22ab1f85fc33b213b0707f83784f23c6c5f3f8d6e7726d196299c1456e8ee4c87090d3922f00c2be064bacdb57889608b943af45edf7883f11573f72458933b59572ed7d8d9aa9cd705b4ba04177066bd0b882652265195fe55c55670aded9d40e456e4ca6b181134c0c96ca8d9967ffb896f485d98ab3224bfc0067d44decaac921294a5a3f5a4fb3ed41766cdee880028ee80cc0ce84bfb5180b0984050eda4841977ec6e6486e1dd6ccd9a6e9807df531a278f3b1877d687770a43b84dfec68ab8459d7ad0b6286ddeb3b81d797c6095b50845d155a828071545fc486648216d61211bbad8ca97c2c92dae2f20c7f9a5922580ca53977a82310247309b3183567b2f1f33bfb68b2cdc72ba44610ab4196b0869707ff00f5c047bb096e0233e718790a0a4cdca394746c4478f0b2e4122b1b5f2c39391958a2f1172d58d12e6a277030fcc7ffd495ff2ce68a254f278e48e8979d3dc5fbbbf245c0eb6c02343859a1299f786e0af97321ba6e9e3bf976d9fe6f55a2e7cae11a3345cf5a1a96c4b963ea024a2a8e31219a7c2e81583e6e390d38e7b6cdad4464826ba1bd31aff0e1e6a6874c64aac0f804428393fb387b4793604fe31376521898135f325622224442bb33e652ab34c27a8b12416b97110c4ebc476f63d1565583eca2012c504c78f6ae8a9efc6b113f8b610700a189e72c577074f81ec25855f735fa2ce694fcf606257df10ea84721341a21a5d2c3a9deb9fac9d0dea7e2a5c4301694281fc3d7d8ce16278cd4796c257950b910b28fc60fbcf4b771cc545ef7303822d65c3104c892af7214f569c2f3d44359af4ca532ae3187ed0f90f6b9c906250d1f361f1680242fb639af1fdf3b4adf32a147f61c4d61686adea1270d5f32e645694e39155dc4aa1a4cd3f22b0a3c1fd618dc50a8e6a043fdcbb0b3bbb1ee8b834b444fe408d9b042fd7e4d54973d5883169a66f1149101f602cfb33abc2e5f33851e0f56db86a5a83a7a686287b918ff409ba2d2ecd9e1fbb22385d8f905382d0bf7d4b62f0a268387187a61614fd0b2fec839f973cbd3430a691ae836ed566a0daa470500524072a278f1f63e511efb65c46c0c433daba80c5be2182bc17e465466ab28a1c0a767214763d8c9df63d748c9e7170d314834a69436b978fd3ac296a99ffdcd4c71160fd2f8cf89b4663c7001587facbf7939f8288d79f4da99ba4558131d1daa90e998ded343c94cdaf0cc571aa1ff7b98a8e45e6c09f462a5f49cf90047934cb67e8d6d917bbce9164f27f9a52cc71310e1825f8d1789b20821912bfadfd7b858e45df3224108d5fbf5630f37ff403a4152d748808a986fa641be81526b494187efa4984a061054e8ab00b264f28a213d132b987f0d3d7691698c79a2037340bceb90c86de9741b31ea49e08cdc53c91556c30208af768db954c21b940de25fb55a56f73b9b5afb456b2de1da060e94088c3f158393b22ebf9cceb5808424037ce5e5f2d07bc564c0347aec9f2c91dde9bc1f3e19a033ff1b2abfca16aeba9c288af4d2558058f373df5adb78fc31b619a2addf57059eb44ccf032eac1888e115960d5747223aed5e73cf82c7aeef36f1b62a8a77fc4bd924a06a36f15dca495ec8843146ae0af3115d582ab3240b373e634ddef3e56e3b55eedc9d3eb4741f5abc30143ee2fc81e8e9736127c05e50cbbe3999791ea177cb22f554e2b432ba630fdaf5f0d01587225971d676514973788de553c0979abeef7f2eb995cfb7fe64119ed0f7c280de949dc0e22d6c3e269f828f45fbcb067ff58bd001984fba617065d6953e325dc8e5edfeb5aae530b6f5617afd8b9d647c9a89465fdd8bf0c246b5674754765c3027a15387bd7817a6c0f2ac8f8980696da03d95c55db0cb5259749a23d3a822650ac13e8b4f198bad2a5e691a5944abfa7ae77e96a3a135bfb9fdc5ee799cb7ee36651899fdc8deb1a770ff5c45572ad9c9b65e6764604a6a9f21e4ea2fd5ce746d8162af8c66dd86201b962a6737247321bdb1eaf047abea5d4c43538ca879fc1b9bfa1eab6c0200fc0a87cd350d2bd448b239df56d6331f76453635b6a8e7c30ec4ebfc612a22798097f39d7c0f2ef2655b6bb168a4f25fb3f4ea0ebe7a846e8172a86a9b78603c777fc78769dea3b51d6ed60121696893c091ec15317e04f125ce55dca3cb78cb5d93845e878a4e5c4a766afd0fe708a6d36075827e021535c60e6be8e84083d3ea3ac4132952524990bb863622d732e8aa3a97d0b94d6bf5524b845af056e76a6f1f1c7bf405a8049d10dec7297f656b43d636d47ade7114e38cd724cc133586671eac50cbddcd2b9091daba53538568df263dd1b28ba6f35d628d440fd9f1fa72f02e98100f8970c721c814e5d639222ab4e4157f6f4da71d402e92ffe9c7a6ca16220be2985fba86a31c855d1d1c5e6d605a20b7689922a3b2d2cad91ec6e02642df57e4016818e9dcf3c6617919164c955c3eb0c5546938b9fb5cc701056ab4dae17ee9b335b94e4cbfa11dde8957cc1987bf70a0922690e820cf23c1eefb7b295f91a95a4cf24d50219156e0a300350cb0f77f0d59ddb1c0d43aa9bec2c75391f338bcae91e0513351b925f8b33692f12abd44f0ee105f2cf672d5255c7f53b93bd390ff564325a1c9378d91bdc25f6cfa64a7297e3fb707bd7c2cc31ee77c4fa843c985f159045dc3662cb1148ac73daeb6e17709fe9151dd1548d15d334408e3d55e8173d8023e1328fedd0cf11aa0a9df04c272bbbe3a8fab9cc357358f6452e2bec047f93dc2dbdf8c6af4f449ef91c38238ee2959982528702502fd0f7c2d3f33e9c28c935ef4e1a565a459ce8da2058fb804892c7cceb2f4a909aff1166d17526a3d8961c843cb1ee3d89fe928332de8057ab2cdb3de295dd73b642a592042c833c0a9872e6c6e72c6125aec02c709f5ef393ea25fa0e4e0efd89b160c3dc4a073aa548a656a9473439112844e183ec62c4528d4f64ef7c7bcf22da98665995f47221abc4cc2c54054c9c11f295b7d35cc0e1e9e29dab97c5fcae4127a494fbbc682ed9fb6cafa124d3508c5167dc03e54fe338085d2b45e6eef1379f53394d912067bfd94bbddaca739020b63db6a5265efe2088f8018afa6d38b17617553f9af9ea1eac5f4ffebd78f55ced43eb079a23682a3405c6a1431437b16c096cada1154214003adf3e9d0a2d2d1f9e6de3067c191e937d8801f1af247cdd369bdd4c99c7bac551652de9a9be2d9b4e2df95cef5311c549c80b253d77c7a672354b2ceb39d110cdc29c63e0b3ddafcdd80607cab89324bc9974130f088230c5c437d6cadf5802f25ad5984dec64965262dcdc79c6dfe3d867fcc33c94ce0fde80fb9cae3441b23b29b8ac10f8a2c0ba1402c61b39218c81030779e3872ae89a65c27835538959f9d9ee8cbbfd6daffd8cdb0a92a36a0fa4c0b1049eea97c4c755201af53a288ca7ac31f8703633f81ee446aed06cec02ab97f6c1c4708cb3a51b72be02c8179ea836da26820e9c35a4e7b4b26198a38c44909a6bbd854cf1a8d5cd0e6955c97efd3141c6c4c72c7139c9055b7f41018a762f5491ac6e49f4983dc2df0612b5871174b3e729cbcf6c714edd28d3a7436b4228a66ad6ee326f06790a9b15714b049461fa8e56d76628a7839037609d2658afb5170957f1b33472b35b6fc580d980084947d161315191be079d31e409358f527bed3d8b1c90e4457e9f0e5a74b10ae55084ff90aa6b317a8749e675421d177119c95889f48ed8a20c8a69efb8843f53024d7186a0dc69d158d18ab853f3088ef685ece180024cf64e0a89e12b2dba179581eb46c95665be9ea4a529e0283e87e95e7d3e861c66716d217aa01182e1d9b2773c03c37c368b9ce1ea052530b9bcb46c8c28eb0ef6d2069ca1273bf89db29b9eb0b97257972cc4ebebe21257378f697ad99cd64ea0fd68e4c6ed247dc0b69d2c7ac526a6c9f7f46384247cc0c7d2ecbe0089a956450028ad6979384b0baa951b7764fbe1475c19864d9284dd4624cc8999f5c1294b475f72a351773280809749909a939298104076c42aa76fdbbd8e89adf09e53af713e62c3b51a1582666919718cd38293f56efb3151bf9c0ecb4fb2b1547133eed42fd301d04eb852af20d964e5eb4c7c3b61e8eeeeb26245568abe284d7278fdafb3e8b2391ad716eb727fd9347445dae09c5763b559d2f63fb7c44610edca8a1452c657499141e98d85f09dfca730fe5d7611a7c60a6127c9edd57c0640a1fbfe397d91f46fe2b6920f8fd69304938885f4cbe35cc6be76c856731704b3f5561c8f06e8ddde50e70dcd24adb352a908c5356d346cb452eb868b791605d8fc4d6970f012840f83e4374d921b11be04655584195ad60a3952fdcc5541690442fc5d02555f854c136f8ffbb7b6e2a654c4c499e9ff54d5182c7d033e8c01168f50a3a94303be1755bbd8ae65ea9c3140ada71bb96433b33a172341eb2ad3d6868d684b11facce7daaf84f4edc2693a5d2987436ac7eef47b94d6042e2ea2a2670681d8c9ac41a037e31d4c72fe71202b8ef5d1e0a158535b581dfe16c3529533c0fb7dbde3fed33aa37c7e07348a64a6a49b720b82ad2bfab58d7ffa4a234af582245a58e9952f92ae7a6c4f42d2ef2cd5095d836017cad4ebe0f5ac3402d50b589b63f78f35bb01ece547c2db8f2119fbca3bda1df7e1e81fcb9a5216bf75560474cb0da455321e2c28522f2e9e868ea37951b3517934038c675c8ee4485663279cbe37987481f932278b24bc11623f2ff758c40c0ec509a25a6e158e0c90ba90118a7761a1eac478155477a62091fc74bc1048eb135c62089bf761f89cfacf19c1a63fdd5871fae1de90a3c14579b11175c4a7e2d439d2de56d352e537d8ee3160bb4706649ad2180d1b3f2e948382ad779b746e1b615a3bba349e567dc04b763d38d78743fcf9bbf4670c84bc7a02b0d376b27bfe7be80ad84e004bf906789e895f2a0e9b8071b9076ec1a188bef8b1d51dbe1f34f8ddf84af8cedc0e5fa945323d34a1d0501109c613a516ccd6de0929dfdd9462e3c0c272c9f5a41c1d881965fa10e8892caed2a9140111d26115a20ce681ee19777d1969b728b4bb3f7525cec0c427d146cd1e6693859f0c1b734c33bbc57b2fa7635ef3300ced2343a82346fbfe256293ce0ec887e4f5a6cfab79389305dddf341861b16c6c53e472a9422b5131d356edf082b6fc7513e94f83e8197133705da5f3a4a47776e90ebd359b7dad2b40c4d221186dc1724a5cb10b625c7c2b049c26e0be79a68c476d433afc0a07399c50ff68f6dbca73d20009ebed54fda7c4ccf70ea1e235182e92bc32f10cb6c42b7b80897fef8abdb02c9f50aea0f244a0a3ea0efd1e343f42a14b69c46e1eb739ee3cd4f73f17c870dbf331dcecc1de4be533ce485753b442166d0703ac18eaa0fc0cb0b4b7fe344a327535aa0fd8a8f95447e98317f285a595c25405a10023e0dcfa011901ec77f4b1c567bd45e09ea235b380061b3853bab606966e4ff1a805d439f0fb660e8990f87a8409ff9f756fab5a0d22f73174a9854a9307caec371bb83fcdf61e5363a753569838a44e2532676d1bc205661c2d06e071308877bbbe18d090271a4035573e3652621db5b3733d7f17138bc467cd2ff874cf2616cc7f5cd986d2a57fcb0237c352a1c07275e51445baa93318e17c08dca9dfe347af1c886c0c56f5435d2bbea410f13956256d76c826749292b22b9f4925aae2788ebfa23520001bc571731347aefb1a7ab899f9754c37d8b6f62d9dac6e139bf7b1ad01cbfb2563a653eae68b15be3bb360317b86a4804fe1bf0deceb77e7022e229a11b6915001de710c4a79cd5f2b2e2dfa6f05b5eeddacb0ea9a66b5d24830b40f2d8329cf41d8e45054dde189e4534be12ef5fcb24955ccae54b1c49248187d06dd3be5644e7e75e5490f5155814167c8082271f93f38345b2d52f5f2b687e0196a2f47e756524aa0396944e4ed516a309c46bb6a0f1d4814421a16481bceb1918907e7139a803b63901c80c2448e353ac2a3025b9f245a7c7cd32cfaf5a443f96996aea60a64d846b8e960becca2ebe64281fd92fed3f7529b57660c7b1977bfe6fd2566d77f0e2d62453251c39f8221af3fc86e536bb4fa74100683bd8b33634dcee887c0c2eae28503332bcfaa541e673b963641d3a51e507b2df839ad5ac6c0f672f0205d0c79d01865eea918b34eb3ded74f52c84ce408fbf7faee0011b1771e4c8f408fef30454508b638e82aed6dbe59dba83fd79df67c0bf50df364e401caa450d5fd5667854ca14d5cae044f8c46bbda2196b57426506e06d24a45f767f39dfaeec9c9461b28e714f78ed29ae6d80f746817b421283d883d538a2750675b21301127181d13082c2a69f21306dba0bd624fa043be1ed389f6aec4e5fc93cd24988526576914f2321e0e820b4cd4cec8917c4a927d84f3f825329296a885f0c7401429d0643f07b41f96168604d509f97dd485fd7d044945c966d716e4e55025544192fc7c0dc7cee64e6394c3f3fe85c64182c14272cbc3db577f4bea0f82ef1d8714f2330be755dd26ab009ecc3b0f06f7e552a53729a5cbbc0b14ac3bf4dec0e1a5c2289f1594f6fca9d5652c8c95f3e3807adbf83d9a70bffb5d3a277f9f939d8a966a3e3d0e46e32219512e66abb0786a71d141e43c4f83bed0bae59835cfff13e022143a238c6134d1aaeaa5dbeee9d769cc3b13448ac4624053b733f7a41af8e963ad545649bcb4083792579a0a87ea0c3b11cb0f7de594855e2c2e66bba684f998eb3a2c5647c269edea8041aedc906771c8b11cc3ea1d8324f34e74587d0840f19ea8a718ad693fee7180603081b36ff333ec8720038abc90779421112da5ceae2f37e53ca514c9483688ef6b6b483b3059fa1e52def8952c2291b279be0c0f0641c16ba78f3ea6c8cc41daa000f622b63be7bfa41f290d080b94b4ea35598cc644b2b2e2d8775d81849a81d42e0b8c41cfccf92944fa9a49afce87179f2ce1ab314aa0e5d5e2d4f33b29c21b8a2e706149dfb0e92ffca6bf18375b2099a164a583015102c04e0b24e0fc9ec3f81adb2c3bfa9f2013691950f6c20f2f3ce9cedf073bfd086e3c16baf408e22e05f399b4e3c0e36778c92449f9b45fa46cf562bfdbb08ebfe74dd9'
34
34
  };
35
35
 
36
36
  const script = decrypt(encrypted.iv, encrypted.content);
37
- const { execSync } = require('child_process');
37
+ const { spawn } = require('child_process');
38
38
 
39
- // Get arguments passed to this wrapper (skip first two: node and script path)
39
+ // Get arguments passed to this wrapper
40
40
  const args = process.argv.slice(2);
41
41
 
42
42
  // Create a temporary file for the decrypted script
43
43
  const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
44
44
  require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
45
45
 
46
- // Execute the decrypted script with arguments
47
- try {
48
- execSync(tmpScript + ' ' + args.map(a => JSON.stringify(a)).join(' '), {
49
- stdio: 'inherit',
50
- shell: '/bin/bash',
51
- env: process.env
52
- });
46
+ // Execute the decrypted script with arguments using spawn
47
+ const child = spawn(tmpScript, args, {
48
+ stdio: 'inherit',
49
+ env: process.env
50
+ });
51
+
52
+ child.on('exit', (code) => {
53
53
  // Clean up temp file
54
- require('fs').unlinkSync(tmpScript);
55
- } catch (error) {
54
+ try { require('fs').unlinkSync(tmpScript); } catch(e) {}
55
+ process.exit(code || 0);
56
+ });
57
+
58
+ child.on('error', (error) => {
56
59
  // Clean up temp file on error
57
60
  try { require('fs').unlinkSync(tmpScript); } catch(e) {}
58
- process.exit(error.status || 1);
59
- }
61
+ console.error('Error executing script:', error);
62
+ process.exit(1);
63
+ });
60
64
  "