tx · HPeFQUqz9y52fin4vgmZd2hawqxkm4BhJHfc1z7Fv2Uo

3N54be7eQeEt4amtgvApGgpFXd3qK3woBTE:  -0.03200000 Waves

2023.03.14 17:05 [2489814] smart account 3N54be7eQeEt4amtgvApGgpFXd3qK3woBTE > SELF 0.00000000 Waves

{ "type": 13, "id": "HPeFQUqz9y52fin4vgmZd2hawqxkm4BhJHfc1z7Fv2Uo", "fee": 3200000, "feeAssetId": null, "timestamp": 1678802804701, "version": 2, "chainId": 84, "sender": "3N54be7eQeEt4amtgvApGgpFXd3qK3woBTE", "senderPublicKey": "3AmCTZMhyVJ6aQif32JBwAJHCqXMvytEognyyC3RmVDJ", "proofs": [ "UAzLCrvbou6kgVeoLKuJHMNCNwS3rBqWkmvPUrZwbT3S6JNzzFRK3dWm9vX9TwGvAuEqYsZKg44fdVPyg2z5LB5" ], "script": "base64:BgKrAQgCEgASBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEIEgASAwoBGBIKCggICAgICAEICBIECgIIARIDCgEBEgMKAQESBAoCCAESBgoECAgICBIECgIICBIECgIICBIECgIICBIDCgEIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgSAwoBCBIECgIICGkABlNDQUxFOAAIAAVNVUxUOACAwtcvAAdTQ0FMRTE4ABIABk1VTFQxOAkAtgIBAICAkLu61q3wDQAOUE9PTFdFSUdIVE1VTFQFBU1VTFQ4AA5HV1h2aXJ0dWFsUE9PTAIOR1dYdmlydHVhbFBPT0wADGxhYmVsUG9vbHNMcAIIUE9PTFNfTFAADWRlZmF1bHRTcHJlYWQAgIl6AAt3YXZlc1N0cmluZwIFV0FWRVMAEWRlY2ltYWxzTXVsdFByaWNlCQBoAgkAaAIAZADoBwDoBwADU0VQAgJfXwAFRU1QVFkCAAAKUG9vbEFjdGl2ZQABAA9Qb29sUHV0RGlzYWJsZWQAAgATUG9vbE1hdGNoZXJEaXNhYmxlZAADAAxQb29sU2h1dGRvd24ABAASaWR4SW50ZXJuYWxBc3NldElkAAEAD2lkeFJlc3V0QWN0aW9ucwACACBpZHhJZkFzc2V0SWRDYWxjdWxhdGlvblBlcmZvcm1lZAADAA5pZHhQb29sQWRkcmVzcwABAA1pZHhQb29sU3RhdHVzAAIAEGlkeFBvb2xMUEFzc2V0SWQAAwANaWR4QW10QXNzZXRJZAAEAA9pZHhQcmljZUFzc2V0SWQABQAOaWR4QW10QXNzZXREY20ABgAQaWR4UHJpY2VBc3NldERjbQAHAA5pZHhJQW10QXNzZXRJZAAIABBpZHhJUHJpY2VBc3NldElkAAkADWlkeExQQXNzZXREY20ACgALaWR4UG9vbFR5cGUACwATcG9vbExhYmVsV3hFbWlzc2lvbgILV1hfRU1JU1NJT04AD3ZhbGlkUG9vbExhYmVscwkAzAgCBRNwb29sTGFiZWxXeEVtaXNzaW9uBQNuaWwBFmtleUFsbG93ZWRMcFNjcmlwdEhhc2gAAhclc19fYWxsb3dlZExwU2NyaXB0SGFzaAEca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAACHSVzX19hbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoASFrZXlBbGxvd2VkTHBTdGFibGVBZGRvblNjcmlwdEhhc2gAAiIlc19fYWxsb3dlZExwU3RhYmxlQWRkb25TY3JpcHRIYXNoAQxzd2FwQ29udHJhY3QAAhAlc19fc3dhcENvbnRyYWN0ARBrZXlGYWN0b3J5Q29uZmlnAAIRJXNfX2ZhY3RvcnlDb25maWcBD2tleUxwVG9rZW5zTGlzdAACECVzX19scFRva2Vuc0xpc3QBEWtleVBvb2xTY3JpcHRIYXNoAAIWJXMlc19fcG9vbF9fc2NyaXB0SGFzaAENa2V5TWF0Y2hlclB1YgACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQEYa2V5TGVnYWN5RmFjdG9yeUNvbnRyYWN0AAIZJXNfX2xlZ2FjeUZhY3RvcnlDb250cmFjdAEOa2V5TGVnYWN5UG9vbHMAAg8lc19fbGVnYWN5UG9vbHMBE2tleU1hbmFnZXJQdWJsaWNLZXkAAhQlc19fbWFuYWdlclB1YmxpY0tleQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBD2tleUFkbWluUHViS2V5cwACECVzX19hZG1pblB1YktleXMBFmtleUFzc2V0c1N0b3JlQ29udHJhY3QAAhclc19fYXNzZXRzU3RvcmVDb250cmFjdAEZa2V5Vm90aW5nRW1pc3Npb25Db250cmFjdAACGiVzX192b3RpbmdFbWlzc2lvbkNvbnRyYWN0AQ5rZXlQcmljZUFzc2V0cwAJALkJAgkAzAgCAgIlcwkAzAgCAgtwcmljZUFzc2V0cwUDbmlsBQNTRVABEGtleVByaWNlRGVjaW1hbHMAAhElc19fcHJpY2VEZWNpbWFscwETa2V5QWxsUG9vbHNTaHV0ZG93bgACDCVzX19zaHV0ZG93bgEWa2V5TmV4dEludGVybmFsQXNzZXRJZAACFyVzX19uZXh0SW50ZXJuYWxBc3NldElkAQ9rZXlQb29sVG9XZWlnaHQBC3Bvb2xBZGRyZXNzCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwULcG9vbEFkZHJlc3MBFmtleVBvb2xUb1dlaWdodEhpc3RvcnkCC3Bvb2xBZGRyZXNzA251bQkArAICCQCsAgIJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQtwb29sQWRkcmVzcwICX18JAKQDAQUDbnVtAR9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkARFpbnRlcm5hbEJhc2VBc3NldAkArAICAiglcyVzJWRfX21hcHBpbmdzX19pbnRlcm5hbDJiYXNlQXNzZXRJZF9fCQCkAwEFEWludGVybmFsQmFzZUFzc2V0AR9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkAQxiYXNlQXNzZXRTdHIJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUMYmFzZUFzc2V0U3RyAQ1rZXlQb29sQ29uZmlnAhNhbW91bnRBc3NldEludGVybmFsEnByaWNlQXNzZXRJbnRlcm5hbAkArAICCQCsAgIJAKwCAgkArAICAgglZCVkJXNfXwUTYW1vdW50QXNzZXRJbnRlcm5hbAICX18FEnByaWNlQXNzZXRJbnRlcm5hbAIIX19jb25maWcBIWtleVBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZAEOYXNzZXRzSW50ZXJuYWwECyR0MDM4MjUzODg3BQ5hc3NldHNJbnRlcm5hbAQTYW1vdW50QXNzZXRJbnRlcm5hbAgFCyR0MDM4MjUzODg3Al8xBBJwcmljZUFzc2V0SW50ZXJuYWwIBQskdDAzODI1Mzg4NwJfMgkAuQkCCQDMCAICBiVkJWQlcwkAzAgCCQCkAwEFE2Ftb3VudEFzc2V0SW50ZXJuYWwJAMwIAgkApAMBBRJwcmljZUFzc2V0SW50ZXJuYWwJAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUDU0VQASVrZXlBbGxQb29sc09uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkAAkAuQkCCQDMCAICAiVzCQDMCAICGm9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkBQNuaWwFA1NFUAEda2V5TWFwcGluZ0xwQXNzZXRUb1Bvb2xBc3NldHMBCmxwQXNzZXRTdHIJAKwCAgkArAICAgglcyVzJXNfXwUKbHBBc3NldFN0cgIYX19tYXBwaW5nc19fbHBBc3NldDJQb29sAR1rZXlNYXBwaW5nUG9vbEFzc2V0c1RvTHBhc3NldAIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyF2ludGVybmFsUHJpY2VBc3NldElkU3RyCQCsAgIJAKwCAgkArAICCQCsAgICCiVkJWQlcyVzX18FGGludGVybmFsQW1vdW50QXNzZXRJZFN0cgICX18FF2ludGVybmFsUHJpY2VBc3NldElkU3RyAh5fX21hcHBpbmdzX19Qb29sQXNzZXRzMkxwQXNzZXQBDWtleVBvb2xTcHJlYWQBC3Bvb2xBZGRyZXNzCQCsAgICDiVzJXNfX3NwcmVhZF9fBQtwb29sQWRkcmVzcwEpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMBE3Bvb2xDb250cmFjdEFkZHJlc3MJAKwCAgkArAICAgglcyVzJXNfXwUTcG9vbENvbnRyYWN0QWRkcmVzcwIjX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MlBvb2xBc3NldHMBKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzAhhpbnRlcm5hbEFtb3VudEFzc2V0SWRTdHIXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHIJAKwCAgkArAICCQCsAgIJAKwCAgIKJWQlZCVzJXNfXwkApAMBBRhpbnRlcm5hbEFtb3VudEFzc2V0SWRTdHICAl9fCQCkAwEFF2ludGVybmFsUHJpY2VBc3NldElkU3RyAiNfX21hcHBpbmdzX19wb29sQXNzZXRzMlBvb2xDb250cmFjdAEfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldAETcG9vbENvbnRyYWN0QWRkcmVzcwkArAICCQCsAgICCCVzJXMlc19fBRNwb29sQ29udHJhY3RBZGRyZXNzAiBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAEqa2V5TWFwcGluZ1Bvb2xMUEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzAQpscEFzc2V0U3RyCQCsAgIJAKwCAgIIJXMlcyVzX18FCmxwQXNzZXRTdHICIF9fbWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0AQ1rZXlXeEVtaXNzaW9uAg1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAkArAICCQCsAgIJAKwCAgIUJXMlcyVzX193eEVtaXNzaW9uX18FDWFtb3VudEFzc2V0SWQCAl9fBQxwcmljZUFzc2V0SWQBCGtleUluRmVlAQtwb29sQWRkcmVzcwkArAICAg0lcyVzX19pbkZlZV9fBQtwb29sQWRkcmVzcwEPa2V5SW5GZWVEZWZhdWx0AAIQJXNfX2luRmVlRGVmYXVsdAEJa2V5T3V0RmVlAQtwb29sQWRkcmVzcwkArAICAg4lcyVzX19vdXRGZWVfXwULcG9vbEFkZHJlc3MBEGtleU91dEZlZURlZmF1bHQAAhElc19fb3V0RmVlRGVmYXVsdAEPZ2V0U3RyaW5nT3JGYWlsAQNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQNrZXkJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQNrZXkBEGdldEJvb2xlYW5PckZhaWwBA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCbCAIFBHRoaXMFA2tleQkArAICAhVObyBkYXRhIGZvciB0aGlzLmtleT0FA2tleQEMZ2V0SW50T3JGYWlsAQNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBQNrZXkJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQNrZXkBDHBhcnNlQXNzZXRJZAEFaW5wdXQDCQAAAgUFaW5wdXQFC3dhdmVzU3RyaW5nBQR1bml0CQDZBAEFBWlucHV0ABhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAAAQAZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcAACABRJZHhGYWN0b3J5Q2ZnSWRvRGFwcAADABVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAABAAZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcAAFABVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAABgAZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcAAHABRJZHhGYWN0b3J5Q2ZnRGFvRGFwcAAIABpJZHhGYWN0b3J5Q2ZnTWFya2V0aW5nRGFwcAAJABpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcAAKABZJZHhGYWN0b3J5Q2ZnQmlyZHNEYXBwAAsBGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbAEKZmFjdG9yeUNmZwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQpmYWN0b3J5Q2ZnBRlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwARhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwBCmZhY3RvcnlDZmcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUKZmFjdG9yeUNmZwUZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcAEXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwBCmZhY3RvcnlDZmcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUKZmFjdG9yeUNmZwUYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwARlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsAQpmYWN0b3J5Q2ZnCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFCmZhY3RvcnlDZmcFGklkeEZhY3RvcnlDZmdHd3hSZXdhcmREYXBwAQ5nZXRQcmljZUFzc2V0cwAEByRtYXRjaDAJAKIIAQkBDmtleVByaWNlQXNzZXRzAAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDADCQAAAgkAsQIBBQFzAAAFA25pbAkAtQkCBQFzBQNTRVAFA25pbAEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAEByRtYXRjaDAJAKIIAQkBE2tleU1hbmFnZXJQdWJsaWNLZXkAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkA2QQBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgEdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQABAckbWF0Y2gwCQCiCAEJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yABVwZXJtaXNzaW9uRGVuaWVkRXJyb3IJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAAJdGVzdEVycm9yCQACAQIPVGVzdCBlcnJvciBoZXJlAQhtdXN0VGhpcwEBaQMJAAACCAUBaQZjYWxsZXIFBHRoaXMGBRVwZXJtaXNzaW9uRGVuaWVkRXJyb3IBC211c3RNYW5hZ2VyAQFpBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDADCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawYFFXBlcm1pc3Npb25EZW5pZWRFcnJvcgMJAAECBQckbWF0Y2gwAgRVbml0CQEIbXVzdFRoaXMBBQFpCQACAQILTWF0Y2ggZXJyb3IBEGRhdGFGYWN0b3J5Q2ZnVjMLDnN0YWtpbmdBZGRyZXNzD2Jvb3N0aW5nQWRkcmVzcwtpZG9Db250cmFjdAx0ZWFtQ29udHJhY3QQZW1pc3Npb25Db250cmFjdAxyZXN0Q29udHJhY3QQc2xpcHBhZ2VDb250cmFjdAtkYW9Db250cmFjdBFtYXJrZXRpbmdDb250cmFjdBJnd3hSZXdhcmRzQ29udHJhY3QNYmlyZHNDb250cmFjdAkAuQkCCQDMCAICFiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMJAMwIAgUOc3Rha2luZ0FkZHJlc3MJAMwIAgUPYm9vc3RpbmdBZGRyZXNzCQDMCAIFC2lkb0NvbnRyYWN0CQDMCAIFDHRlYW1Db250cmFjdAkAzAgCBRBlbWlzc2lvbkNvbnRyYWN0CQDMCAIFDHJlc3RDb250cmFjdAkAzAgCBRBzbGlwcGFnZUNvbnRyYWN0CQDMCAIFC2Rhb0NvbnRyYWN0CQDMCAIFEW1hcmtldGluZ0NvbnRyYWN0CQDMCAIFEmd3eFJld2FyZHNDb250cmFjdAkAzAgCBQ1iaXJkc0NvbnRyYWN0BQNuaWwFA1NFUAEOZGF0YUZhY3RvcnlDZmcHDnN0YWtpbmdBZGRyZXNzD2Jvb3N0aW5nQWRkcmVzcwtpZG9Db250cmFjdAx0ZWFtQ29udHJhY3QQZW1pc3Npb25Db250cmFjdAxyZXN0Q29udHJhY3QQc2xpcHBhZ2VDb250cmFjdAkAuQkCCQDMCAICDCVzJXMlcyVzJXMlcwkAzAgCBQ5zdGFraW5nQWRkcmVzcwkAzAgCBQ9ib29zdGluZ0FkZHJlc3MJAMwIAgULaWRvQ29udHJhY3QJAMwIAgUMdGVhbUNvbnRyYWN0CQDMCAIFEGVtaXNzaW9uQ29udHJhY3QJAMwIAgUMcmVzdENvbnRyYWN0CQDMCAIFEHNsaXBwYWdlQ29udHJhY3QFA25pbAUDU0VQAQtkYXRhUG9vbENmZwsLcG9vbEFkZHJlc3MKcG9vbFN0YXR1cwlscEFzc2V0SWQOYW1vdW50QXNzZXRTdHINcHJpY2VBc3NldFN0chNhbW91bnRBc3NldERlY2ltYWxzEnByaWNlQXNzZXREZWNpbWFscxVhbW91bnRBc3NldEludGVybmFsSWQUcHJpY2VBc3NldEludGVybmFsSWQPbHBBc3NldERlY2ltYWxzCHBvb2xUeXBlCQC5CQIJAMwIAgIWJXMlZCVzJXMlcyVkJWQlZCVkJWQlcwkAzAgCBQtwb29sQWRkcmVzcwkAzAgCBQpwb29sU3RhdHVzCQDMCAIFCWxwQXNzZXRJZAkAzAgCBQ5hbW91bnRBc3NldFN0cgkAzAgCBQ1wcmljZUFzc2V0U3RyCQDMCAIJAKQDAQUTYW1vdW50QXNzZXREZWNpbWFscwkAzAgCCQCkAwEFEnByaWNlQXNzZXREZWNpbWFscwkAzAgCCQCkAwEFFWFtb3VudEFzc2V0SW50ZXJuYWxJZAkAzAgCCQCkAwEFFHByaWNlQXNzZXRJbnRlcm5hbElkCQDMCAIJAKQDAQUPbHBBc3NldERlY2ltYWxzCQDMCAIFCHBvb2xUeXBlBQNuaWwFA1NFUAEVZGF0YU1hcHBpbmdQb29sQXNzZXRzAhZpbnRlcm5hbEFtb3VudEFzc2V0U3RyFWludGVybmFsUHJpY2VBc3NldFN0cgkAuQkCCQDMCAICBCVkJWQJAMwIAgkApAMBBRZpbnRlcm5hbEFtb3VudEFzc2V0U3RyCQDMCAIJAKQDAQUVaW50ZXJuYWxQcmljZUFzc2V0U3RyBQNuaWwFA1NFUAENZ2V0UG9vbENvbmZpZwELcG9vbEFkZHJlc3MECnBvb2xBc3NldHMJALUJAgkBD2dldFN0cmluZ09yRmFpbAEJASlrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cwEFC3Bvb2xBZGRyZXNzBQNTRVAEE2Ftb3VudEFzc2V0SW50ZXJuYWwJAJEDAgUKcG9vbEFzc2V0cwABBBJwcmljZUFzc2V0SW50ZXJuYWwJAJEDAgUKcG9vbEFzc2V0cwACCQC1CQIJAQ9nZXRTdHJpbmdPckZhaWwBCQENa2V5UG9vbENvbmZpZwIFE2Ftb3VudEFzc2V0SW50ZXJuYWwFEnByaWNlQXNzZXRJbnRlcm5hbAUDU0VQARpnZXRJbnRlcm5hbEFzc2V0SWRPckNyZWF0ZQIKYXNzZXRJZFN0cgtpbmNyZW1lbnRvcgQPaW50ZXJuYWxBc3NldElkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAR9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkAQUKYXNzZXRJZFN0cgAABBhjdXJyZW50SW5kZXhPZkludGVybmFsSWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBFmtleU5leHRJbnRlcm5hbEFzc2V0SWQAAAAEBnJlc3VsdAMJAAACBQ9pbnRlcm5hbEFzc2V0SWQAAAQSbmV3SW50ZXJuYWxBc3NldElkCQBkAgUYY3VycmVudEluZGV4T2ZJbnRlcm5hbElkBQtpbmNyZW1lbnRvcgkAlQoDBRJuZXdJbnRlcm5hbEFzc2V0SWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlOZXh0SW50ZXJuYWxBc3NldElkAAUSbmV3SW50ZXJuYWxBc3NldElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZAEFCmFzc2V0SWRTdHIFEm5ld0ludGVybmFsQXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQEfa2V5TWFwcGluZ3NJbnRlcm5hbDJiYXNlQXNzZXRJZAEFEm5ld0ludGVybmFsQXNzZXRJZAUKYXNzZXRJZFN0cgUDbmlsBgkAlQoDBQ9pbnRlcm5hbEFzc2V0SWQFA25pbAcFBnJlc3VsdAEJbXVzdEFkbWluAQFpBAhhZG1pblBLcwkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEJAQ9rZXlBZG1pblB1YktleXMABQVFTVBUWQUDU0VQAwkBD2NvbnRhaW5zRWxlbWVudAIFCGFkbWluUEtzCQDYBAEIBQFpD2NhbGxlclB1YmxpY0tleQYECWlzTWFuYWdlcgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQlpc01hbmFnZXIFCWlzTWFuYWdlcgYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BFmludE9yRGVmYXVsdE9yRmFsbGJhY2sDA2tleQprZXlEZWZhdWx0DXZhbHVlRmFsbGJhY2sJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFCmtleURlZmF1bHQFDXZhbHVlRmFsbGJhY2sBEnBvb2xFeGlzdHNJbnRlcm5hbAINYW1vdW50QXNzZXRJZAxwcmljZUFzc2V0SWQEE2Ftb3VudEFzc2V0SW50ZXJuYWwJAJ8IAQkBH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQBBQ1hbW91bnRBc3NldElkBBJwcmljZUFzc2V0SW50ZXJuYWwJAJ8IAQkBH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQBBQxwcmljZUFzc2V0SWQDAwkAAAIFE2Ftb3VudEFzc2V0SW50ZXJuYWwFBHVuaXQGCQAAAgUScHJpY2VBc3NldEludGVybmFsBQR1bml0BwQEYW1BcwkApAMBCQEFdmFsdWUBBRNhbW91bnRBc3NldEludGVybmFsBARwckFzCQCkAwEJAQV2YWx1ZQEFEnByaWNlQXNzZXRJbnRlcm5hbAQDY2ZnCQCiCAEJAQ1rZXlQb29sQ29uZmlnAgUEYW1BcwUEcHJBcwQKY2ZnUmV2ZXJzZQkAoggBCQENa2V5UG9vbENvbmZpZwIFBHByQXMFBGFtQXMEBmV4aXN0cwMJAQIhPQIFA2NmZwUEdW5pdAYJAQIhPQIFCmNmZ1JldmVyc2UFBHVuaXQFBmV4aXN0cx0BaQEXZ2V0U3dhcENvbnRyYWN0UkVBRE9OTFkACQCUCgIFA25pbAkBD2dldFN0cmluZ09yRmFpbAEJAQxzd2FwQ29udHJhY3QAAWkBIGdldExwQXNzZXRGcm9tUG9vbEFzc2V0c1JFQURPTkxZAgZhc3NldDEGYXNzZXQyAwMJAAACBQZhc3NldDECLDhMUVc4ZjdQNWQ1UFpNN0d0WkVCZ2FxUlBHU3pTM0RmUHVpWHJVUko0QUpTCQAAAgUGYXNzZXQyAgVXQVZFUwcJAJQKAgUDbmlsBQR1bml0BAlhc3NldE51bTEJAQV2YWx1ZQEJAJoIAgUEdGhpcwkBH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQBBQZhc3NldDEECWFzc2V0TnVtMgkBBXZhbHVlAQkAmggCBQR0aGlzCQEfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZAEFBmFzc2V0MgQCZWUJAJ0IAgUEdGhpcwkBHWtleU1hcHBpbmdQb29sQXNzZXRzVG9McGFzc2V0AgkApAMBBQlhc3NldE51bTEJAKQDAQUJYXNzZXROdW0yBANyZXMDCQAAAgUCZWUFBHVuaXQFBHVuaXQJALACAgkBBXZhbHVlAQUCZWUABAkAlAoCBQNuaWwFA3JlcwFpASFnZXRQb29sQWRkcmVzc0Zyb21McEFzc2V0UkVBRE9OTFkBAmxwCQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEqa2V5TWFwcGluZ1Bvb2xMUEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzAQUCbHACAAFpAQtjb25zdHJ1Y3RvcggPc3Rha2luZ0NvbnRyYWN0EGJvb3N0aW5nQ29udHJhY3QLaWRvQ29udHJhY3QMdGVhbUNvbnRyYWN0EGVtaXNzaW9uQ29udHJhY3QMcmVzdENvbnRyYWN0EHNscGlwYWdlQ29udHJhY3QNcHJpY2VEZWNpbWFscwQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJARBrZXlGYWN0b3J5Q29uZmlnAAkBDmRhdGFGYWN0b3J5Q2ZnBwUPc3Rha2luZ0NvbnRyYWN0BRBib29zdGluZ0NvbnRyYWN0BQtpZG9Db250cmFjdAUMdGVhbUNvbnRyYWN0BRBlbWlzc2lvbkNvbnRyYWN0BQxyZXN0Q29udHJhY3QFEHNscGlwYWdlQ29udHJhY3QJAMwIAgkBDEludGVnZXJFbnRyeQIJARBrZXlQcmljZURlY2ltYWxzAAUNcHJpY2VEZWNpbWFscwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDWNvbnN0cnVjdG9yVjIBEG1hdGhjaGVyUHViNThTdHIEC2NoZWNrQ2FsbGVyCQELbXVzdE1hbmFnZXIBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQKbWF0aGNlclB1YgkApwgBCQDZBAEFEG1hdGhjaGVyUHViNThTdHIDCQAAAgUKbWF0aGNlclB1YgUKbWF0aGNlclB1YgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5TWF0Y2hlclB1YgAFEG1hdGhjaGVyUHViNThTdHIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ1jb25zdHJ1Y3RvclYzBAtkYW9Db250cmFjdBFtYXJrZXRpbmdDb250cmFjdBJnd3hSZXdhcmRzQ29udHJhY3QNYmlyZHNDb250cmFjdAQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBApmYWN0b3J5Q2ZnCQC1CQIJAQ9nZXRTdHJpbmdPckZhaWwBCQEQa2V5RmFjdG9yeUNvbmZpZwAFA1NFUAkAzAgCCQELU3RyaW5nRW50cnkCCQEQa2V5RmFjdG9yeUNvbmZpZwAJARBkYXRhRmFjdG9yeUNmZ1YzCwkAkQMCBQpmYWN0b3J5Q2ZnAAEJAJEDAgUKZmFjdG9yeUNmZwACCQCRAwIFCmZhY3RvcnlDZmcAAwkAkQMCBQpmYWN0b3J5Q2ZnAAQJAJEDAgUKZmFjdG9yeUNmZwAFCQCRAwIFCmZhY3RvcnlDZmcABgkAkQMCBQpmYWN0b3J5Q2ZnAAcFC2Rhb0NvbnRyYWN0BRFtYXJrZXRpbmdDb250cmFjdAUSZ3d4UmV3YXJkc0NvbnRyYWN0BQ1iaXJkc0NvbnRyYWN0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQENY29uc3RydWN0b3JWNAIVbGVnYWN5RmFjdG9yeUNvbnRyYWN0C2xlZ2FjeVBvb2xzBAtjaGVja0NhbGxlcgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBGGtleUxlZ2FjeUZhY3RvcnlDb250cmFjdAAFFWxlZ2FjeUZhY3RvcnlDb250cmFjdAkAzAgCCQELU3RyaW5nRW50cnkCCQEOa2V5TGVnYWN5UG9vbHMACQC5CQIFC2xlZ2FjeVBvb2xzBQNTRVAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ1jb25zdHJ1Y3RvclY1ARNhc3NldHNTdG9yZUNvbnRyYWN0BAtjaGVja0NhbGxlcgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBFmtleUFzc2V0c1N0b3JlQ29udHJhY3QABRNhc3NldHNTdG9yZUNvbnRyYWN0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQENY29uc3RydWN0b3JWNgIWdm90aW5nRW1pc3Npb25Db250cmFjdAtwcmljZUFzc2V0cwQFY2hla3MJAMwIAgkBC211c3RNYW5hZ2VyAQUBaQkAzAgCAwkBAiE9AgkApggBBRZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0BQR1bml0BgIoaW52YWxpZCB2b3RpbmcgZW1pc3Npb24gY29udHJhY3QgYWRkcmVzcwUDbmlsAwkAAAIFBWNoZWtzBQVjaGVrcwkAzAgCCQELU3RyaW5nRW50cnkCCQEZa2V5Vm90aW5nRW1pc3Npb25Db250cmFjdAAFFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmtleVByaWNlQXNzZXRzAAkAuQkCBQtwcmljZUFzc2V0cwUDU0VQBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKc2V0TWFuYWdlcgEXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEC2NoZWNrQ2FsbGVyCQELbXVzdE1hbmFnZXIBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQDZBAEFF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AwkAAAIFFWNoZWNrTWFuYWdlclB1YmxpY0tleQUVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQDMCAIJAQtTdHJpbmdFbnRyeQIJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAFF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOY29uZmlybU1hbmFnZXIABAJwbQkBHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAQFaGFzUE0DCQEJaXNEZWZpbmVkAQUCcG0GCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFBWhhc1BNBQVoYXNQTQQHY2hlY2tQTQMJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAnBtBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQdjaGVja1BNBQdjaGVja1BNCQDMCAIJAQtTdHJpbmdFbnRyeQIJARNrZXlNYW5hZ2VyUHVibGljS2V5AAkA2AQBCQEFdmFsdWUBBQJwbQkAzAgCCQELRGVsZXRlRW50cnkBCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEJc2V0QWRtaW5zAQxhZG1pblB1YktleXMEC2NoZWNrQ2FsbGVyCQELbXVzdE1hbmFnZXIBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5QWRtaW5QdWJLZXlzAAkAuQkCBQxhZG1pblB1YktleXMFA1NFUAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBD2FjdGl2YXRlTmV3UG9vbAgLcG9vbEFkZHJlc3MOYW1vdW50QXNzZXRTdHINcHJpY2VBc3NldFN0cgtscEFzc2V0TmFtZQxscEFzc2V0RGVzY3IKcG9vbFdlaWdodAhwb29sVHlwZQRsb2dvBAtjaGVja0NhbGxlcgkBCW11c3RBZG1pbgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyAwkBCWlzRGVmaW5lZAEJAKIIAQkBKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzAQULcG9vbEFkZHJlc3MJAAIBCQCsAgIJAKwCAgINUG9vbCBhZGRyZXNzIAULcG9vbEFkZHJlc3MCFCBhbHJlYWR5IHJlZ2lzdGVyZWQuBBdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YQkBGmdldEludGVybmFsQXNzZXRJZE9yQ3JlYXRlAgUOYW1vdW50QXNzZXRTdHIAAQQVaW50ZXJuYWxBbW91bnRBc3NldElkCAUXaW50ZXJuYWxBbW91bnRBc3NldERhdGECXzEEFmludGVybmFsUHJpY2VBc3NldERhdGEJARpnZXRJbnRlcm5hbEFzc2V0SWRPckNyZWF0ZQIFDXByaWNlQXNzZXRTdHIDCAUXaW50ZXJuYWxBbW91bnRBc3NldERhdGECXzMAAgABBBRpbnRlcm5hbFByaWNlQXNzZXRJZAgFFmludGVybmFsUHJpY2VBc3NldERhdGECXzEEFXBvb2xBY2NvdW50U2NyaXB0SGFzaAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDxBwEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFC3Bvb2xBZGRyZXNzCQCsAgICKU5vIHNjcmlwdCBoYXMgYmVlbiBmb3VuZCBvbiBwb29sIGFjY291bnQgBQtwb29sQWRkcmVzcwQcZXRoYWxvblBvb2xBY2NvdW50U2NyaXB0SGFzaAkBEUBleHRyTmF0aXZlKDEwNTcpAQkBEWtleVBvb2xTY3JpcHRIYXNoAAQKcG9vbEV4aXN0cwkBEnBvb2xFeGlzdHNJbnRlcm5hbAIFDmFtb3VudEFzc2V0U3RyBQ1wcmljZUFzc2V0U3RyAwUKcG9vbEV4aXN0cwkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgIFUG9vbCAFDmFtb3VudEFzc2V0U3RyAgEvBQ1wcmljZUFzc2V0U3RyAhwgaGFzIGFscmVhZHkgYmVlbiBhY3RpdmF0ZWQuBA9wb29sQ29uZmlnVmFsdWUJAQV2YWx1ZQEJAJ0IAgUEdGhpcwkBDWtleVBvb2xDb25maWcCCQCkAwEFFWludGVybmFsQW1vdW50QXNzZXRJZAkApAMBBRRpbnRlcm5hbFByaWNlQXNzZXRJZAQUYW1vdW50QXNzZXRzRGVjaW1hbHMDCQAAAgUOYW1vdW50QXNzZXRTdHICBVdBVkVTBRFkZWNpbWFsc011bHRQcmljZQkAbAYACgAACAkBBXZhbHVlAQkA7AcBCQDZBAEFDmFtb3VudEFzc2V0U3RyCGRlY2ltYWxzAAAAAAUERE9XTgQTcHJpY2VBc3NldHNEZWNpbWFscwMJAAACBQ1wcmljZUFzc2V0U3RyAgVXQVZFUwURZGVjaW1hbHNNdWx0UHJpY2UJAGwGAAoAAAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQ1wcmljZUFzc2V0U3RyCGRlY2ltYWxzAAAAAAUERE9XTgQSbHBBc3NldElzc3VlQWN0aW9uCQDCCAUFC2xwQXNzZXROYW1lBQxscEFzc2V0RGVzY3IAAQAIBgQJbHBBc3NldElkCQC4CAEFEmxwQXNzZXRJc3N1ZUFjdGlvbgQMbHBBc3NldElkU3RyCQDYBAEFCWxwQXNzZXRJZAQYcG9vbEFjdGl2YXRlSW52b2tlUmVzdWx0CQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFC3Bvb2xBZGRyZXNzAghhY3RpdmF0ZQkAzAgCBQ5hbW91bnRBc3NldFN0cgkAzAgCBQ1wcmljZUFzc2V0U3RyBQNuaWwFA25pbAMJAAACBRhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQFGHBvb2xBY3RpdmF0ZUludm9rZVJlc3VsdAMJAQIhPQIFGHBvb2xBY3RpdmF0ZUludm9rZVJlc3VsdAIHc3VjY2VzcwkAAgECI1Bvb2wgaW5pdGlhbGlzYXRpb24gZXJyb3IgaGFwcGVuZWQuBBNhc3NldHNTdG9yZUNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEPZ2V0U3RyaW5nT3JGYWlsAQkBFmtleUFzc2V0c1N0b3JlQ29udHJhY3QABBhjcmVhdGVPclVwZGF0ZUxwQXNzZXRJbnYJAPwHBAUTYXNzZXRzU3RvcmVDb250cmFjdAIOY3JlYXRlT3JVcGRhdGUJAMwIAgUMbHBBc3NldElkU3RyCQDMCAIFC2xwQXNzZXROYW1lCQDMCAIHBQNuaWwFA25pbAMJAAACBRhjcmVhdGVPclVwZGF0ZUxwQXNzZXRJbnYFGGNyZWF0ZU9yVXBkYXRlTHBBc3NldEludgQSYWRkUG9vbHNMcExhYmVsSW52CQD8BwQFE2Fzc2V0c1N0b3JlQ29udHJhY3QCCGFkZExhYmVsCQDMCAIFDGxwQXNzZXRJZFN0cgkAzAgCBQxsYWJlbFBvb2xzTHAFA25pbAUDbmlsAwkAAAIFEmFkZFBvb2xzTHBMYWJlbEludgUSYWRkUG9vbHNMcExhYmVsSW52BApzZXRMb2dvSW52CQD8BwQFE2Fzc2V0c1N0b3JlQ29udHJhY3QCB3NldExvZ28JAMwIAgUMbHBBc3NldElkU3RyCQDMCAIFBGxvZ28FA25pbAUDbmlsAwkAAAIFCnNldExvZ29JbnYFCnNldExvZ29JbnYEEGFkZEFzc2V0c0xpbmtJbnYJAPwHBAUTYXNzZXRzU3RvcmVDb250cmFjdAINYWRkQXNzZXRzTGluawkAzAgCBQ5hbW91bnRBc3NldFN0cgkAzAgCBQ1wcmljZUFzc2V0U3RyCQDMCAIFDGxwQXNzZXRJZFN0cgUDbmlsBQNuaWwDCQAAAgUQYWRkQXNzZXRzTGlua0ludgUQYWRkQXNzZXRzTGlua0ludgQbaW5jcmVhc2VBc3NldFBvb2xzTnVtYmVySW52CQD8BwQFE2Fzc2V0c1N0b3JlQ29udHJhY3QCGGluY3JlYXNlQXNzZXRQb29sc051bWJlcgkAzAgCBQ5hbW91bnRBc3NldFN0cgUDbmlsBQNuaWwDCQAAAgUbaW5jcmVhc2VBc3NldFBvb2xzTnVtYmVySW52BRtpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXJJbnYJAJQKAgkAzggCCQDOCAIIBRdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YQJfMggFFmludGVybmFsUHJpY2VBc3NldERhdGECXzIJAMwIAgUSbHBBc3NldElzc3VlQWN0aW9uCQDMCAIJAQRCdXJuAgUJbHBBc3NldElkAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVBvb2xDb25maWcCCQCkAwEFFWludGVybmFsQW1vdW50QXNzZXRJZAkApAMBBRRpbnRlcm5hbFByaWNlQXNzZXRJZAkBC2RhdGFQb29sQ2ZnCwULcG9vbEFkZHJlc3MJAKQDAQUKUG9vbEFjdGl2ZQUMbHBBc3NldElkU3RyBQ5hbW91bnRBc3NldFN0cgUNcHJpY2VBc3NldFN0cgUUYW1vdW50QXNzZXRzRGVjaW1hbHMFE3ByaWNlQXNzZXRzRGVjaW1hbHMFFWludGVybmFsQW1vdW50QXNzZXRJZAUUaW50ZXJuYWxQcmljZUFzc2V0SWQFEWRlY2ltYWxzTXVsdFByaWNlBQhwb29sVHlwZQkAzAgCCQELU3RyaW5nRW50cnkCCQEda2V5TWFwcGluZ0xwQXNzZXRUb1Bvb2xBc3NldHMBBQxscEFzc2V0SWRTdHIJARVkYXRhTWFwcGluZ1Bvb2xBc3NldHMCBRVpbnRlcm5hbEFtb3VudEFzc2V0SWQFFGludGVybmFsUHJpY2VBc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAR1rZXlNYXBwaW5nUG9vbEFzc2V0c1RvTHBhc3NldAIJAKQDAQUVaW50ZXJuYWxBbW91bnRBc3NldElkCQCkAwEFFGludGVybmFsUHJpY2VBc3NldElkCQCsAgICBCVzX18FDGxwQXNzZXRJZFN0cgkAzAgCCQELU3RyaW5nRW50cnkCCQEpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMBBQtwb29sQWRkcmVzcwkBFWRhdGFNYXBwaW5nUG9vbEFzc2V0cwIFFWludGVybmFsQW1vdW50QXNzZXRJZAUUaW50ZXJuYWxQcmljZUFzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzAgUVaW50ZXJuYWxBbW91bnRBc3NldElkBRRpbnRlcm5hbFByaWNlQXNzZXRJZAULcG9vbEFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBKmtleU1hcHBpbmdQb29sTFBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwEFDGxwQXNzZXRJZFN0cgULcG9vbEFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBH2tleU1hcHBpbmdQb29sQ29udHJhY3RUb0xQQXNzZXQBBQtwb29sQWRkcmVzcwUMbHBBc3NldElkU3RyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5UG9vbFRvV2VpZ2h0AQULcG9vbEFkZHJlc3MFCnBvb2xXZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ1rZXlQb29sU3ByZWFkAQULcG9vbEFkZHJlc3MFDWRlZmF1bHRTcHJlYWQFA25pbAUMbHBBc3NldElkU3RyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCm1hbmFnZVBvb2wCC3Bvb2xBZGRyZXNzCW5ld1N0YXR1cwQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBApwb29sQ29uZmlnCQENZ2V0UG9vbENvbmZpZwEFC3Bvb2xBZGRyZXNzBApwb29sU3RhdHVzCQCRAwIFCnBvb2xDb25maWcFDWlkeFBvb2xTdGF0dXMEDGxwQXNzZXRJZFN0cgkAkQMCBQpwb29sQ29uZmlnBRBpZHhQb29sTFBBc3NldElkBA5hbW91bnRBc3NldFN0cgkAkQMCBQpwb29sQ29uZmlnBQ1pZHhBbXRBc3NldElkBA1wcmljZUFzc2V0U3RyCQCRAwIFCnBvb2xDb25maWcFD2lkeFByaWNlQXNzZXRJZAQUYW1vdW50QXNzZXRzRGVjaW1hbHMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpwb29sQ29uZmlnBQ5pZHhBbXRBc3NldERjbQQTcHJpY2VBc3NldHNEZWNpbWFscwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCnBvb2xDb25maWcFEGlkeFByaWNlQXNzZXREY20EFWludGVybmFsQW1vdW50QXNzZXRJZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCnBvb2xDb25maWcFDmlkeElBbXRBc3NldElkBBRpbnRlcm5hbFByaWNlQXNzZXRJZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCnBvb2xDb25maWcFEGlkeElQcmljZUFzc2V0SWQECmxwQXNzZXREY20JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpwb29sQ29uZmlnBQ1pZHhMUEFzc2V0RGNtBAhwb29sVHlwZQkAkQMCBQpwb29sQ29uZmlnBQtpZHhQb29sVHlwZQkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5UG9vbENvbmZpZwIJAKQDAQUVaW50ZXJuYWxBbW91bnRBc3NldElkCQCkAwEFFGludGVybmFsUHJpY2VBc3NldElkCQELZGF0YVBvb2xDZmcLBQtwb29sQWRkcmVzcwkApAMBBQluZXdTdGF0dXMFDGxwQXNzZXRJZFN0cgUOYW1vdW50QXNzZXRTdHIFDXByaWNlQXNzZXRTdHIFFGFtb3VudEFzc2V0c0RlY2ltYWxzBRNwcmljZUFzc2V0c0RlY2ltYWxzBRVpbnRlcm5hbEFtb3VudEFzc2V0SWQFFGludGVybmFsUHJpY2VBc3NldElkBQpscEFzc2V0RGNtBQhwb29sVHlwZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBGVtaXQBDGFtb3VudFRvRW1pdAQGY2FsbGVyCAUBaQZjYWxsZXIEDG9yaWdpbkNhbGxlcggFAWkMb3JpZ2luQ2FsbGVyBBBscEFzc2V0UmVxdWVzdGVkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBH2tleU1hcHBpbmdQb29sQ29udHJhY3RUb0xQQXNzZXQBCQClCAEFBmNhbGxlcgIdSW52YWxpZCBMUCBhZGRyZXNzIGNhbGxlZCBtZS4EB2xwQXNzZXQJANkEAQUQbHBBc3NldFJlcXVlc3RlZAQLbGVnYWN5UG9vbHMJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEOa2V5TGVnYWN5UG9vbHMABQVFTVBUWQUDU0VQBBVsZWdhY3lGYWN0b3J5Q29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEYa2V5TGVnYWN5RmFjdG9yeUNvbnRyYWN0AAIoTGVnYWN5IGZhY3RvcnkgY29udHJhY3QgZG9lcyBub3QgZXhpc3RzLgMJAGcCAAAFDGFtb3VudFRvRW1pdAUDbmlsAwkBD2NvbnRhaW5zRWxlbWVudAIFC2xlZ2FjeVBvb2xzCQClCAEFBmNhbGxlcgkAlAoCBQNuaWwFFWxlZ2FjeUZhY3RvcnlDb250cmFjdAkAlAoCCQDMCAIJAQdSZWlzc3VlAwUHbHBBc3NldAUMYW1vdW50VG9FbWl0BgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFDGFtb3VudFRvRW1pdAUHbHBBc3NldAUDbmlsAgdzdWNjZXNzAWkBBGJ1cm4BDGFtb3VudFRvQnVybgQGY2FsbGVyCAUBaQZjYWxsZXIEDG9yaWdpbkNhbGxlcggFAWkMb3JpZ2luQ2FsbGVyBAdwYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEDXBheW1lbnRBbW91bnQJAQV2YWx1ZQEIBQdwYXltZW50BmFtb3VudAQPaW5BbW91bnRBc3NldElkCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQEGmxwQXNzZXRSZXF1ZXN0ZWRGb3JCdXJuaW5nCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBH2tleU1hcHBpbmdQb29sQ29udHJhY3RUb0xQQXNzZXQBCQClCAEFBmNhbGxlcgIdSW52YWxpZCBMUCBhZGRyZXNzIGNhbGxlZCBtZS4DCQECIT0CBQ9pbkFtb3VudEFzc2V0SWQFGmxwQXNzZXRSZXF1ZXN0ZWRGb3JCdXJuaW5nCQACAQIVSW52YWxpZCBhc3NldCBwYXNzZWQuAwkBAiE9AgUMYW1vdW50VG9CdXJuBQ1wYXltZW50QW1vdW50CQACAQIWSW52YWxpZCBhbW91bnQgcGFzc2VkLgQHbHBBc3NldAkA2QQBBRpscEFzc2V0UmVxdWVzdGVkRm9yQnVybmluZwkAlAoCCQDMCAIJAQRCdXJuAgUHbHBBc3NldAUMYW1vdW50VG9CdXJuBQNuaWwCB3N1Y2Nlc3MBaQEMbW9kaWZ5V2VpZ2h0AglscEFzc2V0SWQFc2hhcmUEC2NoZWNrQ2FsbGVyAwkAAAIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEZa2V5Vm90aW5nRW1pc3Npb25Db250cmFjdAACAAYJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBBNwb29sQ29udHJhY3RBZGRyZXNzCQEPZ2V0U3RyaW5nT3JGYWlsAQkBKmtleU1hcHBpbmdQb29sTFBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwEFCWxwQXNzZXRJZAQNcG9vbFdlaWdodEtleQkBD2tleVBvb2xUb1dlaWdodAEFE3Bvb2xDb250cmFjdEFkZHJlc3MEDGd3eFdlaWdodEtleQkBD2tleVBvb2xUb1dlaWdodAEFDkdXWHZpcnR1YWxQT09MBAlnd3hXZWlnaHQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUMZ3d4V2VpZ2h0S2V5AAAECnBvb2xXZWlnaHQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUNcG9vbFdlaWdodEtleQAABA1wb29sV2VpZ2h0TmV3BQVzaGFyZQQKZmFjdG9yeUNmZwkAtQkCCQEPZ2V0U3RyaW5nT3JGYWlsAQkBEGtleUZhY3RvcnlDb25maWcABQNTRVAED3N0YWtpbmdDb250cmFjdAkBF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsAQUKZmFjdG9yeUNmZwQRb25Nb2RpZnlXZWlnaHRJbnYJAPwHBAUPc3Rha2luZ0NvbnRyYWN0Ag5vbk1vZGlmeVdlaWdodAkAzAgCBQlscEFzc2V0SWQJAMwIAgUTcG9vbENvbnRyYWN0QWRkcmVzcwUDbmlsBQNuaWwDCQAAAgURb25Nb2RpZnlXZWlnaHRJbnYFEW9uTW9kaWZ5V2VpZ2h0SW52BBVnd3hWaXJ0dWFsUG9vbEFjdGlvbnMDCQAAAgUJZ3d4V2VpZ2h0AAAFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUMZ3d4V2VpZ2h0S2V5AAAFA25pbAQUcG9vbFdlaWdodEhpc3RvcnlLZXkJARZrZXlQb29sVG9XZWlnaHRIaXN0b3J5AgUTcG9vbENvbnRyYWN0QWRkcmVzcwAABBdwb29sV2VpZ2h0SGlzdG9yeU9yVW5pdAkAnwgBBRRwb29sV2VpZ2h0SGlzdG9yeUtleQQYcG9vbFdlaWdodEhpc3RvcnlBY3Rpb25zAwkAAAIFF3Bvb2xXZWlnaHRIaXN0b3J5T3JVbml0BQR1bml0BQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQUUcG9vbFdlaWdodEhpc3RvcnlLZXkFA25pbAkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFDXBvb2xXZWlnaHRLZXkFDXBvb2xXZWlnaHROZXcFA25pbAUVZ3d4VmlydHVhbFBvb2xBY3Rpb25zBRhwb29sV2VpZ2h0SGlzdG9yeUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQENbW9kaWZ5V2VpZ2h0cwQOYnRjUG9vbEFkZHJlc3MOZXRoUG9vbEFkZHJlc3MRZXRoQnRjUG9vbEFkZHJlc3MTdXNkY1VzZHRQb29sQWRkcmVzcwQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBA9ldGhCdGNXZWlnaHROZXcJAGkCCQBoAgAFBQ5QT09MV0VJR0hUTVVMVABkBBF1c2RjVXNkdFdlaWdodE5ldwkAaQIJAGgCAAUFDlBPT0xXRUlHSFRNVUxUAGQED3dlaWdodERlY3JlbWVudAkAaQIJAGgCAAUFDlBPT0xXRUlHSFRNVUxUAGQECmZhY3RvcnlDZmcJALUJAgkBD2dldFN0cmluZ09yRmFpbAEJARBrZXlGYWN0b3J5Q29uZmlnAAUDU0VQBAtzdGFraW5nRGFwcAkBF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsAQUKZmFjdG9yeUNmZwQNZ3d4UmV3YXJkRGFwcAkBGWdldEd3eFJld2FyZEFkZHJlc3NPckZhaWwBBQpmYWN0b3J5Q2ZnBAxidGNXZWlnaHRLRVkJAQ9rZXlQb29sVG9XZWlnaHQBBQ5idGNQb29sQWRkcmVzcwQMZXRoV2VpZ2h0S0VZCQEPa2V5UG9vbFRvV2VpZ2h0AQUOZXRoUG9vbEFkZHJlc3MED2V0aEJ0Y1dlaWdodEtFWQkBD2tleVBvb2xUb1dlaWdodAEFEWV0aEJ0Y1Bvb2xBZGRyZXNzBBF1c2RjVXNkdFdlaWdodEtFWQkBD2tleVBvb2xUb1dlaWdodAEFE3VzZGNVc2R0UG9vbEFkZHJlc3MECWJ0Y1dlaWdodAkBDGdldEludE9yRmFpbAEFDGJ0Y1dlaWdodEtFWQQJZXRoV2VpZ2h0CQEMZ2V0SW50T3JGYWlsAQUMZXRoV2VpZ2h0S0VZBAxidGNXZWlnaHROZXcJAGUCBQlidGNXZWlnaHQFD3dlaWdodERlY3JlbWVudAQMZXRoV2VpZ2h0TmV3CQBlAgUJZXRoV2VpZ2h0BQ93ZWlnaHREZWNyZW1lbnQDCQBnAgAABQxidGNXZWlnaHROZXcJAAIBCQCsAgICFmludmFsaWQgYnRjV2VpZ2h0TmV3OiAJAKQDAQUMYnRjV2VpZ2h0TmV3AwkAZwIAAAUMZXRoV2VpZ2h0TmV3CQACAQkArAICAhZpbnZhbGlkIGV0aFdlaWdodE5ldzogCQCkAwEFDGV0aFdlaWdodE5ldwQPYnRjTHBBc3NldElkU3RyCQEPZ2V0U3RyaW5nT3JGYWlsAQkBH2tleU1hcHBpbmdQb29sQ29udHJhY3RUb0xQQXNzZXQBBQ5idGNQb29sQWRkcmVzcwQPZXRoTHBBc3NldElkU3RyCQEPZ2V0U3RyaW5nT3JGYWlsAQkBH2tleU1hcHBpbmdQb29sQ29udHJhY3RUb0xQQXNzZXQBBQ5ldGhQb29sQWRkcmVzcwQSZXRoQnRjTHBBc3NldElkU3RyCQEPZ2V0U3RyaW5nT3JGYWlsAQkBH2tleU1hcHBpbmdQb29sQ29udHJhY3RUb0xQQXNzZXQBBRFldGhCdGNQb29sQWRkcmVzcwQUdXNkY1VzZHRMcEFzc2V0SWRTdHIJAQ9nZXRTdHJpbmdPckZhaWwBCQEfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldAEFE3VzZGNVc2R0UG9vbEFkZHJlc3MEEW9uTW9kaWZ5V2VpZ2h0QnRjCQD8BwQFC3N0YWtpbmdEYXBwAg5vbk1vZGlmeVdlaWdodAkAzAgCBQ9idGNMcEFzc2V0SWRTdHIJAMwIAgUOYnRjUG9vbEFkZHJlc3MFA25pbAUDbmlsAwkAAAIFEW9uTW9kaWZ5V2VpZ2h0QnRjBRFvbk1vZGlmeVdlaWdodEJ0YwQRb25Nb2RpZnlXZWlnaHRFdGgJAPwHBAULc3Rha2luZ0RhcHACDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFD2V0aExwQXNzZXRJZFN0cgkAzAgCBQ5ldGhQb29sQWRkcmVzcwUDbmlsBQNuaWwDCQAAAgURb25Nb2RpZnlXZWlnaHRFdGgFEW9uTW9kaWZ5V2VpZ2h0RXRoBBRvbk1vZGlmeVdlaWdodEV0aEJ0YwkA/AcEBQtzdGFraW5nRGFwcAIOb25Nb2RpZnlXZWlnaHQJAMwIAgUSZXRoQnRjTHBBc3NldElkU3RyCQDMCAIFEWV0aEJ0Y1Bvb2xBZGRyZXNzBQNuaWwFA25pbAMJAAACBRRvbk1vZGlmeVdlaWdodEV0aEJ0YwUUb25Nb2RpZnlXZWlnaHRFdGhCdGMEFm9uTW9kaWZ5V2VpZ2h0VXNkY1VzZHQJAPwHBAULc3Rha2luZ0RhcHACDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFFHVzZGNVc2R0THBBc3NldElkU3RyCQDMCAIFE3VzZGNVc2R0UG9vbEFkZHJlc3MFA25pbAUDbmlsAwkAAAIFFm9uTW9kaWZ5V2VpZ2h0VXNkY1VzZHQFFm9uTW9kaWZ5V2VpZ2h0VXNkY1VzZHQJAMwIAgkBDEludGVnZXJFbnRyeQIFDGJ0Y1dlaWdodEtFWQUMYnRjV2VpZ2h0TmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxldGhXZWlnaHRLRVkFDGV0aFdlaWdodE5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgUPZXRoQnRjV2VpZ2h0S0VZBQ9ldGhCdGNXZWlnaHROZXcJAMwIAgkBDEludGVnZXJFbnRyeQIFEXVzZGNVc2R0V2VpZ2h0S0VZBRF1c2RjVXNkdFdlaWdodE5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleVBvb2xUb1dlaWdodEhpc3RvcnkCBQ5idGNQb29sQWRkcmVzcwAABQlidGNXZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlQb29sVG9XZWlnaHRIaXN0b3J5AgUOZXRoUG9vbEFkZHJlc3MAAAUJZXRoV2VpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5UG9vbFRvV2VpZ2h0SGlzdG9yeQIFEWV0aEJ0Y1Bvb2xBZGRyZXNzAAAFD2V0aEJ0Y1dlaWdodE5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleVBvb2xUb1dlaWdodEhpc3RvcnkCBRN1c2RjVXNkdFBvb2xBZGRyZXNzAAAFEXVzZGNVc2R0V2VpZ2h0TmV3BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEYY2hlY2tXeEVtaXNzaW9uUG9vbExhYmVsAg1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAQJaGF2ZUxhYmVsBAckbWF0Y2gwCQCgCAEJAQ1rZXlXeEVtaXNzaW9uAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDAFAWIHCQCUCgIFA25pbAUJaGF2ZUxhYmVsAWkBFnNldFd4RW1pc3Npb25Qb29sTGFiZWwCDWFtb3VudEFzc2V0SWQMcHJpY2VBc3NldElkBAtjaGVja0NhbGxlcgkBCW11c3RBZG1pbgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQCUCgIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQ1rZXlXeEVtaXNzaW9uAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkBgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBGWRlbGV0ZVd4RW1pc3Npb25Qb29sTGFiZWwCDWFtb3VudEFzc2V0SWQMcHJpY2VBc3NldElkBAtjaGVja0NhbGxlcgMJAQhtdXN0VGhpcwEFAWkGCQEJbXVzdEFkbWluAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQENa2V5V3hFbWlzc2lvbgIFDWFtb3VudEFzc2V0SWQFDHByaWNlQXNzZXRJZAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEm9uVmVyaWZpY2F0aW9uTG9zcwEHYXNzZXRJZAQLY2hlY2tDYWxsZXIDCQAAAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARZrZXlBc3NldHNTdG9yZUNvbnRyYWN0AAIABgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEC3ByaWNlQXNzZXRzCQEOZ2V0UHJpY2VBc3NldHMABBRjaGVja1ByaWNlQXNzZXRzU2l6ZQMJAGYCCQCQAwEFC3ByaWNlQXNzZXRzAAAGCQACAQIUaW52YWxpZCBwcmljZSBhc3NldHMDCQAAAgUUY2hlY2tQcmljZUFzc2V0c1NpemUFFGNoZWNrUHJpY2VBc3NldHNTaXplCgECY2ICA2FjYwpwcmljZUFzc2V0BAFyCQD8BwQFBHRoaXMCGWRlbGV0ZVd4RW1pc3Npb25Qb29sTGFiZWwJAMwIAgUHYXNzZXRJZAkAzAgCBQpwcmljZUFzc2V0BQNuaWwFA25pbAMJAAACBQFyBQFyBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAdhY3Rpb25zCgACJGwFC3ByaWNlQXNzZXRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUEdW5pdAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQECY2ICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDIJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAwkAAAIFB2FjdGlvbnMFB2FjdGlvbnMJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkBC3Bvb2xBZGRyZXNzBApwb29sQ29uZmlnCQENZ2V0UG9vbENvbmZpZwEFC3Bvb2xBZGRyZXNzBA5hc3NldHNJbnRlcm5hbAkAlAoCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUKcG9vbENvbmZpZwUOaWR4SUFtdEFzc2V0SWQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpwb29sQ29uZmlnBRBpZHhJUHJpY2VBc3NldElkBB5wb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBIWtleVBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZAEFDmFzc2V0c0ludGVybmFsBwQiYWxsUG9vbHNPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZAkBC3ZhbHVlT3JFbHNlAgkAoAgBCQEla2V5QWxsUG9vbHNPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZAAHCQCUCgIFA25pbAMFImFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQGBR5wb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQBaQEQZ2V0SW5GZWVSRUFET05MWQELcG9vbEFkZHJlc3MEA2ZlZQkBFmludE9yRGVmYXVsdE9yRmFsbGJhY2sDCQEIa2V5SW5GZWUBBQtwb29sQWRkcmVzcwkBD2tleUluRmVlRGVmYXVsdAAAAAkAlAoCBQNuaWwFA2ZlZQFpARFnZXRPdXRGZWVSRUFET05MWQELcG9vbEFkZHJlc3MEA2ZlZQkBFmludE9yRGVmYXVsdE9yRmFsbGJhY2sDCQEJa2V5T3V0RmVlAQULcG9vbEFkZHJlc3MJARBrZXlPdXRGZWVEZWZhdWx0AAkAawMACgUFTVVMVDgAkE4JAJQKAgUDbmlsBQNmZWUBaQEQcG9vbEluZm9SRUFET05MWQIQYW1vdW50QXNzZXRJZFN0cg9wcmljZUFzc2V0SWRTdHIEG2Ftb3VudEFzc2V0SW50ZXJuYWxJZE9wdGlvbgkAmggCBQR0aGlzCQEfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZAEFEGFtb3VudEFzc2V0SWRTdHIEGnByaWNlQXNzZXRJbnRlcm5hbElkT3B0aW9uCQCaCAIFBHRoaXMJAR9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkAQUPcHJpY2VBc3NldElkU3RyBBlwb29sQ29udHJhY3RBZGRyZXNzT3B0aW9uCQCdCAIFBHRoaXMJASlrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcwIJAQV2YWx1ZQEFG2Ftb3VudEFzc2V0SW50ZXJuYWxJZE9wdGlvbgkBBXZhbHVlAQUacHJpY2VBc3NldEludGVybmFsSWRPcHRpb24ED2xwQXNzZXRJZE9wdGlvbgkAnQgCBQR0aGlzCQEfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldAEJAQV2YWx1ZQEFGXBvb2xDb250cmFjdEFkZHJlc3NPcHRpb24ECnBvb2xFeGlzdHMDAwkBCWlzRGVmaW5lZAEFG2Ftb3VudEFzc2V0SW50ZXJuYWxJZE9wdGlvbgkBCWlzRGVmaW5lZAEFGnByaWNlQXNzZXRJbnRlcm5hbElkT3B0aW9uBwkBCWlzRGVmaW5lZAEFGXBvb2xDb250cmFjdEFkZHJlc3NPcHRpb24HBAhwb29sSW5mbwMFCnBvb2xFeGlzdHMJAJQKAgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQUZcG9vbENvbnRyYWN0QWRkcmVzc09wdGlvbgkBDHBhcnNlQXNzZXRJZAEJAQV2YWx1ZQEFD2xwQXNzZXRJZE9wdGlvbgUEdW5pdAkAlAoCBQNuaWwFCHBvb2xJbmZvAWkBFWdldFBvb2xTdGF0dXNSRUFET05MWQELcG9vbEFkZHJlc3MECnBvb2xBc3NldHMJALUJAgkBD2dldFN0cmluZ09yRmFpbAEJASlrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cwEFC3Bvb2xBZGRyZXNzBQNTRVAEE2Ftb3VudEFzc2V0SW50ZXJuYWwJAJEDAgUKcG9vbEFzc2V0cwABBBJwcmljZUFzc2V0SW50ZXJuYWwJAJEDAgUKcG9vbEFzc2V0cwACBANjZmcJALUJAgkBD2dldFN0cmluZ09yRmFpbAEJAQ1rZXlQb29sQ29uZmlnAgUTYW1vdW50QXNzZXRJbnRlcm5hbAUScHJpY2VBc3NldEludGVybmFsBQNTRVAJAJQKAgUDbmlsCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUDY2ZnBQ1pZHhQb29sU3RhdHVzAWkBFWdldFBvb2xDb25maWdSRUFET05MWQELcG9vbEFkZHJlc3MECnBvb2xBc3NldHMJALUJAgkBD2dldFN0cmluZ09yRmFpbAEJASlrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cwEFC3Bvb2xBZGRyZXNzBQNTRVAEE2Ftb3VudEFzc2V0SW50ZXJuYWwJAJEDAgUKcG9vbEFzc2V0cwABBBJwcmljZUFzc2V0SW50ZXJuYWwJAJEDAgUKcG9vbEFzc2V0cwACBANjZmcJALUJAgkBD2dldFN0cmluZ09yRmFpbAEJAQ1rZXlQb29sQ29uZmlnAgUTYW1vdW50QXNzZXRJbnRlcm5hbAUScHJpY2VBc3NldEludGVybmFsBQNTRVAJAJQKAgUDbmlsBQNjZmcBaQEScG9vbEV4aXN0c1JFQURPTkxZAg1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAkAlAoCBQNuaWwJARJwb29sRXhpc3RzSW50ZXJuYWwCBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQBAnR4AQZ2ZXJpZnkABA90YXJnZXRQdWJsaWNLZXkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAgFAnR4D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQ90YXJnZXRQdWJsaWNLZXmQd2Z1", "height": 2489814, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 84tffK1ScsGyWoQs57UXrV1fhMgiuDmjMFi2pqcHuCH4 Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = 8
5+
6+let b = 100000000
7+
8+let c = 18
9+
10+let d = toBigInt(1000000000000000000)
11+
12+let e = b
13+
14+let f = "GWXvirtualPOOL"
15+
16+let g = "POOLS_LP"
17+
18+let h = 2000000
19+
20+let i = "WAVES"
21+
22+let j = ((100 * 1000) * 1000)
23+
24+let k = "__"
25+
26+let l = ""
27+
28+let m = 1
29+
30+let n = 2
31+
32+let o = 3
33+
34+let p = 4
35+
36+let q = 1
37+
38+let r = 2
39+
40+let s = 3
41+
42+let t = 1
43+
44+let u = 2
45+
46+let v = 3
47+
48+let w = 4
49+
50+let x = 5
51+
52+let y = 6
53+
54+let z = 7
55+
56+let A = 8
57+
58+let B = 9
59+
60+let C = 10
61+
62+let D = 11
63+
64+let E = "WX_EMISSION"
65+
66+let F = [E]
67+
68+func G () = "%s__allowedLpScriptHash"
69+
70+
71+func H () = "%s__allowedLpStableScriptHash"
72+
73+
74+func I () = "%s__allowedLpStableAddonScriptHash"
75+
76+
77+func J () = "%s__swapContract"
78+
79+
80+func K () = "%s__factoryConfig"
81+
82+
83+func L () = "%s__lpTokensList"
84+
85+
86+func M () = "%s%s__pool__scriptHash"
87+
88+
89+func N () = "%s%s__matcher__publicKey"
90+
91+
92+func O () = "%s__legacyFactoryContract"
93+
94+
95+func P () = "%s__legacyPools"
96+
97+
98+func Q () = "%s__managerPublicKey"
99+
100+
101+func R () = "%s__pendingManagerPublicKey"
102+
103+
104+func S () = "%s__adminPubKeys"
105+
106+
107+func T () = "%s__assetsStoreContract"
108+
109+
110+func U () = "%s__votingEmissionContract"
111+
112+
113+func V () = makeString(["%s", "priceAssets"], k)
114+
115+
116+func W () = "%s__priceDecimals"
117+
118+
119+func X () = "%s__shutdown"
120+
121+
122+func Y () = "%s__nextInternalAssetId"
123+
124+
125+func Z (aa) = ("%s%s__poolWeight__" + aa)
126+
127+
128+func ab (aa,ac) = ((("%s%s__poolWeight__" + aa) + "__") + toString(ac))
129+
130+
131+func ad (ae) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ae))
132+
133+
134+func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag)
135+
136+
137+func ah (ai,aj) = (((("%d%d%s__" + ai) + "__") + aj) + "__config")
138+
139+
140+func ak (al) = {
141+ let am = al
142+ let ai = am._1
143+ let aj = am._2
144+ makeString(["%d%d%s", toString(ai), toString(aj), "oneTokenOperationsDisabled"], k)
145+ }
146+
147+
148+func an () = makeString(["%s", "oneTokenOperationsDisabled"], k)
149+
150+
151+func ao (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2Pool")
152+
153+
154+func aq (ar,as) = (((("%d%d%s%s__" + ar) + "__") + as) + "__mappings__PoolAssets2LpAsset")
155+
156+
157+func at (aa) = ("%s%s__spread__" + aa)
158+
159+
160+func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2PoolAssets")
161+
162+
163+func aw (ar,as) = (((("%d%d%s%s__" + toString(ar)) + "__") + toString(as)) + "__mappings__poolAssets2PoolContract")
164+
165+
166+func ax (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset")
167+
168+
169+func ay (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2PoolContract")
170+
171+
172+func az (aA,aB) = ((("%s%s%s__wxEmission__" + aA) + "__") + aB)
173+
174+
175+func aC (aa) = ("%s%s__inFee__" + aa)
176+
177+
178+func aD () = "%s__inFeeDefault"
179+
180+
181+func aE (aa) = ("%s%s__outFee__" + aa)
182+
183+
184+func aF () = "%s__outFeeDefault"
185+
186+
187+func aG (aH) = valueOrErrorMessage(getString(this, aH), ("No data for this.key=" + aH))
188+
189+
190+func aI (aH) = valueOrErrorMessage(getBoolean(this, aH), ("No data for this.key=" + aH))
191+
192+
193+func aJ (aH) = valueOrErrorMessage(getInteger(this, aH), ("No data for this.key=" + aH))
194+
195+
196+func aK (aL) = if ((aL == i))
197+ then unit
198+ else fromBase58String(aL)
199+
200+
201+let aM = 1
202+
203+let aN = 2
204+
205+let aO = 3
206+
207+let aP = 4
208+
209+let aQ = 5
210+
211+let aR = 6
212+
213+let aS = 7
214+
215+let aT = 8
216+
217+let aU = 9
218+
219+let aV = 10
220+
221+let aW = 11
222+
223+func aX (aY) = addressFromStringValue(aY[aN])
224+
225+
226+func aZ (aY) = addressFromStringValue(aY[aQ])
227+
228+
229+func ba (aY) = addressFromStringValue(aY[aM])
230+
231+
232+func bb (aY) = addressFromStringValue(aY[aV])
233+
234+
235+func bc () = {
236+ let bd = getString(V())
237+ if ($isInstanceOf(bd, "String"))
238+ then {
239+ let be = bd
240+ if ((size(be) == 0))
241+ then nil
242+ else split(be, k)
243+ }
244+ else nil
245+ }
246+
247+
248+func bf () = {
249+ let bd = getString(Q())
250+ if ($isInstanceOf(bd, "String"))
251+ then {
252+ let be = bd
253+ fromBase58String(be)
254+ }
255+ else if ($isInstanceOf(bd, "Unit"))
256+ then unit
257+ else throw("Match error")
258+ }
259+
260+
261+func bg () = {
262+ let bd = getString(R())
263+ if ($isInstanceOf(bd, "String"))
264+ then {
265+ let be = bd
266+ fromBase58String(be)
267+ }
268+ else if ($isInstanceOf(bd, "Unit"))
269+ then unit
270+ else throw("Match error")
271+ }
272+
273+
274+let bh = throw("Permission denied")
275+
276+let bi = throw("Test error here")
277+
278+func bj (bk) = if ((bk.caller == this))
279+ then true
280+ else bh
281+
282+
283+func bl (bk) = {
284+ let bd = bf()
285+ if ($isInstanceOf(bd, "ByteVector"))
286+ then {
287+ let bm = bd
288+ if ((bk.callerPublicKey == bm))
289+ then true
290+ else bh
291+ }
292+ else if ($isInstanceOf(bd, "Unit"))
293+ then bj(bk)
294+ else throw("Match error")
295+ }
296+
297+
298+func bn (bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by], k)
299+
300+
301+func bz (bo,bp,bq,br,bs,bt,bu) = makeString(["%s%s%s%s%s%s", bo, bp, bq, br, bs, bt, bu], k)
302+
303+
304+func bA (aa,bB,bC,bD,bE,bF,bG,bH,bI,bJ,bK) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", aa, bB, bC, bD, bE, toString(bF), toString(bG), toString(bH), toString(bI), toString(bJ), bK], k)
305+
306+
307+func bL (bM,bN) = makeString(["%d%d", toString(bM), toString(bN)], k)
308+
309+
310+func bO (aa) = {
311+ let bP = split(aG(au(aa)), k)
312+ let ai = bP[1]
313+ let aj = bP[2]
314+ split(aG(ah(ai, aj)), k)
315+ }
316+
317+
318+func bQ (bR,bS) = {
319+ let bT = valueOrElse(getInteger(this, af(bR)), 0)
320+ let bU = valueOrElse(getInteger(this, Y()), 0)
321+ let bV = if ((bT == 0))
322+ then {
323+ let bW = (bU + bS)
324+ $Tuple3(bW, [IntegerEntry(Y(), bW), IntegerEntry(af(bR), bW), StringEntry(ad(bW), bR)], true)
325+ }
326+ else $Tuple3(bT, nil, false)
327+ bV
328+ }
329+
330+
331+func bX (bk) = {
332+ let bY = split(valueOrElse(getString(S()), l), k)
333+ if (containsElement(bY, toBase58String(bk.callerPublicKey)))
334+ then true
335+ else {
336+ let bZ = bl(bk)
337+ if ((bZ == bZ))
338+ then true
339+ else throw("Strict value is not equal to itself.")
340+ }
341+ }
342+
343+
344+func ca (aH,cb,cc) = valueOrElse(getInteger(this, aH), valueOrElse(getInteger(this, cb), cc))
345+
346+
347+func cd (aA,aB) = {
348+ let ai = getInteger(af(aA))
349+ let aj = getInteger(af(aB))
350+ if (if ((ai == unit))
351+ then true
352+ else (aj == unit))
353+ then false
354+ else {
355+ let ce = toString(value(ai))
356+ let cf = toString(value(aj))
357+ let cg = getString(ah(ce, cf))
358+ let ch = getString(ah(cf, ce))
359+ let ci = if ((cg != unit))
360+ then true
361+ else (ch != unit)
362+ ci
363+ }
364+ }
365+
366+
367+@Callable(bk)
368+func getSwapContractREADONLY () = $Tuple2(nil, aG(J()))
369+
370+
371+
372+@Callable(bk)
373+func getLpAssetFromPoolAssetsREADONLY (cj,ck) = if (if ((cj == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
374+ then (ck == "WAVES")
375+ else false)
376+ then $Tuple2(nil, unit)
377+ else {
378+ let cl = value(getInteger(this, af(cj)))
379+ let cm = value(getInteger(this, af(ck)))
380+ let cn = getString(this, aq(toString(cl), toString(cm)))
381+ let co = if ((cn == unit))
382+ then unit
383+ else drop(value(cn), 4)
384+ $Tuple2(nil, co)
385+ }
386+
387+
388+
389+@Callable(bk)
390+func getPoolAddressFromLpAssetREADONLY (cp) = $Tuple2(nil, valueOrElse(getString(this, ay(cp)), ""))
391+
392+
393+
394+@Callable(bk)
395+func constructor (cq,cr,bq,br,bs,bt,cs,ct) = {
396+ let cu = bl(bk)
397+ if ((cu == cu))
398+ then [StringEntry(K(), bz(cq, cr, bq, br, bs, bt, cs)), IntegerEntry(W(), ct)]
399+ else throw("Strict value is not equal to itself.")
400+ }
401+
402+
403+
404+@Callable(bk)
405+func constructorV2 (cv) = {
406+ let cu = bl(bk)
407+ if ((cu == cu))
408+ then {
409+ let cw = addressFromPublicKey(fromBase58String(cv))
410+ if ((cw == cw))
411+ then [StringEntry(N(), cv)]
412+ else throw("Strict value is not equal to itself.")
413+ }
414+ else throw("Strict value is not equal to itself.")
415+ }
416+
417+
418+
419+@Callable(bk)
420+func constructorV3 (bv,bw,bx,by) = {
421+ let cu = bl(bk)
422+ if ((cu == cu))
423+ then {
424+ let aY = split(aG(K()), k)
425+[StringEntry(K(), bn(aY[1], aY[2], aY[3], aY[4], aY[5], aY[6], aY[7], bv, bw, bx, by))]
426+ }
427+ else throw("Strict value is not equal to itself.")
428+ }
429+
430+
431+
432+@Callable(bk)
433+func constructorV4 (cx,cy) = {
434+ let cu = bl(bk)
435+ if ((cu == cu))
436+ then [StringEntry(O(), cx), StringEntry(P(), makeString(cy, k))]
437+ else throw("Strict value is not equal to itself.")
438+ }
439+
440+
441+
442+@Callable(bk)
443+func constructorV5 (cz) = {
444+ let cu = bl(bk)
445+ if ((cu == cu))
446+ then [StringEntry(T(), cz)]
447+ else throw("Strict value is not equal to itself.")
448+ }
449+
450+
451+
452+@Callable(bk)
453+func constructorV6 (cA,cB) = {
454+ let cC = [bl(bk), if ((addressFromString(cA) != unit))
455+ then true
456+ else "invalid voting emission contract address"]
457+ if ((cC == cC))
458+ then [StringEntry(U(), cA), StringEntry(V(), makeString(cB, k))]
459+ else throw("Strict value is not equal to itself.")
460+ }
461+
462+
463+
464+@Callable(bk)
465+func setManager (cD) = {
466+ let cu = bl(bk)
467+ if ((cu == cu))
468+ then {
469+ let cE = fromBase58String(cD)
470+ if ((cE == cE))
471+ then [StringEntry(R(), cD)]
472+ else throw("Strict value is not equal to itself.")
473+ }
474+ else throw("Strict value is not equal to itself.")
475+ }
476+
477+
478+
479+@Callable(bk)
480+func confirmManager () = {
481+ let cF = bg()
482+ let cG = if (isDefined(cF))
483+ then true
484+ else throw("No pending manager")
485+ if ((cG == cG))
486+ then {
487+ let cH = if ((bk.callerPublicKey == value(cF)))
488+ then true
489+ else throw("You are not pending manager")
490+ if ((cH == cH))
491+ then [StringEntry(Q(), toBase58String(value(cF))), DeleteEntry(R())]
492+ else throw("Strict value is not equal to itself.")
493+ }
494+ else throw("Strict value is not equal to itself.")
495+ }
496+
497+
498+
499+@Callable(bk)
500+func setAdmins (cI) = {
501+ let cu = bl(bk)
502+ if ((cu == cu))
503+ then [StringEntry(S(), makeString(cI, k))]
504+ else throw("Strict value is not equal to itself.")
505+ }
506+
507+
508+
509+@Callable(bk)
510+func activateNewPool (aa,bD,bE,cJ,cK,cL,bK,cM) = {
511+ let cu = bX(bk)
512+ if ((cu == cu))
513+ then if (isDefined(getString(au(aa))))
514+ then throw((("Pool address " + aa) + " already registered."))
515+ else {
516+ let cN = bQ(bD, 1)
517+ let cO = cN._1
518+ let cP = bQ(bE, if (cN._3)
519+ then 2
520+ else 1)
521+ let cQ = cP._1
522+ let cR = valueOrErrorMessage(scriptHash(addressFromStringValue(aa)), ("No script has been found on pool account " + aa))
523+ let cS = getBinaryValue(M())
524+ let cT = cd(bD, bE)
525+ if (cT)
526+ then throw((((("Pool " + bD) + "/") + bE) + " has already been activated."))
527+ else {
528+ let cU = value(getString(this, ah(toString(cO), toString(cQ))))
529+ let cV = if ((bD == "WAVES"))
530+ then j
531+ else pow(10, 0, value(assetInfo(fromBase58String(bD))).decimals, 0, 0, DOWN)
532+ let cW = if ((bE == "WAVES"))
533+ then j
534+ else pow(10, 0, value(assetInfo(fromBase58String(bE))).decimals, 0, 0, DOWN)
535+ let cX = Issue(cJ, cK, 1, 8, true)
536+ let bC = calculateAssetId(cX)
537+ let cY = toBase58String(bC)
538+ let cZ = invoke(addressFromStringValue(aa), "activate", [bD, bE], nil)
539+ if ((cZ == cZ))
540+ then if ((cZ != "success"))
541+ then throw("Pool initialisation error happened.")
542+ else {
543+ let cz = addressFromStringValue(aG(T()))
544+ let da = invoke(cz, "createOrUpdate", [cY, cJ, false], nil)
545+ if ((da == da))
546+ then {
547+ let db = invoke(cz, "addLabel", [cY, g], nil)
548+ if ((db == db))
549+ then {
550+ let dc = invoke(cz, "setLogo", [cY, cM], nil)
551+ if ((dc == dc))
552+ then {
553+ let dd = invoke(cz, "addAssetsLink", [bD, bE, cY], nil)
554+ if ((dd == dd))
555+ then {
556+ let de = invoke(cz, "increaseAssetPoolsNumber", [bD], nil)
557+ if ((de == de))
558+ then $Tuple2(((cN._2 ++ cP._2) ++ [cX, Burn(bC, 1), StringEntry(ah(toString(cO), toString(cQ)), bA(aa, toString(m), cY, bD, bE, cV, cW, cO, cQ, j, bK)), StringEntry(ao(cY), bL(cO, cQ)), StringEntry(aq(toString(cO), toString(cQ)), ("%s__" + cY)), StringEntry(au(aa), bL(cO, cQ)), StringEntry(aw(cO, cQ), aa), StringEntry(ay(cY), aa), StringEntry(ax(aa), cY), IntegerEntry(Z(aa), cL), IntegerEntry(at(aa), h)]), cY)
559+ else throw("Strict value is not equal to itself.")
560+ }
561+ else throw("Strict value is not equal to itself.")
562+ }
563+ else throw("Strict value is not equal to itself.")
564+ }
565+ else throw("Strict value is not equal to itself.")
566+ }
567+ else throw("Strict value is not equal to itself.")
568+ }
569+ else throw("Strict value is not equal to itself.")
570+ }
571+ }
572+ else throw("Strict value is not equal to itself.")
573+ }
574+
575+
576+
577+@Callable(bk)
578+func managePool (aa,df) = {
579+ let cu = bl(bk)
580+ if ((cu == cu))
581+ then {
582+ let dg = bO(aa)
583+ let bB = dg[u]
584+ let cY = dg[v]
585+ let bD = dg[w]
586+ let bE = dg[x]
587+ let cV = parseIntValue(dg[y])
588+ let cW = parseIntValue(dg[z])
589+ let cO = parseIntValue(dg[A])
590+ let cQ = parseIntValue(dg[B])
591+ let dh = parseIntValue(dg[C])
592+ let bK = dg[D]
593+[StringEntry(ah(toString(cO), toString(cQ)), bA(aa, toString(df), cY, bD, bE, cV, cW, cO, cQ, dh, bK))]
594+ }
595+ else throw("Strict value is not equal to itself.")
596+ }
597+
598+
599+
600+@Callable(bk)
601+func emit (di) = {
602+ let dj = bk.caller
603+ let dk = bk.originCaller
604+ let dl = valueOrErrorMessage(getString(ax(toString(dj))), "Invalid LP address called me.")
605+ let dm = fromBase58String(dl)
606+ let cy = split(valueOrElse(getString(P()), l), k)
607+ let cx = addressFromStringValue(valueOrErrorMessage(getString(O()), "Legacy factory contract does not exists."))
608+ if ((0 >= di))
609+ then nil
610+ else if (containsElement(cy, toString(dj)))
611+ then $Tuple2(nil, cx)
612+ else $Tuple2([Reissue(dm, di, true), ScriptTransfer(bk.caller, di, dm)], "success")
613+ }
614+
615+
616+
617+@Callable(bk)
618+func burn (dn) = {
619+ let dj = bk.caller
620+ let dk = bk.originCaller
621+ let do = value(bk.payments[0])
622+ let dp = value(do.amount)
623+ let dq = toBase58String(value(do.assetId))
624+ let dr = valueOrErrorMessage(getString(ax(toString(dj))), "Invalid LP address called me.")
625+ if ((dq != dr))
626+ then throw("Invalid asset passed.")
627+ else if ((dn != dp))
628+ then throw("Invalid amount passed.")
629+ else {
630+ let dm = fromBase58String(dr)
631+ $Tuple2([Burn(dm, dn)], "success")
632+ }
633+ }
634+
635+
636+
637+@Callable(bk)
638+func modifyWeight (bC,ds) = {
639+ let cu = if ((toBase58String(bk.caller.bytes) == valueOrElse(getString(this, U()), "")))
640+ then true
641+ else bl(bk)
642+ if ((cu == cu))
643+ then {
644+ let av = aG(ay(bC))
645+ let dt = Z(av)
646+ let du = Z(f)
647+ let dv = valueOrElse(getInteger(du), 0)
648+ let cL = valueOrElse(getInteger(dt), 0)
649+ let dw = ds
650+ let aY = split(aG(K()), k)
651+ let cq = ba(aY)
652+ let dx = invoke(cq, "onModifyWeight", [bC, av], nil)
653+ if ((dx == dx))
654+ then {
655+ let dy = if ((dv == 0))
656+ then nil
657+ else [IntegerEntry(du, 0)]
658+ let dz = ab(av, 0)
659+ let dA = getInteger(dz)
660+ let dB = if ((dA == unit))
661+ then nil
662+ else [DeleteEntry(dz)]
663+ (([IntegerEntry(dt, dw)] ++ dy) ++ dB)
664+ }
665+ else throw("Strict value is not equal to itself.")
666+ }
667+ else throw("Strict value is not equal to itself.")
668+ }
669+
670+
671+
672+@Callable(bk)
673+func modifyWeights (dC,dD,dE,dF) = {
674+ let cu = bl(bk)
675+ if ((cu == cu))
676+ then {
677+ let dG = ((5 * e) / 100)
678+ let dH = ((5 * e) / 100)
679+ let dI = ((5 * e) / 100)
680+ let aY = split(aG(K()), k)
681+ let dJ = ba(aY)
682+ let dK = bb(aY)
683+ let dL = Z(dC)
684+ let dM = Z(dD)
685+ let dN = Z(dE)
686+ let dO = Z(dF)
687+ let dP = aJ(dL)
688+ let dQ = aJ(dM)
689+ let dR = (dP - dI)
690+ let dS = (dQ - dI)
691+ if ((0 >= dR))
692+ then throw(("invalid btcWeightNew: " + toString(dR)))
693+ else if ((0 >= dS))
694+ then throw(("invalid ethWeightNew: " + toString(dS)))
695+ else {
696+ let dT = aG(ax(dC))
697+ let dU = aG(ax(dD))
698+ let dV = aG(ax(dE))
699+ let dW = aG(ax(dF))
700+ let dX = invoke(dJ, "onModifyWeight", [dT, dC], nil)
701+ if ((dX == dX))
702+ then {
703+ let dY = invoke(dJ, "onModifyWeight", [dU, dD], nil)
704+ if ((dY == dY))
705+ then {
706+ let dZ = invoke(dJ, "onModifyWeight", [dV, dE], nil)
707+ if ((dZ == dZ))
708+ then {
709+ let ea = invoke(dJ, "onModifyWeight", [dW, dF], nil)
710+ if ((ea == ea))
711+ then [IntegerEntry(dL, dR), IntegerEntry(dM, dS), IntegerEntry(dN, dG), IntegerEntry(dO, dH), IntegerEntry(ab(dC, 0), dP), IntegerEntry(ab(dD, 0), dQ), IntegerEntry(ab(dE, 0), dG), IntegerEntry(ab(dF, 0), dH)]
712+ else throw("Strict value is not equal to itself.")
713+ }
714+ else throw("Strict value is not equal to itself.")
715+ }
716+ else throw("Strict value is not equal to itself.")
717+ }
718+ else throw("Strict value is not equal to itself.")
719+ }
720+ }
721+ else throw("Strict value is not equal to itself.")
722+ }
723+
724+
725+
726+@Callable(bk)
727+func checkWxEmissionPoolLabel (aA,aB) = {
728+ let eb = {
729+ let bd = getBoolean(az(aA, aB))
730+ if ($isInstanceOf(bd, "Boolean"))
731+ then {
732+ let ec = bd
733+ ec
734+ }
735+ else false
736+ }
737+ $Tuple2(nil, eb)
738+ }
739+
740+
741+
742+@Callable(bk)
743+func setWxEmissionPoolLabel (aA,aB) = {
744+ let cu = bX(bk)
745+ if ((cu == cu))
746+ then $Tuple2([BooleanEntry(az(aA, aB), true)], unit)
747+ else throw("Strict value is not equal to itself.")
748+ }
749+
750+
751+
752+@Callable(bk)
753+func deleteWxEmissionPoolLabel (aA,aB) = {
754+ let cu = if (bj(bk))
755+ then true
756+ else bX(bk)
757+ if ((cu == cu))
758+ then $Tuple2([DeleteEntry(az(aA, aB))], unit)
759+ else throw("Strict value is not equal to itself.")
760+ }
761+
762+
763+
764+@Callable(bk)
765+func onVerificationLoss (ed) = {
766+ let cu = if ((toBase58String(bk.caller.bytes) == valueOrElse(getString(this, T()), "")))
767+ then true
768+ else bl(bk)
769+ if ((cu == cu))
770+ then {
771+ let cB = bc()
772+ let ee = if ((size(cB) > 0))
773+ then true
774+ else throw("invalid price assets")
775+ if ((ee == ee))
776+ then {
777+ func ef (eg,eh) = {
778+ let ei = invoke(this, "deleteWxEmissionPoolLabel", [ed, eh], nil)
779+ if ((ei == ei))
780+ then unit
781+ else throw("Strict value is not equal to itself.")
782+ }
783+
784+ let ej = {
785+ let ek = cB
786+ let el = size(ek)
787+ let em = unit
788+ func en (eo,ep) = if ((ep >= el))
789+ then eo
790+ else ef(eo, ek[ep])
791+
792+ func eq (eo,ep) = if ((ep >= el))
793+ then eo
794+ else throw("List size exceeds 2")
795+
796+ eq(en(en(em, 0), 1), 2)
797+ }
798+ if ((ej == ej))
799+ then $Tuple2(nil, unit)
800+ else throw("Strict value is not equal to itself.")
801+ }
802+ else throw("Strict value is not equal to itself.")
803+ }
804+ else throw("Strict value is not equal to itself.")
805+ }
806+
807+
808+
809+@Callable(bk)
810+func isPoolOneTokenOperationsDisabledREADONLY (aa) = {
811+ let dg = bO(aa)
812+ let al = $Tuple2(parseIntValue(dg[A]), parseIntValue(dg[B]))
813+ let er = valueOrElse(getBoolean(ak(al)), false)
814+ let es = valueOrElse(getBoolean(an()), false)
815+ $Tuple2(nil, if (es)
816+ then true
817+ else er)
818+ }
819+
820+
821+
822+@Callable(bk)
823+func getInFeeREADONLY (aa) = {
824+ let et = ca(aC(aa), aD(), 0)
825+ $Tuple2(nil, et)
826+ }
827+
828+
829+
830+@Callable(bk)
831+func getOutFeeREADONLY (aa) = {
832+ let et = ca(aE(aa), aF(), fraction(10, b, 10000))
833+ $Tuple2(nil, et)
834+ }
835+
836+
837+
838+@Callable(bk)
839+func poolInfoREADONLY (eu,ev) = {
840+ let ew = getInteger(this, af(eu))
841+ let ex = getInteger(this, af(ev))
842+ let ey = getString(this, aw(value(ew), value(ex)))
843+ let ez = getString(this, ax(value(ey)))
844+ let cT = if (if (isDefined(ew))
845+ then isDefined(ex)
846+ else false)
847+ then isDefined(ey)
848+ else false
849+ let eA = if (cT)
850+ then $Tuple2(addressFromStringValue(value(ey)), aK(value(ez)))
851+ else unit
852+ $Tuple2(nil, eA)
853+ }
854+
855+
856+
857+@Callable(bk)
858+func getPoolStatusREADONLY (aa) = {
859+ let bP = split(aG(au(aa)), k)
860+ let ai = bP[1]
861+ let aj = bP[2]
862+ let cg = split(aG(ah(ai, aj)), k)
863+ $Tuple2(nil, parseIntValue(cg[u]))
864+ }
865+
866+
867+
868+@Callable(bk)
869+func getPoolConfigREADONLY (aa) = {
870+ let bP = split(aG(au(aa)), k)
871+ let ai = bP[1]
872+ let aj = bP[2]
873+ let cg = split(aG(ah(ai, aj)), k)
874+ $Tuple2(nil, cg)
875+ }
876+
877+
878+
879+@Callable(bk)
880+func poolExistsREADONLY (aA,aB) = $Tuple2(nil, cd(aA, aB))
881+
882+
883+@Verifier(eB)
884+func eC () = {
885+ let eD = {
886+ let bd = bf()
887+ if ($isInstanceOf(bd, "ByteVector"))
888+ then {
889+ let bm = bd
890+ bm
891+ }
892+ else if ($isInstanceOf(bd, "Unit"))
893+ then eB.senderPublicKey
894+ else throw("Match error")
895+ }
896+ sigVerify(eB.bodyBytes, eB.proofs[0], eD)
897+ }
898+

github/deemru/w8io/026f985 
40.64 ms