tx · JE4VCLxAAGMMytb8XvE6qdxJqUwyExphP8WupXH7WsLD

3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT:  -0.04200000 Waves

2024.07.10 11:19 [3187677] smart account 3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT > SELF 0.00000000 Waves

{ "type": 13, "id": "JE4VCLxAAGMMytb8XvE6qdxJqUwyExphP8WupXH7WsLD", "fee": 4200000, "feeAssetId": null, "timestamp": 1720599584845, "version": 2, "chainId": 84, "sender": "3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT", "senderPublicKey": "D1BL65meykxFZTCuq7jq9HSGLLnWvQamQPUNrguW5w39", "proofs": [ "3WAV3ai9ndsw5McXWstY1H6zDH2NJspXC74xqyk5vYWsmgftZjvTGfrt6NLrMxFogTta5XDxH8JAy9jSr3b54aig" ], "script": "base64:BgLaLQgCEgUKAwEEARIHCgUBBAEIARIDCgEIEgQKAgEEEgQKAgEEEgMKAQESABIECgIIARIAEgQKAggBEgQKAggBEgQKAgEBEgMKAQESBQoDAQEBEgUKAwEIARIECgIBCBIECgIBCBIECgIICBIAEgMKAQgSBQoDAQEBEgQKAggBEgQKAgEBEgQKAggIEgsKCQgBAQIBAggEBBIGCgQICAEIEgAiBnNjYWxlOCIMc2NhbGU4QmlnSW50IgdzY2FsZTE4Igp6ZXJvQmlnSW50IgRiaWcwIgRiaWcxIgRiaWcyIgRiaWczIgRiaWc0IgpzbGlwcGFnZTREIgt3YXZlc1N0cmluZyIKYW1wSW5pdGlhbCIFQW11bHQiBURjb252IgNTRVAiBUVNUFRZIgpQb29sQWN0aXZlIgpQb29sUHV0RGlzIg5Qb29sTWF0Y2hlckRpcyIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyIJaWR4UG9vbFN0IglpZHhMUEFzSWQiCWlkeEFtQXNJZCIJaWR4UHJBc0lkIgtpZHhBbXRBc0RjbSINaWR4UHJpY2VBc0RjbSILaWR4SUFtdEFzSWQiDWlkeElQcmljZUFzSWQiD2lkeEZhY3RTdGFrQ250ciISaWR4RmFjdG9yeVJlc3RDbnRyIhBpZHhGYWN0U2xpcHBDbnRyIhFpZHhGYWN0R3d4UmV3Q250ciIKZmVlRGVmYXVsdCICdDEiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiCHQxQmlnSW50IgJmMSIDdmFsIg9yZXN1bHRTY2FsZU11bHQiDGZyb21YMThSb3VuZCIFcm91bmQiAnQyIgJmMiICdHMiA2FtdCIIcmVzU2NhbGUiCGN1clNjYWxlIgNhYnMiCWFic0JpZ0ludCICZmMiE2tleU1hbmFnZXJQdWJsaWNLZXkiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiAnBsIgJwaCIBaCIBdCIDcGF1IgJ1YSIEdHhJZCIDZ2F1IgJhYSICcGEiA2FtcCINa2V5QW1wSGlzdG9yeSIMaGVpZ2h0QmxvY2tzIhRrZXlDaGFuZ2VBbXBMYXN0Q2FsbCIGa2V5RmVlIgNmZWUiBmtleURMcCIVa2V5RExwUmVmcmVzaGVkSGVpZ2h0IhJrZXlETHBSZWZyZXNoRGVsYXkiFmRMcFJlZnJlc2hEZWxheURlZmF1bHQiD2RMcFJlZnJlc2hEZWxheSIEZmNmZyIEbXRwayICcGMiBmlBbXRBcyIFaVByQXMiA21iYSIFYkFTdHIiA2FwcyIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIWa2V5RmVlQ29sbGVjdG9yQWRkcmVzcyIWa2V5U2tpcE9yZGVyVmFsaWRhdGlvbiILcG9vbEFkZHJlc3MiD3Rocm93T3JkZXJFcnJvciIKb3JkZXJWYWxpZCIOb3JkZXJWYWxpZEluZm8iDG1hdGNoZXJWYWxpZCIXYWRkcmVzc0Zyb21TdHJpbmdPclRoaXMiDWFkZHJlc3NTdHJpbmciByRtYXRjaDAiAWEiHGdldE1hbmFnZXJWYXVsdEFkZHJlc3NPclRoaXMiDmZhY3RvcnlBZGRyZXNzIgNmY2EiAXMiBHN0cmYiBGFkZHIiA2tleSIEaW50ZiIIdGhyb3dFcnIiA21zZyIGZm10RXJyIgVpbkZlZSIBQCIGb3V0RmVlIhVrZXlBZGRyZXNzV2hpdGVsaXN0ZWQiB2FkZHJlc3MiFGlzQWRkcmVzc1doaXRlbGlzdGVkIgFBIgNpZ3MiAm1wIhNmZWVDb2xsZWN0b3JBZGRyZXNzIgNncGMiBWFtdEFzIgdwcmljZUFzIghpUHJpY2VBcyIMcGFyc2VBc3NldElkIgVpbnB1dCIPYXNzZXRJZFRvU3RyaW5nIg9wYXJzZVBvb2xDb25maWciCnBvb2xDb25maWciEHBvb2xDb25maWdQYXJzZWQiCyR0MDg3Njk4OTU1Ig5jZmdQb29sQWRkcmVzcyINY2ZnUG9vbFN0YXR1cyIMY2ZnTHBBc3NldElkIhBjZmdBbW91bnRBc3NldElkIg9jZmdQcmljZUFzc2V0SWQiFmNmZ0Ftb3VudEFzc2V0RGVjaW1hbHMiFWNmZ1ByaWNlQXNzZXREZWNpbWFscyIDZ2ZjIg1mYWN0b3J5Q29uZmlnIg9zdGFraW5nQ29udHJhY3QiD3NsaXBhZ2VDb250cmFjdCILZ3d4Q29udHJhY3QiDHJlc3RDb250cmFjdCIRZGF0YVB1dEFjdGlvbkluZm8iDWluQW10QXNzZXRBbXQiD2luUHJpY2VBc3NldEFtdCIIb3V0THBBbXQiBXByaWNlIgpzbGlwQnlVc2VyIgxzbGlwcGFnZVJlYWwiCHR4SGVpZ2h0Igt0eFRpbWVzdGFtcCIMc2xpcGFnZUFtQW10IgxzbGlwYWdlUHJBbXQiEWRhdGFHZXRBY3Rpb25JbmZvIg5vdXRBbXRBc3NldEFtdCIQb3V0UHJpY2VBc3NldEFtdCIHaW5McEFtdCINZ2V0QWNjQmFsYW5jZSIHYXNzZXRJZCIEY3BiaSIIcHJBbXRYMTgiCGFtQW10WDE4IgVjcGJpciIDdmFkIgJBMSICQTIiCHNsaXBwYWdlIgRkaWZmIgRwYXNzIgJ2ZCICRDEiAkQwIgRzbHBnIgRmYWlsIgNwY3AiCmFtQXNzZXREY20iCnByQXNzZXREY20iBWFtQW10IgVwckFtdCILYW10QXNBbXRYMTgiCnByQXNBbXRYMTgiCmNhbGNQcmljZXMiBWxwQW10IghhbXRBc0RjbSIHcHJBc0RjbSIIcHJpY2VYMTgiCGxwQW10WDE4Ig1scFBySW5BbUFzWDE4Ig1scFBySW5QckFzWDE4Ig9jYWxjdWxhdGVQcmljZXMiAXAiB3Rha2VGZWUiBmFtb3VudCIJZmVlQW1vdW50IgRnZXREIgJ4cCIDeHAwIgN4cDEiA2FubiILeHAwX3hwMV9uX24iBWFubl9zIgVhbm5fMSIJY2FsY0ROZXh0IgFkIgJkZCIDZGRkIgJkcCIEY2FsYyIDYWNjIgFpIgVkTmV4dCIIZERpZmZSYXciBWREaWZmIgNhcnIiDSR0MDEzNDYwMTM1MDgiAiRsIgIkcyIFJGFjYzAiBSRmMF8xIgIkYSICJGkiBSRmMF8yIgVmb3VuZCIDZWdvIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10Igt1c2VyQWRkcmVzcyIEbHBJZCIEYW1JZCIEcHJJZCIFYW1EY20iBXByRGNtIgNzdHMiB2xwRW1pc3MiCWFtQmFsYW5jZSIMYW1CYWxhbmNlWDE4IglwckJhbGFuY2UiDHByQmFsYW5jZVgxOCILY3VyUHJpY2VYMTgiCGN1clByaWNlIgtwbXRMcEFtdFgxOCIKbHBFbWlzc1gxOCILb3V0QW1BbXRYMTgiC291dFByQW10WDE4IghvdXRBbUFtdCIIb3V0UHJBbXQiBXN0YXRlIgNlcG8iB2luQW1BbXQiBmluQW1JZCIHaW5QckFtdCIGaW5QcklkIgZpc0V2YWwiBmVtaXRMcCIKaXNPbmVBc3NldCIQdmFsaWRhdGVTbGlwcGFnZSIGcG10QW10IgVwbXRJZCIHYW1JZFN0ciIHcHJJZFN0ciIGYW10RGNtIghwcmljZURjbSIEbHBFbSILY2hlY2tBc3NldHMiD2luQW1Bc3NldEFtdFgxOCIPaW5QckFzc2V0QW10WDE4Igx1c2VyUHJpY2VYMTgiAXIiBmNoZWNrRCILc2xpcHBhZ2VYMTgiD3NsaXBwYWdlUmVhbFgxOCINbHBFbWlzc2lvblgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiINJHQwMjE0MzEyMTc3NiIKd3JpdGVBbUFtdCIKd3JpdGVQckFtdCILY29tbW9uU3RhdGUiBWdldFlEIgFEIgFuIgF4IgphUHJlY2lzaW9uIgFjIgFiIgNjdXIiDSR0MDIyOTcxMjI5OTEiAXkiBXlOZXh0IgV5RGlmZiINJHQwMjMyOTgyMzM0NSIHY2FsY0RMcCINYW1vdW50QmFsYW5jZSIMcHJpY2VCYWxhbmNlIgpscEVtaXNzaW9uIgp1cGRhdGVkRExwIg5jYWxjQ3VycmVudERMcCIQYW1vdW50QXNzZXREZWx0YSIPcHJpY2VBc3NldERlbHRhIhRscEFzc2V0RW1pc3Npb25EZWx0YSISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIPbHBBc3NldEVtaXNzaW9uIgpjdXJyZW50RExwIhJyZWZyZXNoRExwSW50ZXJuYWwiF2Ftb3VudEFzc2V0QmFsYW5jZURlbHRhIhZwcmljZUFzc2V0QmFsYW5jZURlbHRhIgdhY3Rpb25zIhJ2YWxpZGF0ZVVwZGF0ZWRETHAiBm9sZERMcCIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDI1NTQzMjU3NTUiA2RMcCINJHQwMjYwOTcyNjE5NyINdW51c2VkQWN0aW9ucyIGZExwTmV3Igxpc09yZGVyVmFsaWQiBGluZm8iAmNnIgNwbXQiDWlzR2V0RGlzYWJsZWQiAmNwIgZjYWxsZXIiB2FtQXNQbXQiB3ByQXNQbXQiDWlzUHV0RGlzYWJsZWQiDWNhbGNQdXRPbmVUa24iCXBtdEFtdFJhdyILd2l0aFRha2VGZWUiDWNoZWNoRW1pc3Npb24iDSR0MDI5MDU2Mjk1MTgiDGFtQmFsYW5jZU9sZCIMcHJCYWxhbmNlT2xkIg0kdDAyOTUyNDI5NzAwIgthbUFtb3VudFJhdyILcHJBbW91bnRSYXciDSR0MDI5NzA0Mjk5NTgiCGFtQW1vdW50IghwckFtb3VudCIMYW1CYWxhbmNlTmV3IgxwckJhbGFuY2VOZXciCGxwQW1vdW50Ig5wb29sUHJvcG9ydGlvbiIPYW1vdW50QXNzZXRQYXJ0Ig5wcmljZUFzc2V0UGFydCIJbHBBbXRCb3RoIgVib251cyITZ2V0T25lVGtuVjJJbnRlcm5hbCIKb3V0QXNzZXRJZCIMbWluT3V0QW1vdW50IghwYXltZW50cyIMb3JpZ2luQ2FsbGVyIg10cmFuc2FjdGlvbklkIgphbURlY2ltYWxzIgpwckRlY2ltYWxzIgpwb29sU3RhdHVzIg0kdDAzMjA3MDMyMTgxIgh0b3RhbEdldCILdG90YWxBbW91bnQiDSR0MDMyMzcxMzI2NzgiBW91dEFtIgVvdXRQciIIY3VyUHJYMTgiBWN1clByIhFvdXRBc3NldElkT3JXYXZlcyIQc2VuZEZlZVRvTWF0Y2hlciIEYnVybiINJHQwMzM0NjMzMzgxMyIQZmVlQW1vdW50Rm9yQ2FsYyIQb3V0SW5BbW91bnRBc3NldCINJHQwMzM4MTYzMzkyNCIRcmVmcmVzaERMcEFjdGlvbnMiEWlzVXBkYXRlZERMcFZhbGlkIhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IhNtYW5hZ2VyVmF1bHRBZGRyZXNzIgJwZCIJaXNNYW5hZ2VyIgJwayILbXVzdE1hbmFnZXIiBGdldFkiCWlzUmV2ZXJzZSITcG9vbEFtb3VudEluQmFsYW5jZSINJHQwMzU0MTEzNTQzMSINJHQwMzU3NjIzNTgwOSITc2tpcE9yZGVyVmFsaWRhdGlvbiINY2xlYW5BbW91bnRJbiINZmVlUG9vbEFtb3VudCINJHQwMzYxNjEzNjU4NSIIYXNzZXRPdXQiAmR5Igt0b3RhbEdldFJhdyIFbmV3WHAiBG5ld0QiDGFtb3VudE91dE1pbiIJYWRkcmVzc1RvIgtzd2FwQ29udGFjdCISaXNQb29sU3dhcERpc2FibGVkIg5pc1N3YXBEaXNhYmxlZCIGY2hlY2tzIgdhc3NldEluIg0kdDAzODM1NzM4NzUxIghjaGVja01pbiIEc2xpcCIJYXV0b1N0YWtlIgdmYWN0Q2ZnIgtzdGFraW5nQ250ciIIc2xpcENudHIiCmFtQXNzZXRQbXQiCnByQXNzZXRQbXQiAWUiCWxwQXNzZXRJZCICZWwiBmxlZ2FjeSICc2EiAnNwIghscFRybnNmciICc3MiDSR0MDQzMjA2NDMzNDgiBWNoZWNrIhRscEFzc2V0RW1pc3Npb25BZnRlciIgaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiDSR0MDQ1MDI2NDUxODQiB2VzdGltTFAiDSR0MDQ2MDY5NDY0MTgiFHBheW1lbnRJbkFtb3VudEFzc2V0Ig0kdDA0NjQyMTQ2NTI5IgdtYXhTbHBnIgZlc3RQdXQiDSR0MDQ3NTU5NDc2MjQiCW91dEFtdEFtdCINJHQwNDg3OTc0ODg3OSINJHQwNDk1MzQ0OTY4OSIYbGFzdFJlZnJlc2hlZEJsb2NrSGVpZ2h0Ih1jaGVja0xhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCINJHQwNTAyMTM1MDI3NyIQZExwVXBkYXRlQWN0aW9ucyINbHBBc3NldEFtb3VudCIFaW5kZXgiBG5ld1kiDSR0MDUxMjg3NTEzNDIiDSR0MDUxNzE3NTE4MzIiDnN1bU9mR2V0QXNzZXRzIhJub0xlc3NUaGVuQW10QXNzZXQiFG5vTGVzc1RoZW5QcmljZUFzc2V0IhRidXJuTFBBc3NldE9uRmFjdG9yeSINJHQwNTI5OTg1MzA3OSINY2hlY2tQYXltZW50cyIKZmFjdG9yeUNmZyIHc3Rha2luZyIKdW5zdGFrZUludiIBdiIFYnVybkEiDSR0MDU0MTg5NTQyNzAiDXVuc3Rha2VBbW91bnQiFW5vTGVzc1RoZW5BbW91bnRBc3NldCIDcmVzIgxjaGVja0Ftb3VudHMiDSR0MDU1NTU4NTU2MzkiF2xwQXNzZXRSZWNpcGllbnRBZGRyZXNzIg0kdDA1NjY5ODU2ODg2IhBwYXltZW50QW1vdW50UmF3Ig5wYXltZW50QXNzZXRJZCINJHQwNTcwMTQ1NzExNyINJHQwNTcyNjU1NzM2OSIIYW10QXNTdHIiB3ByQXNTdHIiAnByIgxyZXNTY2FsZU11bHQiB3VzckFkZHIiB3BtdEFzSWQiA2NmZyINJHQwNTk4NDk2MDA0OCIEbGlzdCIFZGVsYXkiBWRlbHRhIgZ0YXJnZXQiBmN1ckFtcCIJbmV3QW1wUmF3IgZuZXdBbXAiCGxhc3RDYWxsIgR3YWl0IgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkiCm1hdGNoZXJQdWIiDSR0MDYwOTgxNjEyMDkiB25ld0hhc2giC2FsbG93ZWRIYXNoIgtjdXJyZW50SGFzaIcBAAFhAIDC1y8AAWIJALYCAQCAwtcvAAFjCQC2AgEAgICQu7rWrfANAAFkCQC2AgEAAAABZQkAtgIBAAAAAWYJALYCAQABAAFnCQC2AgEAAgABaAkAtgIBAAMAAWkJALYCAQAEAAFqCQC2AgEJAGUCBQFhCQBpAgkAaAIFAWEAAQUBYQABawIFV0FWRVMAAWwAMgABbQIDMTAwAAFuAgExAAFvAgJfXwABcAIAAAFxAAEAAXIAAgABcwADAAF0AAQAAXUAAQABdgACAAF3AAMAAXgABAABeQAFAAF6AAYAAUEABwABQgAIAAFDAAkAAUQAAQABRQAGAAFGAAcAAUcACgABSAkAawMACgUBYQCQTgEBSQIBSgFLCQC8AgMJALYCAQUBSgUBYwkAtgIBBQFLAQFMAgFKAUsJALwCAwUBSgUBYwUBSwEBTQIBTgFPCQCgAwEJALwCAwUBTgkAtgIBBQFPBQFjAQFQAwFOAU8BUQkAoAMBCQC9AgQFAU4JALYCAQUBTwUBYwUBUQEBUgIBSgFLCQC8AgMFAUoFAWMJALYCAQUBSwEBUwIBTgFPCQC8AgMFAU4JALYCAQUBTwUBYwEBVAMBVQFWAVcJAGsDBQFVBQFWBQFXAQFYAQFOAwkAvwICBQFkBQFOCQC+AgEFAU4FAU4BAVkBAU4DCQC/AgIFAWQFAU4JAL4CAQUBTgUBTgEBWgACEyVzX19mYWN0b3J5Q29udHJhY3QBAmFhAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAmFiAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBAmFjAAIRJXMlc19fcHJpY2VfX2xhc3QBAmFkAgJhZQJhZgkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAmFlCQDMCAIJAKQDAQUCYWYFA25pbAUBbwECYWcCAmFoAmFpCQCsAgIJAKwCAgkArAICAgslcyVzJXNfX1BfXwUCYWgCAl9fBQJhaQECYWoCAmFoAmFpCQCsAgIJAKwCAgkArAICAgslcyVzJXNfX0dfXwUCYWgCAl9fBQJhaQECYWsAAg8lc19fYW1vdW50QXNzZXQBAmFsAAIOJXNfX3ByaWNlQXNzZXQBAmFtAAIHJXNfX2FtcAECYW4BAmFvCQCsAgICCyVzJWRfX2FtcF9fCQCkAwEFAmFvAQJhcAACFSVzX19jaGFuZ2VBbXBMYXN0Q2FsbAACYXECByVzX19mZWUAAmFyCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFxBQFIAAJhcwkAuQkCCQDMCAICAiVzCQDMCAICA2RMcAUDbmlsBQFvAAJhdAkAuQkCCQDMCAICAiVzCQDMCAICEmRMcFJlZnJlc2hlZEhlaWdodAUDbmlsBQFvAAJhdQkAuQkCCQDMCAICAiVzCQDMCAICD3JlZnJlc2hETHBEZWxheQUDbmlsBQFvAAJhdgAeAAJhdwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhdQUCYXYBAmF4AAIRJXNfX2ZhY3RvcnlDb25maWcBAmF5AAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhegICYUECYUIJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFBAgJfXwUCYUICCF9fY29uZmlnAQJhQwECYUQJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYUQBAmFFAAIMJXNfX3NodXRkb3duAQJhRgACHSVzX19hbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoAQJhRwACFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJhSAECYUkJAKwCAgIbJXMlc19fc2tpcE9yZGVyVmFsaWRhdGlvbl9fBQJhSQECYUoDAmFLAmFMAmFNCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIkb3JkZXIgdmFsaWRhdGlvbiBmYWlsZWQ6IG9yZGVyVmFsaWQ9CQClAwEFAmFLAgIgKAUCYUwCASkCDiBtYXRjaGVyVmFsaWQ9CQClAwEFAmFNAQJhTgECYU8EAmFQCQCmCAEFAmFPAwkAAQIFAmFQAgdBZGRyZXNzBAJhUQUCYVAFAmFRBQR0aGlzAQJhUgAEAmFTBAJhUAkAoggBCQEBWgADCQABAgUCYVACBlN0cmluZwQCYVQFAmFQCQECYU4BBQJhVAUEdGhpcwQCYVAJAJ0IAgUCYVMJAQJhYgADCQABAgUCYVACBlN0cmluZwQCYVUFAmFQCQECYU4BBQJhVQUEdGhpcwECYVYCAmFXAmFYCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYVcFAmFYCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFXCQDMCAICAS4JAMwIAgUCYVgJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAECYVkCAmFXAmFYCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYVcFAmFYCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFXCQDMCAICAS4JAMwIAgUCYVgJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAECYVoBAmJhCQACAQkAuQkCCQDMCAICD2xwX3N0YWJsZS5yaWRlOgkAzAgCBQJiYQUDbmlsAgEgAQJiYgECYmEJALkJAgkAzAgCAg9scF9zdGFibGUucmlkZToJAMwIAgUCYmEFA25pbAIBIAACYVQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhVgIFBHRoaXMJAQFaAAACYmMKAAJiZAkA/AcEBQJhVAIQZ2V0SW5GZWVSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmJkAgNJbnQFAmJkCQACAQkArAICCQADAQUCYmQCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAACYmUKAAJiZAkA/AcEBQJhVAIRZ2V0T3V0RmVlUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJiZAIDSW50BQJiZAkAAgEJAKwCAgkAAwEFAmJkAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBAmJmAQJiZwkAuQkCCQDMCAICBCVzJXMJAMwIAgILd2hpdGVsaXN0ZWQJAMwIAgkApQgBBQJiZwUDbmlsBQFvAQJiaAECYmcJAQt2YWx1ZU9yRWxzZQIJAJsIAgUCYVQJAQJiZgEFAmJnBwACYmkJAQJhVgIFBHRoaXMJAQJhbQABAmJqAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJhVAkBAmFFAAcBAmJrAAkA2QQBCQECYVYCBQJhVAkBAmF5AAACYmwJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhVgIFAmFUCQECYUcAAQJibQAEAmJuCQECYVYCBQR0aGlzCQECYWsABAJibwkBAmFWAgUEdGhpcwkBAmFsAAQCYnAJAQJhWQIFAmFUCQECYUMBBQJibwQCYUEJAQJhWQIFAmFUCQECYUMBBQJibgkAtQkCCQECYVYCBQJhVAkBAmF6AgkApAMBBQJhQQkApAMBBQJicAUBbwECYnEBAmJyAwkAAAIFAmJyBQFrBQR1bml0CQDZBAEFAmJyAQJicwECYnIDCQAAAgUCYnIFBHVuaXQFAWsJANgEAQkBBXZhbHVlAQUCYnIBAmJ0AQJidQkAmQoHCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJ1BQF1CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnUFAXYJANkEAQkAkQMCBQJidQUBdwkBAmJxAQkAkQMCBQJidQUBeAkBAmJxAQkAkQMCBQJidQUBeQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJ1BQF6CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnUFAUEAAmJ2CQECYnQBCQECYm0AAAJidwUCYnYAAmJ4CAUCYncCXzEAAmJ5CAUCYncCXzIAAmJ6CAUCYncCXzMAAmJBCAUCYncCXzQAAmJCCAUCYncCXzUAAmJDCAUCYncCXzYAAmJECAUCYncCXzcBAmJFAAkAtQkCCQECYVYCBQJhVAkBAmF4AAUBbwACYkYJAQJiRQAAAmJHCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJiRgUBRAIgSW52YWxpZCBzdGFraW5nIGNvbnRyYWN0IGFkZHJlc3MAAmJICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJiRgUBRgIgSW52YWxpZCBzbGlwYWdlIGNvbnRyYWN0IGFkZHJlc3MAAmJJCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJiRgUBRwIcSW52YWxpZCBnd3ggY29udHJhY3QgYWRkcmVzcwACYkoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmJGBQFFAhxJbnZhbGlkIGd3eCBjb250cmFjdCBhZGRyZXNzAQJiSwoCYkwCYk0CYk4CYk8CYlACYlECYlICYlMCYlQCYlUJALkJAgkAzAgCAhQlZCVkJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJMCQDMCAIJAKQDAQUCYk0JAMwIAgkApAMBBQJiTgkAzAgCCQCkAwEFAmJPCQDMCAIJAKQDAQUCYlAJAMwIAgkApAMBBQJiUQkAzAgCCQCkAwEFAmJSCQDMCAIJAKQDAQUCYlMJAMwIAgkApAMBBQJiVAkAzAgCCQCkAwEFAmJVBQNuaWwFAW8BAmJWBgJiVwJiWAJiWQJiTwJiUgJiUwkAuQkCCQDMCAICDCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJXCQDMCAIJAKQDAQUCYlgJAMwIAgkApAMBBQJiWQkAzAgCCQCkAwEFAmJPCQDMCAIJAKQDAQUCYlIJAMwIAgkApAMBBQJiUwUDbmlsBQFvAQJiWgECY2EDCQAAAgUCY2ECBVdBVkVTCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQDZBAEFAmNhAQJjYgICY2MCY2QJALwCAwUCY2MFAWMFAmNkAQJjZQMCY2MCY2QBUQkAvQIEBQJjYwUBYwUCY2QFAVEBAmNmAwJjZwJjaAJjaQQCY2oJALwCAwkAuAICBQJjZwUCY2gFAWIFAmNoBAJjawkAvwICCQC4AgIFAmNpCQEBWAEFAmNqBQFkAwkBASEBBQJjawkAAgEJAKwCAgIKQmlnIHNscGc6IAkApgMBBQJjagkAlAoCBQJjawkAmQMBCQDMCAIFAmNnCQDMCAIFAmNoBQNuaWwBAmNsAwJjbQJjbgJjbwQCY2oJALwCAwUCY24FAWIFAmNtBAJjcAkAvwICBQJjbwUCY2oDAwUCY3AGCQC/AgIFAmNuBQJjbQkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKYDAQUCY24CASAJAKYDAQUCY20CASAJAKYDAQUCY2oCASAJAKYDAQUCY28FAmNwAQJjcQQCY3ICY3MCY3QCY3UEAmN2CQEBSQIFAmN0BQJjcgQCY3cJAQFJAgUCY3UFAmNzCQECY2ICBQJjdwUCY3YBAmN4AwJjdAJjdQJjeQQCY3oFAmJDBAJjQQUCYkQEAmNCCQECY3EEBQJjegUCY0EFAmN0BQJjdQQCY2QJAQFJAgUCY3QFAmN6BAJjYwkBAUkCBQJjdQUCY0EEAmNDCQEBSQIFAmN5BQFhBAJjRAkBAmNiAgUCY2QFAmNDBAJjRQkBAmNiAgUCY2MFAmNDCQDMCAIFAmNCCQDMCAIFAmNECQDMCAIFAmNFBQNuaWwBAmNGAwJjdAJjdQJjeQQCY0cJAQJjeAMFAmN0BQJjdQUCY3kJAMwIAgkBAU0CCQCRAwIFAmNHAAAFAWEJAMwIAgkBAU0CCQCRAwIFAmNHAAEFAWEJAMwIAgkBAU0CCQCRAwIFAmNHAAIFAWEFA25pbAECY0gCAmNJAmFyBAJjSgMJAAACBQJhcgAAAAAJAGsDBQJjSQUCYXIFAWEJAJQKAgkAZQIFAmNJBQJjSgUCY0oBAmNLAQJjTAQCY00JAJEDAgUCY0wAAAQCY04JAJEDAgUCY0wAAQQCYVUJALcCAgUCY00FAmNOAwkAAAIFAmFVBQFlBQFlBAJhUQkBDXBhcnNlSW50VmFsdWUBBQJiaQQCY08JAGgCBQJhUQACBAJjRwkAvAIDBQJjTQUCY04FAWYEAmNQCQC8AgMFAmNHBQFpBQFmBAJjUQkAvAIDCQC2AgEFAmNPBQJhVQUBZgQCY1IJALYCAQkAZQIFAmNPAAEKAQJjUwECY1QEAmNVCQC8AgMFAmNUBQJjVAUBZgQCY1YJALwCAwUCY1UFAmNUBQFmBAJjVwkAvAIDBQJjVgUBZgUCY1AJALwCAwkAtwICBQJjUQkAvAIDBQJjVwUBZwUBZgUCY1QJALcCAgkAvAIDBQJjUgUCY1QFAWYJALwCAwUBaAUCY1cFAWYKAQJjWAICY1kCY1oDCAUCY1kCXzIFAmNZBAJjVAgFAmNZAl8xBAJkYQkBAmNTAQUCY1QEAmRiCQC4AgIFAmRhCQEFdmFsdWUBBQJjVAQCZGMDCQC/AgIFAWUFAmRiCQC+AgEFAmRiBQJkYgMJAMACAgUBZgUCZGMJAJQKAgUCZGEGCQCUCgIFAmRhBwQCZGQJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4JAMwIAgAPCQDMCAIAEAUDbmlsBAJkZQoAAmRmBQJkZAoAAmRnCQCQAwEFAmRmCgACZGgJAJQKAgUCYVUHCgECZGkCAmRqAmRrAwkAZwIFAmRrBQJkZwUCZGoJAQJjWAIFAmRqCQCRAwIFAmRmBQJkawoBAmRsAgJkagJkawMJAGcCBQJkawUCZGcFAmRqCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTcJAQJkbAIJAQJkaQIJAQJkaQIJAQJkaQIJAQJkaQIJAQJkaQIJAQJkaQIJAQJkaQIJAQJkaQIJAQJkaQIJAQJkaQIJAQJkaQIJAQJkaQIJAQJkaQIJAQJkaQIJAQJkaQIJAQJkaQIJAQJkaQIFAmRoAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARBAJjVAgFAmRlAl8xBAJkbQgFAmRlAl8yAwUCZG0FAmNUCQACAQkArAICAhlEIGNhbGN1bGF0aW9uIGVycm9yLCBEID0gCQCmAwEFAmNUAQJkbgQCZG8CZHACZHECZHIEAmRzBQJiegQCZHQJANgEAQkBBXZhbHVlAQUCYkEEAmR1CQDYBAEJAQV2YWx1ZQEFAmJCBAJkdgUCYkMEAmR3BQJiRAQCZHgJAKQDAQUCYnkEAmR5CAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmRzAgtXcm9uZyBMUCBpZAhxdWFudGl0eQMJAQIhPQIJANgEAQUCZHMFAmRwCQACAQIPV3JvbmcgcG10IGFzc2V0BAJkegkBAmJaAQUCZHQEAmRBCQEBSQIFAmR6BQJkdgQCZEIJAQJiWgEFAmR1BAJkQwkBAUkCBQJkQgUCZHcEAmRECQECY2ICBQJkQwUCZEEEAmRFCQEBTQIFAmREBQFhBAJkRgkBAUkCBQJkcQUBYQQCZEcJAQFJAgUCZHkFAWEEAmRICQC8AgMFAmRBBQJkRgUCZEcEAmRJCQC8AgMFAmRDBQJkRgUCZEcEAmRKCQEBUAMFAmRIBQJkdgUFRkxPT1IEAmRLCQEBUAMFAmRJBQJkdwUFRkxPT1IEAmRMAwkAAAIFAmRvAgAFA25pbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJkcgUCZEoDCQAAAgUCZHQCBVdBVkVTBQR1bml0CQDZBAEFAmR0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmRyBQJkSwMJAAACBQJkdQIFV0FWRVMFBHVuaXQJANkEAQUCZHUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFqAgkApQgBBQJkcgUCZG8JAQJiVgYFAmRKBQJkSwUCZHEFAmRFBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWMABQJkRQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFkAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZEUFA25pbAkAnAoKBQJkSgUCZEsFAmR0BQJkdQUCZHoFAmRCBQJkeQUCZEQFAmR4BQJkTAECZE0NAmRvAmNpAmROAmRPAmRQAmRRAmRyAmRSAmRTAmRUAmRVAmRWAmRXBAJkcwUCYnoEAmRYCQDYBAEJAQV2YWx1ZQEFAmJBBAJkWQkA2AQBCQEFdmFsdWUBBQJiQgQCZFoFAmJDBAJlYQUCYkQEAmR4CQCkAwEFAmJ5BAJlYggJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJkcwIIV3IgbHAgYXMIcXVhbnRpdHkEAmVjCQDMCAIDAwkAAAIFAmRPCQECYnEBBQJkWAkAAAIFAmRRCQECYnEBBQJkWQcGCQECYVoBAiJJbnZhbGlkIGFtdCBvciBwcmljZSBhc3NldCBwYXNzZWQuBQNuaWwDCQAAAgUCZWMFAmVjBAJkegMFAmRSCQECYloBBQJkWAMDBQJkVAkAAAIFAmRXBQJkWAcJAGUCCQECYloBBQJkWAUCZFYDBQJkVAkBAmJaAQUCZFgJAGUCCQECYloBBQJkWAUCZE4EAmRCAwUCZFIJAQJiWgEFAmRZAwMFAmRUCQAAAgUCZFcFAmRZBwkAZQIJAQJiWgEFAmRZBQJkVgMFAmRUCQECYloBBQJkWQkAZQIJAQJiWgEFAmRZBQJkUAQCZWQJAQFJAgUCZE4FAmRaBAJlZQkBAUkCBQJkUAUCZWEEAmVmCQECY2ICBQJlZQUCZWQEAmRBCQEBSQIFAmR6BQJkWgQCZEMJAQFJAgUCZEIFAmVhBAJjbgkBAmNLAQkAzAgCBQJkQQkAzAgCBQJkQwUDbmlsBAJlZwMJAAACBQJlYgAABAJjbQkBAmNLAQkAzAgCCQC3AgIFAmRBBQJlZAkAzAgCCQC3AgIFAmRDBQJlZQUDbmlsBAJlaAMJAL8CAgUCY20FAmNuBgkAAgECHEQxIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gRDADCQAAAgUCZWgFAmVoBAJkRAUBZAQCZWkFAWQEAmNDBQJjbQkAlwoFCQEBTQIFAmNDBQFhCQEBTQIFAmVkBQJkWgkBAU0CBQJlZQUCZWEJAQJjYgIJALcCAgUCZEMFAmVlCQC3AgIFAmRBBQJlZAUCZWkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmRECQECY2ICBQJkQwUCZEEEAmVqCQC8AgMJAQFYAQkAuAICBQJkRAUCZWYFAWMFAmREBAJlaQkBAUkCBQJjaQUBYQMDAwUCZFUJAQIhPQIFAmREBQFkBwkAvwICBQJlagUCZWkHCQACAQkArAICCQCsAgIJAKwCAgIPUHJpY2Ugc2xpcHBhZ2UgCQCmAwEFAmVqAgMgPiAJAKYDAQUCZWkEAmVrCQEBSQIFAmViBQFhBAJlbAkAvQIEBQJlZAkBAmNlAwUCZEMFAmRBBQdDRUlMSU5HBQFjBQdDRUlMSU5HBAJlbQkAvQIEBQJlZQUBYwkBAmNlAwUCZEMFAmRBBQVGTE9PUgUHQ0VJTElORwQCZW4DCQC/AgIFAmVsBQJlZQkAlAoCBQJlbQUCZWUJAJQKAgUCZWQFAmVsBAJlbwgFAmVuAl8xBAJlcAgFAmVuAl8yBAJjbQkBAmNLAQkAzAgCCQC3AgIFAmRBBQJlbwkAzAgCCQC3AgIFAmRDBQJlcAUDbmlsBAJlaAMJAL8CAgUCY20FAmNuBgkAAgECHEQxIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gRDADCQAAAgUCZWgFAmVoBAJjQwkAvAIDBQJlawkAuAICBQJjbQUCY24FAmNuCQCXCgUJAQFQAwUCY0MFAWEFBUZMT09SCQEBUAMFAmVvBQJkWgUHQ0VJTElORwkBAVADBQJlcAUCZWEFB0NFSUxJTkcFAmREBQJlaQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQCZXEIBQJlZwJfMQQCZXIIBQJlZwJfMgQCZXMIBQJlZwJfMwQCZEUJAQFNAggFAmVnAl80BQFhBAJldAkBAU0CCAUCZWcCXzUFAWEDCQBnAgAABQJlcQkAAgECB0xQIDw9IDAEAmV1AwkBASEBBQJkUwAABQJlcQQCZXYJAGUCBQJkTgUCZXIEAmV3CQBlAgUCZFAFAmVzBAJleAMDBQJkVAkAAAIFAmRXBQJkWAcJAJQKAgUCZFYAAAMDBQJkVAkAAAIFAmRXBQJkWQcJAJQKAgAABQJkVgkAlAoCBQJlcgUCZXMEAmV5CAUCZXgCXzEEAmV6CAUCZXgCXzIEAmVBCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWMABQJkRQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFkAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZEUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFnAgUCZHIFAmRvCQECYksKBQJleQUCZXoFAmV1BQJkRQUCY2kFAmV0BQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJldgUCZXcFA25pbAkAnwoNBQJlcQUCZXUFAmRFBQJkegUCZEIFAmViBQJkcwUCZHgFAmVBBQJldgUCZXcFAmRPBQJkUQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZUIDAmNMAmNaAmVDBAJlRAUBZwQCZUUJAJEDAgUCY0wDCQAAAgUCY1oAAAABAAAEAmVGCQCnAwEFAW0EAmFRCQC5AgIJAKcDAQUCYmkFAmVGBAJhVQUCZUUEAmNPCQC5AgIFAmFRBQJlRAQCZUcJALoCAgkAuQICCQC5AgIJALoCAgkAuQICBQJlQwUCZUMJALkCAgUCZUUFAmVEBQJlQwUCZUYJALkCAgUCY08FAmVEBAJlSAkAuAICCQC3AgIFAmFVCQC6AgIJALkCAgUCZUMFAmVGBQJjTwUCZUMKAQJjWAICY1kCZUkEAmVKBQJjWQQCZUsIBQJlSgJfMQQCZG0IBQJlSgJfMgMJAQIhPQIFAmRtBQR1bml0BQJjWQQCZUwJALoCAgkAtwICCQC5AgIFAmVLBQJlSwUCZUcJALcCAgkAuQICBQFnBQJlSwUCZUgEAmVNCQEBWQEJALgCAgUCZUwJAQV2YWx1ZQEFAmVLAwkAwAICBQFmBQJlTQkAlAoCBQJlTAUCZUkJAJQKAgUCZUwFBHVuaXQEAmRkCQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcJAMwIAgAICQDMCAIACQkAzAgCAAoJAMwIAgALCQDMCAIADAkAzAgCAA0JAMwIAgAOBQNuaWwEAmVOCgACZGYFAmRkCgACZGcJAJADAQUCZGYKAAJkaAkAlAoCBQJlQwUEdW5pdAoBAmRpAgJkagJkawMJAGcCBQJkawUCZGcFAmRqCQECY1gCBQJkagkAkQMCBQJkZgUCZGsKAQJkbAICZGoCZGsDCQBnAgUCZGsFAmRnBQJkagkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDE1CQECZGwCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCBQJkaAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPBAJlSwgFAmVOAl8xBAJkbQgFAmVOAl8yAwkBAiE9AgUCZG0FBHVuaXQFAmVLCQACAQkArAICAhlZIGNhbGN1bGF0aW9uIGVycm9yLCBZID0gCQCmAwEFAmVLAQJlTwMCZVACZVECZVIEAmVTCQC8AgMJAQJjSwEJAMwIAgkBAUwCBQJlUAkAtgIBBQJiQwkAzAgCCQEBTAIFAmVRCQC2AgEFAmJEBQNuaWwFAWMFAmVSAwkAAAIFAmVSBQFlBQFlBQJlUwECZVQDAmVVAmVWAmVXBAJlWAkAuAICCQC2AgEJAQJiWgEJAQJicwEFAmJBBQJlVQQCZVkJALgCAgkAtgIBCQECYloBCQECYnMBBQJiQgUCZVYEAmVaCQC4AgIJALYCAQgJAQV2YWx1ZQEJAOwHAQUCYnoIcXVhbnRpdHkFAmVXBAJmYQkBAmVPAwUCZVgFAmVZBQJlWgUCZmEBAmZiAwJmYwJmZAJlVwQCZVgJAGQCCQECYloBCQECYnMBBQJiQQUCZmMEAmVZCQBkAgkBAmJaAQkBAmJzAQUCYkIFAmZkBAJlWgkAZAIICQEFdmFsdWUBCQDsBwEFAmJ6CHF1YW50aXR5BQJlVwQCZVMJAQJlTwMJALYCAQUCZVgJALYCAQUCZVkJALYCAQUCZVoEAmZlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJhdAUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIFAmFzCQCmAwEFAmVTBQNuaWwJAJQKAgUCZmUFAmVTAQJmZgICZmcCZVMDCQDAAgIFAmVTBQJmZwYJAQJhWgECInVwZGF0ZWQgRExwIGxvd2VyIHRoYW4gY3VycmVudCBETHABAmZoAQJmaQQCZVgJAQJiWgEJAQJicwEFAmJBBAJlWQkBAmJaAQkBAmJzAQUCYkIEAmZqCAUCZmkGYW1vdW50BAJmawkAbgQIBQJmaQZhbW91bnQIBQJmaQVwcmljZQUBYQUFRkxPT1IEAmZsAwkAAAIIBQJmaQlvcmRlclR5cGUFA0J1eQkAlAoCBQJmagkBAS0BBQJmawkAlAoCCQEBLQEFAmZqBQJmawQCZmMIBQJmbAJfMQQCZmQIBQJmbAJfMgMDAwkBAmJqAAYJAAACBQJieQUBcwYJAAACBQJieQUBdAkAAgECDUFkbWluIGJsb2NrZWQDAwkBAiE9AggIBQJmaQlhc3NldFBhaXILYW1vdW50QXNzZXQFAmJBBgkBAiE9AggIBQJmaQlhc3NldFBhaXIKcHJpY2VBc3NldAUCYkIJAAIBAglXciBhc3NldHMEAmZtCQCnAwEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUCYXMCATAEAmZuCQECZmIDBQJmYwUCZmQAAAQCZm8IBQJmbgJfMQQCZnAIBQJmbgJfMgQCZnEJAMACAgUCZnAFAmZtBAJmcgkAuQkCCQDMCAICBGRMcD0JAMwIAgkApgMBBQJmbQkAzAgCAgggZExwTmV3PQkAzAgCCQCmAwEFAmZwCQDMCAICFCBhbW91bnRBc3NldEJhbGFuY2U9CQDMCAIJAKQDAQUCZVgJAMwIAgITIHByaWNlQXNzZXRCYWxhbmNlPQkAzAgCCQCkAwEFAmVZCQDMCAICGSBhbW91bnRBc3NldEJhbGFuY2VEZWx0YT0JAMwIAgkApAMBBQJmYwkAzAgCAhggcHJpY2VBc3NldEJhbGFuY2VEZWx0YT0JAMwIAgkApAMBBQJmZAkAzAgCAgggaGVpZ2h0PQkAzAgCCQCkAwEFBmhlaWdodAUDbmlsAgAJAJQKAgUCZnEFAmZyAQJmcwECY1oDCQECIT0CCQCQAwEIBQJjWghwYXltZW50cwABCQACAQIKMSBwbW50IGV4cAQCZnQJAQV2YWx1ZQEJAJEDAggFAmNaCHBheW1lbnRzAAAEAmRwCQEFdmFsdWUBCAUCZnQHYXNzZXRJZAQCZFYIBQJmdAZhbW91bnQEAmVnCQECZG4ECQDYBAEIBQJjWg10cmFuc2FjdGlvbklkCQDYBAEFAmRwBQJkVggFAmNaBmNhbGxlcgQCZEoIBQJlZwJfMQQCZEsIBQJlZwJfMgQCZHgJAQ1wYXJzZUludFZhbHVlAQgFAmVnAl85BAJkTAgFAmVnA18xMAQCZnUDCQEBIQEJAQJiaAEIBQJjWgZjYWxsZXIDCQECYmoABgkAAAIFAmJ5BQF0BwMFAmZ1CQACAQkArAICAg9BZG1pbiBibG9ja2VkOiAJAKQDAQUCZHgJAJcKBQUCZEoFAmRLBQJkVgUCZHAFAmRMAQJmdgoCZncCYWkCZngCZnkCY2kCZFMCZFQCZFUCZFYCZFcEAmVnCQECZE0NBQJhaQUCY2kICQEFdmFsdWUBBQJmeAZhbW91bnQICQEFdmFsdWUBBQJmeAdhc3NldElkCAkBBXZhbHVlAQUCZnkGYW1vdW50CAkBBXZhbHVlAQUCZnkHYXNzZXRJZAUCZncJAAACBQJhaQIABQJkUwUCZFQFAmRVBQJkVgUCZFcEAmR4CQENcGFyc2VJbnRWYWx1ZQEIBQJlZwJfOAQCZnoDCQEBIQEJAQJiaAEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmZ3AwMJAQJiagAGCQAAAgUCYnkFAXQGCQAAAgUCYnkFAXIHAwUCZnoJAAIBCQCsAgICCEJsb2NrZWQ6CQCkAwEFAmR4BQJlZwECZkEFAmZCAmRwAmRyAmFpAmZDBAJkdAkA2AQBCQEFdmFsdWUBBQJiQQQCZHUJANgEAQkBBXZhbHVlAQUCYkIEAmRzBQJiegQCZFoFAmJDBAJlYQUCYkQEAmVaCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHMCEGludmFsaWQgbHAgYXNzZXQIcXVhbnRpdHkEAmZEAwkAvwICBQJlWgUBZQYJAAIBAiJpbml0aWFsIGRlcG9zaXQgcmVxdWlyZXMgYWxsIGNvaW5zAwkAAAIFAmZEBQJmRAQCZHoJAQJiWgEFAmR0BAJkQgkBAmJaAQUCZHUEAmZFAwkAAAIFAmFpAgAJAJQKAgUCZHoFAmRCAwkAAAIFAmRwBQJkdAMJAGYCBQJmQgUCZHoJAAIBAhZpbnZhbGlkIHBheW1lbnQgYW1vdW50CQCUCgIJAGUCBQJkegUCZkIFAmRCAwkAAAIFAmRwBQJkdQMJAGYCBQJmQgUCZEIJAAIBAhZpbnZhbGlkIHBheW1lbnQgYW1vdW50CQCUCgIFAmR6CQBlAgUCZEIFAmZCCQACAQIQd3JvbmcgcG10QXNzZXRJZAQCZkYIBQJmRQJfMQQCZkcIBQJmRQJfMgQCZkgDCQAAAgUCZHAFAmR0CQCUCgIFAmZCAAADCQAAAgUCZHAFAmR1CQCUCgIAAAUCZkIJAAIBAg9pbnZhbGlkIHBheW1lbnQEAmZJCAUCZkgCXzEEAmZKCAUCZkgCXzIEAmZLAwUCZkMJAJUKAwgJAQJjSAIFAmZJBQJiYwJfMQgJAQJjSAIFAmZKBQJiYwJfMQgJAQJjSAIFAmZCBQJiYwJfMgkAlQoDBQJmSQUCZkoAAAQCZkwIBQJmSwJfMQQCZk0IBQJmSwJfMgQCY0oIBQJmSwJfMwQCZk4JAGQCBQJmRgUCZkwEAmZPCQBkAgUCZkcFAmZNBAJjbgkBAmNLAQkAzAgCCQEBSQIFAmZGBQJiQwkAzAgCCQEBSQIFAmZHBQJiRAUDbmlsBAJjbQkBAmNLAQkAzAgCCQEBSQIFAmZOBQJiQwkAzAgCCQEBSQIFAmZPBQJiRAUDbmlsBAJlaAMJAL8CAgUCY20FAmNuBgkBBXRocm93AAMJAAACBQJlaAUCZWgEAmZQCQC9AgQFAmVaCQC4AgIFAmNtBQJjbgUCY24FBUZMT09SBAJkRQkBAU0CCQECY2ICCQEBSQIFAmZPBQJlYQkBAUkCBQJmTgUCZFoFAWEEAmVBCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWMABQJkRQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFkAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZEUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFnAgUCZHIFAmFpCQECYksKBQJmSQUCZkoJAKADAQUCZlAFAmRFAAAAAAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAAAAAAFA25pbAQCZlEJAGsDBQJmRwUBYQUCZkYEAmZSCQBrAwUCZkIFAWEJAGQCBQJmUQUBYQQCZlMJAGUCBQJmQgUCZlIEAmZUCQC8AgMFAmVaCQC2AgEFAmZTCQC2AgEFAmZHBAJmVQkAoAMBCQC8AgMJALgCAgUCZlAFAmZUBQFiBQJmVAkAlgoECQCgAwEFAmZQBQJlQQUCY0oFAmZVCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmVgYCZlcCZlgCZlkCZncCZloCZ2EEAmRzCQDYBAEJAQV2YWx1ZQEFAmJ6BAJkdAkA2AQBCQEFdmFsdWUBBQJiQQQCZHUJANgEAQkBBXZhbHVlAQUCYkIEAmdiBQJiQwQCZ2MFAmJEBAJnZAUCYnkEAmRyAwkAAAIFAmZ3BQJiSgUCZloFAmZ3BAJmdAkBBXZhbHVlAQkAkQMCBQJmWQAABAJkcAkBBXZhbHVlAQgFAmZ0B2Fzc2V0SWQEAmRWCAUCZnQGYW1vdW50BAJmYQkBAmVUAwUBZQUBZQUBZQMJAAACBQJmYQUCZmEEAmRvCQDYBAEFAmdhAwkBAiE9AgUCZHMJANgEAQUCZHAJAAIBAghXcm9uZyBMUAQCZHoJAQJiWgEFAmR0BAJkQgkBAmJaAQUCZHUEAmdlCgACYmQJAPwHBAUEdGhpcwITZ2V0T25lVGtuVjJSRUFET05MWQkAzAgCBQJmVwkAzAgCBQJkVgUDbmlsBQNuaWwDCQABAgUCYmQCCihJbnQsIEludCkFAmJkCQACAQkArAICCQADAQUCYmQCHyBjb3VsZG4ndCBiZSBjYXN0IHRvIChJbnQsIEludCkDCQAAAgUCZ2UFAmdlBAJjSggFAmdlAl8yBAJnZggFAmdlAl8xBAJnZwMDCQBmAgUCZlgAAAkAZgIFAmZYBQJnZgcJAQJhWgEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZlgFA25pbAIABQJnZgQCZ2gDCQAAAgUCZlcFAmR0CQCWCgQFAmdnAAAJAGUCCQBlAgUCZHoFAmdnBQJjSgUCZEIDCQAAAgUCZlcFAmR1CQCWCgQAAAUCZ2cFAmR6CQBlAgkAZQIFAmRCBQJnZwUCY0oJAAIBAhRpbnZhbGlkIG91dCBhc3NldCBpZAQCZ2kIBQJnaAJfMQQCZ2oIBQJnaAJfMgQCZk4IBQJnaAJfMwQCZk8IBQJnaAJfNAQCZ2sJAQJjYgIJAQFJAgUCZk8FAmdjCQEBSQIFAmZOBQJnYgQCZ2wJAQFNAgUCZ2sFAWEEAmdtAwkAAAIFAmZXAgVXQVZFUwUEdW5pdAkA2QQBBQJmVwQCZ24DCQBmAgUCY0oAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJibAUCY0oFAmdtBQNuaWwFA25pbAQCZEwJAM4IAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJkcgUCZ2cFAmdtCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhagIJAKUIAQUCZHIFAmRvCQECYlYGBQJnaQUCZ2oFAmRWBQJnbAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFjAAUCZ2wJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmdsBQNuaWwFAmduAwkAAAIFAmRMBQJkTAQCZ28JAPwHBAUCYVQCBGJ1cm4JAMwIAgUCZFYFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZHAFAmRWBQNuaWwDCQAAAgUCZ28FAmdvBAJncAQCZ3EDCQAAAgUEdGhpcwUCYmwAAAUCY0oEAmdyAwkAAAIJAQJicQEFAmZXBQJiQQYHAwUCZ3IJAJQKAgkBAS0BCQBkAgUCZ2YFAmdxAAAJAJQKAgAACQEBLQEJAGQCBQJnZgUCZ3EEAmZjCAUCZ3ACXzEEAmZkCAUCZ3ACXzIEAmdzCQECZmIDBQJmYwUCZmQAAAQCZ3QIBQJncwJfMQQCZVMIBQJncwJfMgQCZ3UJAQJmZgIFAmZhBQJlUwMJAAACBQJndQUCZ3UJAJQKAgkAzggCBQJkTAUCZ3QFAmdnCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJndgAEAmd3CQECYVIABAJhUAkAnQgCBQJndwkBAmFhAAMJAAECBQJhUAIGU3RyaW5nBAJhVQUCYVAJANkEAQUCYVUDCQABAgUCYVACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgACZ3gJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAECZ3kBAmNaBAJhUAkBAmd2AAMJAAECBQJhUAIKQnl0ZVZlY3RvcgQCZ3oFAmFQCQAAAggFAmNaD2NhbGxlclB1YmxpY0tleQUCZ3oDCQABAgUCYVACBFVuaXQJAAACCAUCY1oGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBAmdBAQJjWgQCYVAJAQJndgADCQABAgUCYVACCkJ5dGVWZWN0b3IEAmd6BQJhUAMJAAACCAUCY1oPY2FsbGVyUHVibGljS2V5BQJnegYFAmd4AwkAAQIFAmFQAgRVbml0AwkAAAIIBQJjWgZjYWxsZXIFBHRoaXMGBQJneAkAAgECC01hdGNoIGVycm9yAQJnQgMCZ0MCZUMCZ0QEAmJ1CQECYm0ABAJkdAkAkQMCBQJidQUBeAQCZHUJAJEDAgUCYnUFAXkEAmVEBQFnBAJlRgkApwMBBQFtBAJhUQkAuQICCQCnAwEFAmJpBQJlRgQCY0wDCQAAAgUCZ0MHCQDMCAIJALcCAgkAtgIBCQECYloBBQJkdAUCZ0QJAMwIAgkAtgIBCQECYloBBQJkdQUDbmlsCQDMCAIJALcCAgkAtgIBCQECYloBBQJkdQUCZ0QJAMwIAgkAtgIBCQECYloBBQJkdAUDbmlsBAJlRQkAkQMCBQJjTAAABAJhVQUCZUUEAmNPCQC5AgIFAmFRBQJlRAQCZUcJALoCAgkAuQICCQC5AgIJALoCAgkAuQICBQJlQwUCZUMJALkCAgUCZUUFAmVEBQJlQwUCZUYJALkCAgUCY08FAmVEBAJlSAkAuAICCQC3AgIFAmFVCQC6AgIJALkCAgUCZUMFAmVGBQJjTwUCZUMKAQJjWAICY1kCZUkEAmdFBQJjWQQCZUsIBQJnRQJfMQQCZG0IBQJnRQJfMgMJAQIhPQIFAmRtBQR1bml0BQJjWQQCZUwJALoCAgkAtwICCQC5AgIFAmVLBQJlSwUCZUcJALcCAgkAuQICBQFnBQJlSwUCZUgEAmVNCQEBWQEJALgCAgUCZUwJAQV2YWx1ZQEFAmVLAwkAwAICBQFmBQJlTQkAlAoCBQJlTAUCZUkJAJQKAgUCZUwFBHVuaXQEAmRkCQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcJAMwIAgAICQDMCAIACQkAzAgCAAoJAMwIAgALCQDMCAIADAkAzAgCAA0JAMwIAgAOBQNuaWwEAmdGCgACZGYFAmRkCgACZGcJAJADAQUCZGYKAAJkaAkAlAoCBQJlQwUEdW5pdAoBAmRpAgJkagJkawMJAGcCBQJkawUCZGcFAmRqCQECY1gCBQJkagkAkQMCBQJkZgUCZGsKAQJkbAICZGoCZGsDCQBnAgUCZGsFAmRnBQJkagkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDE1CQECZGwCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCCQECZGkCBQJkaAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPBAJlSwgFAmdGAl8xBAJkbQgFAmdGAl8yAwkBAiE9AgUCZG0FBHVuaXQFAmVLCQACAQkArAICAhlZIGNhbGN1bGF0aW9uIGVycm9yLCBZID0gCQCmAwEFAmVLAQJnRwAJAQt2YWx1ZU9yRWxzZQIJAJsIAgUCYVQJAQJhSAEJAKUIAQUEdGhpcwcbAmNaASFjYWxjdWxhdGVBbW91bnRPdXRGb3JTd2FwUkVBRE9OTFkDAmdIAmdDAmdJBAJnSgMJAAACBQJnQwcEAmdLCQECYVYCBQR0aGlzCQECYWwABAJnRAkAtwICCQC2AgEJAQJiWgEJAQJhVgIFBHRoaXMJAQJhawAJALYCAQUCZ0gJAJQKAgUCZ0sFAmdEBAJnSwkBAmFWAgUEdGhpcwkBAmFrAAQCZ0QJALcCAgkAtgIBCQECYloBCQECYVYCBQR0aGlzCQECYWwACQC2AgEFAmdICQCUCgIFAmdLBQJnRAQCZ0sIBQJnSgJfMQQCZ0QIBQJnSgJfMgQCYnUJAQJibQAEAmR0CQCRAwIFAmJ1BQF4BAJkdQkAkQMCBQJidQUBeQQCY0wJAMwIAgkAtgIBCQECYloBBQJkdAkAzAgCCQC2AgEJAQJiWgEFAmR1BQNuaWwEAmVDCQECY0sBBQJjTAQCZUsJAQJnQgMFAmdDBQJlQwkAtgIBBQJnSAQCZ0wJALgCAgkAuAICCQC2AgEJAQJiWgEFAmdLBQJlSwkAtgIBAAEEAmdNCQCWAwEJAMwIAgAACQDMCAIJAKADAQUCZ0wFA25pbAQCZ04DCQAAAgUCZ0MHCQDMCAIJALcCAgkAtwICCQC2AgEJAQJiWgEFAmR0CQC2AgEFAmdICQC2AgEFAmdJCQDMCAIJALgCAgkAtgIBCQECYloBBQJkdQUCZ0wFA25pbAkAzAgCCQC4AgIJALYCAQkBAmJaAQUCZHQFAmdMCQDMCAIJALcCAgkAtwICCQC2AgEJAQJiWgEFAmR1CQC2AgEFAmdICQC2AgEFAmdJBQNuaWwEAmdPCQECY0sBBQJnTgQCZWgDCQDAAgIFAmdPBQJlQwYJAAIBCQC5CQIJAMwIAgIUbmV3IEQgaXMgZmV3ZXIgZXJyb3IJAMwIAgkApgMBBQJlQwkAzAgCCQCmAwEFAmdPBQNuaWwCAl9fAwkAAAIFAmVoBQJlaAkAlAoCBQNuaWwFAmdNCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNaASZjYWxjdWxhdGVBbW91bnRPdXRGb3JTd2FwQW5kU2VuZFRva2VucwUCZ0gCZ0MCZ1ACZ1ECZ0kEAmdSCgACYmQJAPwHBAUCYVQCF2dldFN3YXBDb250cmFjdFJFQURPTkxZBQNuaWwFA25pbAMJAAECBQJiZAIGU3RyaW5nBQJiZAkAAgEJAKwCAgkAAwEFAmJkAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcEAmdTCgACYmQJAPwHBAUCYVQCGmlzUG9vbFN3YXBEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYmQCB0Jvb2xlYW4FAmJkCQACAQkArAICCQADAQUCYmQCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmdUAwkBASEBCQECYmgBCAUCY1oGY2FsbGVyAwMJAQJiagAGCQAAAgUCYnkFAXQGBQJnUwcEAmdVCQDMCAIDAwkBASEBBQJnVAYJAQJneQEFAmNaBgkBAmFaAQIic3dhcCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAZwIICQEFdmFsdWUBCQCRAwIIBQJjWghwYXltZW50cwAABmFtb3VudAUCZ0gGCQECYVoBAgxXcm9uZyBhbW91bnQJAMwIAgMJAAACCAUCY1oGY2FsbGVyCQERQGV4dHJOYXRpdmUoMTA2MikBBQJnUgYJAQJhWgECEVBlcm1pc3Npb24gZGVuaWVkBQNuaWwDCQAAAgUCZ1UFAmdVBAJmdAkBBXZhbHVlAQkAkQMCCAUCY1oIcGF5bWVudHMAAAQCZ1YJAQJicwEIBQJmdAdhc3NldElkBAJnVwMJAAACBQJnQwcEAmdLCQECYVYCBQR0aGlzCQECYWwABAJnRAkAZQIJAQJiWgEFAmdWCAkBBXZhbHVlAQkAkQMCCAUCY1oIcGF5bWVudHMAAAZhbW91bnQJAJQKAgUCZ0sFAmdEBAJnSwkBAmFWAgUEdGhpcwkBAmFrAAQCZ0QJAGUCCQECYloBBQJnVggJAQV2YWx1ZQEJAJEDAggFAmNaCHBheW1lbnRzAAAGYW1vdW50CQCUCgIFAmdLBQJnRAQCZ0sIBQJnVwJfMQQCZ0QIBQJnVwJfMgQCYnUJAQJibQAEAmR0CQCRAwIFAmJ1BQF4BAJkdQkAkQMCBQJidQUBeQQCY0wDCQAAAgUCZ0MHCQDMCAIJALgCAgkAtgIBCQECYloBBQJkdAkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCY1oIcGF5bWVudHMAAAZhbW91bnQJAMwIAgkAtgIBCQECYloBBQJkdQUDbmlsCQDMCAIJALYCAQkBAmJaAQUCZHQJAMwIAgkAuAICCQC2AgEJAQJiWgEFAmR1CQC2AgEICQEFdmFsdWUBCQCRAwIIBQJjWghwYXltZW50cwAABmFtb3VudAUDbmlsBAJlQwkBAmNLAQUCY0wEAmVLCQECZ0IDBQJnQwUCZUMJALYCAQAABAJnTAkAuAICCQC4AgIJALYCAQkBAmJaAQUCZ0sFAmVLCQC2AgEAAQQCZ00JAJYDAQkAzAgCAAAJAMwIAgkAoAMBBQJnTAUDbmlsBAJnWAMJAGcCBQJnTQUCZ1AGCQACAQIsRXhjaGFuZ2UgcmVzdWx0IGlzIGZld2VyIGNvaW5zIHRoYW4gZXhwZWN0ZWQDCQAAAgUCZ1gFAmdYBAJnTgMJAAACBQJnQwcJAMwIAgkAtwICCQC2AgEJAQJiWgEFAmR0CQC2AgEFAmdJCQDMCAIJALgCAgkAtgIBCQECYloBBQJkdQUCZ0wFA25pbAkAzAgCCQC4AgIJALYCAQkBAmJaAQUCZHQFAmdMCQDMCAIJALcCAgkAtgIBCQECYloBBQJkdQkAtgIBBQJnSQUDbmlsBAJnTwkBAmNLAQUCZ04EAmVoAwkAwAICBQJnTwUCZUMGCQACAQIUbmV3IEQgaXMgZmV3ZXIgZXJyb3IDCQAAAgUCZWgFAmVoBAJmYwMFAmdDCQEBLQEFAmdNBQJnSQQCZmQDBQJnQwUCZ0kJAQEtAQUCZ00EAmd0CAkBAmZiAwUCZmMFAmZkAAACXzEDCQAAAgUCZ3QFAmd0CQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCZ1EFAmdNCQECYnEBBQJnSwUDbmlsBQJnTQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjWgELY29uc3RydWN0b3IBAVoEAmVHCQECZ0EBBQJjWgMJAAACBQJlRwUCZUcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVoABQFaBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1oBA3B1dAICZ1kCZ1oEAmhhCQECYkUABAJoYgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCaGEFAUQCCldyIHN0IGFkZHIEAmhjCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJoYQUBRgIKV3Igc2wgYWRkcgMJAGYCAAAFAmdZCQACAQIOV3Jvbmcgc2xpcHBhZ2UDCQECIT0CCQCQAwEIBQJjWghwYXltZW50cwACCQACAQIMMiBwbW50cyBleHBkBAJoZAkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCY1oIcGF5bWVudHMAAAZhbW91bnQEAmhlCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJjWghwYXltZW50cwABBmFtb3VudAQCZVgJALgCAgkAtgIBCQECYloBCQECYnMBBQJiQQUCaGQDCQAAAgUCZVgFAmVYBAJlWQkAuAICCQC2AgEJAQJiWgEJAQJicwEFAmJCBQJoZQMJAAACBQJlWQUCZVkEAmVaCQC2AgEICQEFdmFsdWUBCQDsBwEFAmJ6CHF1YW50aXR5AwkAAAIFAmVaBQJlWgQCZmEJAQJlVAMFAmhkBQJoZQkAtgIBAAADCQAAAgUCZmEFAmZhBAJoZgkBAmZ2CgkApQgBCAUCY1oGY2FsbGVyCQDYBAEIBQJjWg10cmFuc2FjdGlvbklkCQEPQXR0YWNoZWRQYXltZW50AggJAQV2YWx1ZQEJAJEDAggFAmNaCHBheW1lbnRzAAAHYXNzZXRJZAgJAQV2YWx1ZQEJAJEDAggFAmNaCHBheW1lbnRzAAAGYW1vdW50CQCRAwIIBQJjWghwYXltZW50cwABBQJnWQYHBgAAAgAEAmV1CAUCaGYCXzIEAmhnCAUCaGYCXzcEAmRMCAUCaGYCXzkEAmV2CAUCaGYDXzEwBAJldwgFAmhmA18xMQQCZHQIBQJoZgNfMTIEAmR1CAUCaGYDXzEzBAJlZwkA/AcEBQJhVAIEZW1pdAkAzAgCBQJldQUDbmlsBQNuaWwDCQAAAgUCZWcFAmVnBAJoaAQCYVAFAmVnAwkAAQIFAmFQAgdBZGRyZXNzBAJoaQUCYVAJAPwHBAUCaGkCBGVtaXQJAMwIAgUCZXUFA25pbAUDbmlsBQR1bml0AwkAAAIFAmhoBQJoaAQCaGoDCQBmAgUCZXYAAAkA/AcEBQJoYwIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmR0BQJldgUDbmlsBQNuaWwDCQAAAgUCaGoFAmhqBAJoawMJAGYCBQJldwAACQD8BwQFAmhjAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZHUFAmV3BQNuaWwFA25pbAMJAAACBQJoawUCaGsEAmhsAwUCZ1oEAmhtCQD8BwQFAmhiAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJoZwUCZXUFA25pbAMJAAACBQJobQUCaG0FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCY1oGY2FsbGVyBQJldQUCaGcFA25pbAQCaG4JAQJmYgMAAAAAAAAEAmd0CAUCaG4CXzEEAmVTCAUCaG4CXzIEAmhvAwkAwAICBQJlUwUCZmEGCQECYVoBCQC5CQIJAMwIAgIidXBkYXRlZCBETHAgbG93ZXIgdGhhbiBjdXJyZW50IERMcAkAzAgCCQCmAwEFAmVYCQDMCAIJAKYDAQUCZVkJAMwIAgkApgMBBQJlWgkAzAgCCQCmAwEFAmZhCQDMCAIJAKYDAQUCZVMJAMwIAgkApAMBBQJldgkAzAgCCQCkAwEFAmV3BQNuaWwCASADCQAAAgUCaG8FAmhvBAJocAgJAQV2YWx1ZQEJAOwHAQUCYnoIcXVhbnRpdHkDCQAAAgUCaHAFAmhwCQDOCAIJAM4IAgUCZEwFAmhsBQJndAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjWgELcHV0T25lVGtuVjICAmZYAmdaBAJocQoAAmJkCQD8BwQFAmFUAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYmQCB0Jvb2xlYW4FAmJkCQACAQkArAICCQADAQUCYmQCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmZ6AwkBASEBCQECYmgBCAUCY1oGY2FsbGVyAwMDCQECYmoABgkAAAIFAmJ5BQFyBgkAAAIFAmJ5BQF0BgUCaHEHBAJnVQkAzAgCAwMJAQEhAQUCZnoGCQECZ3kBBQJjWgYJAQJhWgECIXB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmNaCHBheW1lbnRzAAEGCQECYVoBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJnVQUCZ1UEAmR0CQDYBAEJAQV2YWx1ZQEFAmJBBAJkdQkA2AQBCQEFdmFsdWUBBQJiQgQCZHMFAmJ6BAJnYgUCYkMEAmdjBQJiRAQCZHIDCQAAAggFAmNaBmNhbGxlcgUEdGhpcwgFAmNaDG9yaWdpbkNhbGxlcggFAmNaBmNhbGxlcgQCZnQJAQV2YWx1ZQEJAJEDAggFAmNaCHBheW1lbnRzAAAEAmRwCQDYBAEJAQV2YWx1ZQEIBQJmdAdhc3NldElkBAJkVggFAmZ0BmFtb3VudAQCZmEDCQAAAggFAmZ0B2Fzc2V0SWQFAmJBCQECZVQDCQC2AgEFAmRWCQC2AgEAAAkAtgIBAAAJAQJlVAMJALYCAQAACQC2AgEFAmRWCQC2AgEAAAMJAAACBQJmYQUCZmEEAmhyCQECZkEFBQJkVgUCZHAJAKUIAQUCZHIJANgEAQgFAmNaDXRyYW5zYWN0aW9uSWQGAwkAAAIFAmhyBQJocgQCY0oIBQJocgJfMwQCZEwIBQJocgJfMgQCaHMIBQJocgJfMQQCZXUDAwkAZgIFAmZYAAAJAGYCBQJmWAUCaHMHCQECYVoBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZYBQNuaWwCAAUCaHMEAmhmCQD8BwQFAmFUAgRlbWl0CQDMCAIFAmV1BQNuaWwFA25pbAMJAAACBQJoZgUCaGYEAmhoBAJhUAUCaGYDCQABAgUCYVACB0FkZHJlc3MEAmhpBQJhUAkA/AcEBQJoaQIEZW1pdAkAzAgCBQJldQUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCaGgFAmhoBAJobAMFAmdaBAJobQkA/AcEBQJiRwIIc3Rha2VGb3IJAMwIAgkApQgBCAUCY1oGY2FsbGVyBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRzBQJldQUDbmlsAwkAAAIFAmhtBQJobQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJjWgZjYWxsZXIFAmV1BQJkcwUDbmlsBAJnbgMJAGYCBQJjSgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJsBQJjSgkA2QQBBQJkcAUDbmlsBQNuaWwEAmh0AwkAAAIFBHRoaXMFAmJsCQCUCgIAAAAABAJodQMJAAACCAUCZnQHYXNzZXRJZAUCYkEGBwMFAmh1CQCUCgIJAQEtAQUCY0oAAAkAlAoCAAAJAQEtAQUCY0oEAmZjCAUCaHQCXzEEAmZkCAUCaHQCXzIEAmh2CQECZmIDBQJmYwUCZmQAAAQCZ3QIBQJodgJfMQQCZVMIBQJodgJfMgQCZ3UJAQJmZgIFAmZhBQJlUwMJAAACBQJndQUCZ3UJAJQKAgkAzggCCQDOCAIJAM4IAgUCZEwFAmhsBQJnbgUCZ3QFAmV1CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNaAQpwdXRGb3JGcmVlAQJodwMJAGYCAAAFAmh3CQACAQIKV3Jvbmcgc2xwZwMJAQIhPQIJAJADAQgFAmNaCHBheW1lbnRzAAIJAAIBAgwyIHBtbnRzIGV4cGQEAmh4CQECZnYKCQClCAEIBQJjWgZjYWxsZXIJANgEAQgFAmNaDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCAkBBXZhbHVlAQkAkQMCCAUCY1oIcGF5bWVudHMAAAdhc3NldElkCAkBBXZhbHVlAQkAkQMCCAUCY1oIcGF5bWVudHMAAAZhbW91bnQJAJEDAggFAmNaCHBheW1lbnRzAAEFAmh3BwcGAAACAAQCZEwIBQJoeAJfOQQCaGQJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmNaCHBheW1lbnRzAAAGYW1vdW50BAJoZQkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCY1oIcGF5bWVudHMAAQZhbW91bnQEAmZhCQECZVQDBQJoZAUCaGUJALYCAQAAAwkAAAIFAmZhBQJmYQQCaHkJAQJmYgMAAAAAAAAEAmd0CAUCaHkCXzEEAmVTCAUCaHkCXzIEAmd1CQECZmYCBQJmYQUCZVMDCQAAAgUCZ3UFAmd1CQDOCAIFAmRMBQJndAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjWgEDZ2V0AAQCZmEJAQJlVAMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZmEFAmZhBAJlZwkBAmZzAQUCY1oEAmh6CAUCZWcCXzEEAmRLCAUCZWcCXzIEAmRWCAUCZWcCXzMEAmRwCAUCZWcCXzQEAmRMCAUCZWcCXzUEAmVICQD8BwQFAmFUAgRidXJuCQDMCAIFAmRWBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRwBQJkVgUDbmlsAwkAAAIFAmVIBQJlSAQCaEEJAQJmYgMJAQEtAQUCaHoJAQEtAQUCZEsAAAQCZ3QIBQJoQQJfMQQCZVMIBQJoQQJfMgQCZ3UJAQJmZgIFAmZhBQJlUwMJAAACBQJndQUCZ3UJAM4IAgUCZEwFAmd0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNaAQtnZXRPbmVUa25WMgICZlcCZlgEAmhxCgACYmQJAPwHBAUCYVQCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJiZAIHQm9vbGVhbgUCYmQJAAIBCQCsAgIJAAMBBQJiZAIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZnUDCQEBIQEJAQJiaAEIBQJjWgZjYWxsZXIDAwkBAmJqAAYJAAACBQJieQUBdAYFAmhxBwQCZ1UJAMwIAgMDCQEBIQEFAmZ1BgkBAmd5AQUCY1oGCQECYVoBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJjWghwYXltZW50cwABBgkBAmFaAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZ1UFAmdVBAJoQgkBAmZWBgUCZlcFAmZYCAUCY1oIcGF5bWVudHMIBQJjWgZjYWxsZXIIBQJjWgxvcmlnaW5DYWxsZXIIBQJjWg10cmFuc2FjdGlvbklkBAJkTAgFAmhCAl8xBAJnZwgFAmhCAl8yCQCUCgIFAmRMBQJnZwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjWgEKcmVmcmVzaERMcAAEAmhDCQELdmFsdWVPckVsc2UCCQCfCAEFAmF0AAAEAmhEAwkAZwIJAGUCBQZoZWlnaHQFAmhDBQJhdwUEdW5pdAkBAmFaAQkAuQkCCQDMCAIJAKQDAQUCYXcJAMwIAgIvIGJsb2NrcyBoYXZlIG5vdCBwYXNzZWQgc2luY2UgdGhlIHByZXZpb3VzIGNhbGwFA25pbAIAAwkAAAIFAmhEBQJoRAQCZm0JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAmFzAgEwCQECYmIBAgtpbnZhbGlkIGRMcAQCaEUJAQJmYgMAAAAAAAAEAmhGCAUCaEUCXzEEAmVTCAUCaEUCXzIEAmZlAwkBAiE9AgUCZm0FAmVTBQJoRgkBAmFaAQISbm90aGluZyB0byByZWZyZXNoCQCUCgIFAmZlCQCmAwEFAmVTCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNaARNnZXRPbmVUa25WMlJFQURPTkxZAgJmVwJoRwQCZHQJANgEAQkBBXZhbHVlAQUCYkEEAmR1CQDYBAEJAQV2YWx1ZQEFAmJCBAJkcwkA2AQBCQEFdmFsdWUBBQJiegQCY0wJAMwIAgkAtgIBCQECYloBBQJkdAkAzAgCCQC2AgEJAQJiWgEFAmR1BQNuaWwEAmVSCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQkA2QQBBQJkcwIQaW52YWxpZCBscCBhc3NldAhxdWFudGl0eQQCY24JAQJjSwEFAmNMBAJjbQkAuAICBQJjbgkAvAIDCQC2AgEFAmhHBQJjbgUCZVIEAmhIAwkAAAIFAmZXBQJkdAAAAwkAAAIFAmZXBQJkdQABCQACAQIUaW52YWxpZCBvdXQgYXNzZXQgaWQEAmhJCQECZUIDBQJjTAUCaEgFAmNtBAJnTAkAuAICCQCRAwIFAmNMBQJoSAUCaEkEAmdNCQCWAwEJAMwIAgAACQDMCAIJAKADAQkAuAICBQJnTAUBZgUDbmlsBAJoSgkBAmNIAgUCZ00FAmJlBAJnZggFAmhKAl8xBAJjSggFAmhKAl8yCQCUCgIFA25pbAkAlAoCBQJnZgUCY0oCY1oBHGdldE9uZVRrblYyV2l0aEJvbnVzUkVBRE9OTFkCAmZXAmhHBAJkdAkA2AQBCQEFdmFsdWUBBQJiQQQCZHUJANgEAQkBBXZhbHVlAQUCYkIEAmRzCQDYBAEJAQV2YWx1ZQEFAmJ6BAJkegkBAmJaAQUCZHQEAmRCCQECYloBBQJkdQQCaEsKAAJiZAkA/AcEBQR0aGlzAhNnZXRPbmVUa25WMlJFQURPTkxZCQDMCAIFAmZXCQDMCAIFAmhHBQNuaWwFA25pbAMJAAECBQJiZAIKKEludCwgSW50KQUCYmQJAAIBCQCsAgIJAAMBBQJiZAIfIGNvdWxkbid0IGJlIGNhc3QgdG8gKEludCwgSW50KQQCZ2YIBQJoSwJfMQQCY0oIBQJoSwJfMgQCZWcJAQJkbgQCAAUCZHMFAmhHBQR0aGlzBAJkSggFAmVnAl8xBAJkSwgFAmVnAl8yBAJoTAkAZAIFAmRKBQJkSwQCZlUDCQAAAgUCaEwAAAMJAAACBQJnZgAAAAAJAAIBAhdib251cyBjYWxjdWxhdGlvbiBlcnJvcgkAawMJAGUCBQJnZgUCaEwFAWEFAmhMCQCUCgIFA25pbAkAlQoDBQJnZgUCY0oFAmZVAmNaAQlnZXROb0xlc3MCAmhNAmhOBAJlZwkBAmZzAQUCY1oEAmRKCAUCZWcCXzEEAmRLCAUCZWcCXzIEAmRWCAUCZWcCXzMEAmRwCAUCZWcCXzQEAmRMCAUCZWcCXzUDCQBmAgUCaE0FAmRKCQACAQkArAICCQCsAgIJAKwCAgIJRmFpbGVkOiAgCQCkAwEFAmRKAgMgPCAJAKQDAQUCaE0DCQBmAgUCaE4FAmRLCQACAQkArAICCQCsAgIJAKwCAgIIRmFpbGVkOiAJAKQDAQUCZEsCAyA8IAkApAMBBQJoTgQCZmEJAQJlVAMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZmEFAmZhBAJoTwkA/AcEBQJhVAIEYnVybgkAzAgCBQJkVgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkcAUCZFYFA25pbAMJAAACBQJoTwUCaE8EAmhQCQECZmIDCQEBLQEFAmRKCQEBLQEFAmRLAAAEAmd0CAUCaFACXzEEAmVTCAUCaFACXzIEAmd1CQECZmYCBQJmYQUCZVMDCQAAAgUCZ3UFAmd1CQDOCAIFAmRMBQJndAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjWgENdW5zdGFrZUFuZEdldAECY0kEAmhRAwkBAiE9AgkAkAMBCAUCY1oIcGF5bWVudHMAAAkAAgECDU5vIHBtbnRzIGV4cGQGAwkAAAIFAmhRBQJoUQQCaFIJAQJiRQAEAmhnBQJiegQCaFMJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmhSBQFEAgpXciBzdCBhZGRyBAJmYQkBAmVUAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJmYQUCZmEEAmhUCQD8BwQFAmhTAgd1bnN0YWtlCQDMCAIJANgEAQUCaGcJAMwIAgUCY0kFA25pbAUDbmlsAwkAAAIFAmhUBQJoVAQCZWcJAQJkbgQJANgEAQgFAmNaDXRyYW5zYWN0aW9uSWQJANgEAQUCaGcFAmNJCAUCY1oGY2FsbGVyBAJkSggFAmVnAl8xBAJkSwgFAmVnAl8yBAJkeAkBDXBhcnNlSW50VmFsdWUBCAUCZWcCXzkEAmRMCAUCZWcDXzEwBAJmdQMJAQEhAQkBAmJoAQgFAmNaBmNhbGxlcgMJAQJiagAGCQAAAgUCYnkFAXQHBAJoVQMFAmZ1CQACAQkArAICAglCbG9ja2VkOiAJAKQDAQUCZHgGAwkAAAIFAmhVBQJoVQQCaFYJAPwHBAUCYVQCBGJ1cm4JAMwIAgUCY0kFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCaGcFAmNJBQNuaWwDCQAAAgUCaFYFAmhWBAJoVwkBAmZiAwkBAS0BBQJkSgkBAS0BBQJkSwAABAJndAgFAmhXAl8xBAJlUwgFAmhXAl8yBAJndQkBAmZmAgUCZmEFAmVTAwkAAAIFAmd1BQJndQkAzggCBQJkTAUCZ3QJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1oBE3Vuc3Rha2VBbmRHZXROb0xlc3MDAmhYAmhZAmhOBAJmdQMJAQEhAQkBAmJoAQgFAmNaBmNhbGxlcgMJAQJiagAGCQAAAgUCYnkFAXQHBAJnVQkAzAgCAwkBASEBBQJmdQYJAAIBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJjWghwYXltZW50cwAABgkAAgECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmdVBQJnVQQCZmEJAQJlVAMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZmEFAmZhBAJoVAkA/AcEBQJiRwIHdW5zdGFrZQkAzAgCCQDYBAEFAmJ6CQDMCAIFAmhYBQNuaWwFA25pbAMJAAACBQJoVAUCaFQEAmhaCQECZG4ECQDYBAEIBQJjWg10cmFuc2FjdGlvbklkCQDYBAEFAmJ6BQJoWAgFAmNaBmNhbGxlcgQCZEoIBQJoWgJfMQQCZEsIBQJoWgJfMgQCZEwIBQJoWgNfMTAEAmlhCQDMCAIDCQBnAgUCZEoFAmhZBgkAAgEJALkJAgkAzAgCAixhbW91bnQgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmhZBQNuaWwCAAkAzAgCAwkAZwIFAmRLBQJoTgYJAAIBCQC5CQIJAMwIAgIrcHJpY2UgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmhOBQNuaWwCAAUDbmlsAwkAAAIFAmlhBQJpYQQCaE8JAPwHBAUCYVQCBGJ1cm4JAMwIAgUCaFgFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYnoFAmhYBQNuaWwDCQAAAgUCaE8FAmhPBAJpYgkBAmZiAwkBAS0BBQJkSgkBAS0BBQJkSwAABAJndAgFAmliAl8xBAJlUwgFAmliAl8yBAJndQkBAmZmAgUCZmEFAmVTAwkAAAIFAmd1BQJndQkAzggCBQJkTAUCZ3QJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1oBFXVuc3Rha2VBbmRHZXRPbmVUa25WMgMCaFgCZlcCZlgEAmhxCgACYmQJAPwHBAUCYVQCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJiZAIHQm9vbGVhbgUCYmQJAAIBCQCsAgIJAAMBBQJiZAIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZnUDCQEBIQEJAQJiaAEIBQJjWgZjYWxsZXIDAwkBAmJqAAYJAAACBQJieQUBdAYFAmhxBwQCZ1UJAMwIAgMDCQEBIQEFAmZ1BgkBAmd5AQUCY1oGCQECYVoBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJjWghwYXltZW50cwAABgkBAmFaAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZ1UFAmdVBAJoUgkBAmJFAAQCaGcFAmJ6BAJoUwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCaFIFAUQCCldyIHN0IGFkZHIEAmRyCAUCY1oGY2FsbGVyBAJpYwUEdGhpcwQCaFQJAPwHBAUCaFMCD3Vuc3Rha2VJTlRFUk5BTAkAzAgCBQJoZwkAzAgCBQJoWAkAzAgCCAUCZHIFYnl0ZXMJAMwIAggFAmljBWJ5dGVzBQNuaWwFA25pbAMJAAACBQJoVAUCaFQEAmlkCQECZlYGBQJmVwUCZlgJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmhnBQJoWAUDbmlsCAUCY1oGY2FsbGVyCAUCY1oMb3JpZ2luQ2FsbGVyCAUCY1oNdHJhbnNhY3Rpb25JZAQCZEwIBQJpZAJfMQQCZ2cIBQJpZAJfMgkAlAoCBQJkTAUCZ2cJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1oBHHB1dE9uZVRrblYyV2l0aEJvbnVzUkVBRE9OTFkCAmllAmlmBAJpZwkBAmZBBQUCaWUFAmlmAgACAAYEAmZQCAUCaWcCXzEEAmRMCAUCaWcCXzIEAmNKCAUCaWcCXzMEAmZVCAUCaWcCXzQJAJQKAgUDbmlsCQCVCgMFAmZQBQJjSgUCZlUCY1oBIXB1dE9uZVRrblYyV2l0aG91dFRha2VGZWVSRUFET05MWQICaWUCaWYEAmloCQECZkEFBQJpZQUCaWYCAAIABwQCZlAIBQJpaAJfMQQCZEwIBQJpaAJfMgQCY0oIBQJpaAJfMwQCZlUIBQJpaAJfNAkAlAoCBQNuaWwJAJUKAwUCZlAFAmNKBQJmVQJjWgEIYWN0aXZhdGUCAmlpAmlqAwkBAiE9AgkApQgBCAUCY1oGY2FsbGVyCQClCAEFAmFUCQACAQIGZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFrAAUCaWkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFsAAUCaWoJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFtAAkApAMBBQFsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhbgEFBmhlaWdodAkApAMBBQFsBQNuaWwCB3N1Y2Nlc3MCY1oBHGdldFBvb2xDb25maWdXcmFwcGVyUkVBRE9OTFkACQCUCgIFA25pbAkBAmJtAAJjWgEcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQECY2EJAJQKAgUDbmlsCQECYloBBQJjYQJjWgEZY2FsY1ByaWNlc1dyYXBwZXJSRUFET05MWQMCY3QCY3UCY3kEAmlrCQECY3gDBQJjdAUCY3UFAmN5CQCUCgIFA25pbAkAzAgCCQCmAwEJAJEDAgUCaWsAAAkAzAgCCQCmAwEJAJEDAgUCaWsAAQkAzAgCCQCmAwEJAJEDAgUCaWsAAgUDbmlsAmNaARZmcm9tWDE4V3JhcHBlclJFQURPTkxZAgFOAmlsCQCUCgIFA25pbAkBAU0CCQCnAwEFAU4FAmlsAmNaARR0b1gxOFdyYXBwZXJSRUFET05MWQIBSgFLCQCUCgIFA25pbAkApgMBCQEBSQIFAUoFAUsCY1oBHmNhbGNQcmljZUJpZ0ludFdyYXBwZXJSRUFET05MWQICY2MCY2QJAJQKAgUDbmlsCQCmAwEJAQJjYgIJAKcDAQUCY2MJAKcDAQUCY2QCY1oBI2VzdGltYXRlUHV0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZCQJkbwJjaQJkTgJkTwJkUAJkUQJpbQJkUgJkUwkAlAoCBQNuaWwJAQJkTQ0FAmRvBQJjaQUCZE4FAmRPBQJkUAUCZFEFAmltBQJkUgUCZFMGBwAAAgACY1oBI2VzdGltYXRlR2V0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZBAJkbwJpbgJkcQJpbQQCZWcJAQJkbgQFAmRvBQJpbgUCZHEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmltCQCUCgIFA25pbAkAnAoKCAUCZWcCXzEIBQJlZwJfMggFAmVnAl8zCAUCZWcCXzQIBQJlZwJfNQgFAmVnAl82CAUCZWcCXzcJAKYDAQgFAmVnAl84CAUCZWcCXzkIBQJlZwNfMTACY1oBCWNoYW5nZUFtcAAEAmlvCQD8BwQFAmFUAhpnZXRDaGFuZ2VBbXBDb25maWdSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsBAJpcAQCYVAFAmlvAwkAAQIFAmFQAglMaXN0W0FueV0EAmlxBQJhUAkAlQoDCgACYmQJAJEDAgUCaXEAAAMJAAECBQJiZAIDSW50BQJiZAkAAgEJAKwCAgkAAwEFAmJkAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQKAAJiZAkAkQMCBQJpcQABAwkAAQIFAmJkAgNJbnQFAmJkCQACAQkArAICCQADAQUCYmQCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAoAAmJkCQCRAwIFAmlxAAIDCQABAgUCYmQCA0ludAUCYmQJAAIBCQCsAgIJAAMBBQJiZAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50CQECYVoBAhJpbnZhbGlkIGVudHJ5IHR5cGUEAmlyCAUCaXACXzEEAmlzCAUCaXACXzIEAml0CAUCaXACXzMEAml1CQENcGFyc2VJbnRWYWx1ZQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQJhbQAEAml2CQBkAgUCaXUFAmlzBAJpdwMJAGYCAAAFAmlzAwkAZgIFAml0BQJpdgUCaXQFAml2AwkAZgIFAml2BQJpdAUCaXQFAml2BAJpeAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYXAAAAAEAml5CQBkAgUCaXgFAmlyBAJnVQkAzAgCAwkAZgIFBmhlaWdodAUCaXkGCQECYVoBAhd0cnkgYWdhaW4gaW4gZmV3IGJsb2NrcwkAzAgCAwkBAiE9AgUCaXUFAml3BgkBAmFaAQIWYWxyZWFkeSByZWFjaGVkIHRhcmdldAUDbmlsAwkAAAIFAmdVBQJnVQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFwAAUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhbQAJAKQDAQUCaXcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFuAQUGaGVpZ2h0CQCkAwEFAml3BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAml6AQJpQQAEAmlCBAJhUAkBAmd2AAMJAAECBQJhUAIKQnl0ZVZlY3RvcgQCZ3oFAmFQBQJnegMJAAECBQJhUAIEVW5pdAgFAml6D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yBAJhUAUCaXoDCQABAgUCYVACBU9yZGVyBAJmaQUCYVAEAmlDCQECYmsABAJpRAMJAQJnRwAJAJQKAgYCAAkBAmZoAQUCZmkEAmFLCAUCaUQCXzEEAmFMCAUCaUQCXzIEAmFNCQD0AwMIBQJmaQlib2R5Qnl0ZXMJAJEDAggFAmZpBnByb29mcwABBQJpQwMDBQJhSwUCYU0HBgkBAmFKAwUCYUsFAmFMBQJhTQMJAAECBQJhUAIUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAmFVBQJhUAMJAPQDAwgFAml6CWJvZHlCeXRlcwkAkQMCCAUCaXoGcHJvb2ZzAAAFAmlCBgQCaUUJAPYDAQkBBXZhbHVlAQgFAmFVBnNjcmlwdAQCaUYJANsEAQkBBXZhbHVlAQkAnQgCBQJhVAkBAmFGAAQCaUcJAPEHAQUEdGhpcwMJAAACBQJpRgUCaUUJAQIhPQIFAmlHBQJpRQcJAPQDAwgFAml6CWJvZHlCeXRlcwkAkQMCCAUCaXoGcHJvb2ZzAAAFAmlC7v3f4Q==", "height": 3187677, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HrUNq8fAZmz84rG89pdDkgQ1Q7ng9kB4imWr4FPrDzNR Next: none Diff:
OldNewDifferences
174174 func aH (aI) = ("%s%s__skipOrderValidation__" + aI)
175175
176176
177-func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
177+func aJ (aK,aL,aM) = throw((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " matcherValid=") + toString(aM)))
178178
179179
180-func aO (aP) = {
181- let aQ = addressFromString(aP)
182- if ($isInstanceOf(aQ, "Address"))
180+func aN (aO) = {
181+ let aP = addressFromString(aO)
182+ if ($isInstanceOf(aP, "Address"))
183183 then {
184- let aR = aQ
185- aR
184+ let aQ = aP
185+ aQ
186186 }
187187 else this
188188 }
189189
190190
191-func aS () = {
192- let aT = {
193- let aQ = getString(Z())
194- if ($isInstanceOf(aQ, "String"))
191+func aR () = {
192+ let aS = {
193+ let aP = getString(Z())
194+ if ($isInstanceOf(aP, "String"))
195195 then {
196- let aU = aQ
197- aO(aU)
196+ let aT = aP
197+ aN(aT)
198198 }
199199 else this
200200 }
201- let aQ = getString(aT, ab())
202- if ($isInstanceOf(aQ, "String"))
201+ let aP = getString(aS, ab())
202+ if ($isInstanceOf(aP, "String"))
203203 then {
204- let aV = aQ
205- aO(aV)
204+ let aU = aP
205+ aN(aU)
206206 }
207207 else this
208208 }
209209
210210
211-func aW (aX,aY) = valueOrErrorMessage(getString(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " not defined"], ""))
211+func aV (aW,aX) = valueOrErrorMessage(getString(aW, aX), makeString(["mandatory ", toString(aW), ".", aX, " not defined"], ""))
212212
213213
214-func aZ (aX,aY) = valueOrErrorMessage(getInteger(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " not defined"], ""))
214+func aY (aW,aX) = valueOrErrorMessage(getInteger(aW, aX), makeString(["mandatory ", toString(aW), ".", aX, " not defined"], ""))
215215
216216
217-func ba (bb) = throw(makeString(["lp_stable.ride:", bb], " "))
217+func aZ (ba) = throw(makeString(["lp_stable.ride:", ba], " "))
218218
219219
220-func bc (bb) = makeString(["lp_stable.ride:", bb], " ")
220+func bb (ba) = makeString(["lp_stable.ride:", ba], " ")
221221
222222
223-let aU = addressFromStringValue(aW(this, Z()))
223+let aT = addressFromStringValue(aV(this, Z()))
224224
225-let bd = {
226- let be = invoke(aU, "getInFeeREADONLY", [toString(this)], nil)
227- if ($isInstanceOf(be, "Int"))
228- then be
229- else throw(($getType(be) + " couldn't be cast to Int"))
225+let bc = {
226+ let bd = invoke(aT, "getInFeeREADONLY", [toString(this)], nil)
227+ if ($isInstanceOf(bd, "Int"))
228+ then bd
229+ else throw(($getType(bd) + " couldn't be cast to Int"))
230230 }
231231
232-let bf = {
233- let be = invoke(aU, "getOutFeeREADONLY", [toString(this)], nil)
234- if ($isInstanceOf(be, "Int"))
235- then be
236- else throw(($getType(be) + " couldn't be cast to Int"))
232+let be = {
233+ let bd = invoke(aT, "getOutFeeREADONLY", [toString(this)], nil)
234+ if ($isInstanceOf(bd, "Int"))
235+ then bd
236+ else throw(($getType(bd) + " couldn't be cast to Int"))
237237 }
238238
239-func bg (bh) = makeString(["%s%s", "whitelisted", toString(bh)], o)
239+func bf (bg) = makeString(["%s%s", "whitelisted", toString(bg)], o)
240240
241241
242-func bi (bh) = valueOrElse(getBoolean(aU, bg(bh)), false)
242+func bh (bg) = valueOrElse(getBoolean(aT, bf(bg)), false)
243243
244244
245-let bj = aW(this, am())
245+let bi = aV(this, am())
246246
247-func bk () = valueOrElse(getBoolean(aU, aE()), false)
247+func bj () = valueOrElse(getBoolean(aT, aE()), false)
248248
249249
250-func bl () = fromBase58String(aW(aU, ay()))
250+func bk () = fromBase58String(aV(aT, ay()))
251251
252252
253-let bm = addressFromStringValue(aW(aU, aG()))
253+let bl = addressFromStringValue(aV(aT, aG()))
254254
255-func bn () = {
256- let bo = aW(this, ak())
257- let bp = aW(this, al())
258- let bq = aZ(aU, aC(bp))
259- let aA = aZ(aU, aC(bo))
260- split(aW(aU, az(toString(aA), toString(bq))), o)
255+func bm () = {
256+ let bn = aV(this, ak())
257+ let bo = aV(this, al())
258+ let bp = aY(aT, aC(bo))
259+ let aA = aY(aT, aC(bn))
260+ split(aV(aT, az(toString(aA), toString(bp))), o)
261261 }
262262
263263
264-func br (bs) = if ((bs == k))
264+func bq (br) = if ((br == k))
265265 then unit
266- else fromBase58String(bs)
266+ else fromBase58String(br)
267267
268268
269-func bt (bs) = if ((bs == unit))
269+func bs (br) = if ((br == unit))
270270 then k
271- else toBase58String(value(bs))
271+ else toBase58String(value(br))
272272
273273
274-func bu (bv) = $Tuple7(addressFromStringValue(bv[u]), parseIntValue(bv[v]), fromBase58String(bv[w]), br(bv[x]), br(bv[y]), parseIntValue(bv[z]), parseIntValue(bv[A]))
274+func bt (bu) = $Tuple7(addressFromStringValue(bu[u]), parseIntValue(bu[v]), fromBase58String(bu[w]), bq(bu[x]), bq(bu[y]), parseIntValue(bu[z]), parseIntValue(bu[A]))
275275
276276
277-let bw = bu(bn())
277+let bv = bt(bm())
278278
279-let bx = bw
279+let bw = bv
280280
281-let by = bx._1
281+let bx = bw._1
282282
283-let bz = bx._2
283+let by = bw._2
284284
285-let bA = bx._3
285+let bz = bw._3
286286
287-let bB = bx._4
287+let bA = bw._4
288288
289-let bC = bx._5
289+let bB = bw._5
290290
291-let bD = bx._6
291+let bC = bw._6
292292
293-let bE = bx._7
293+let bD = bw._7
294294
295-func bF () = split(aW(aU, ax()), o)
295+func bE () = split(aV(aT, ax()), o)
296296
297297
298-let bG = bF()
298+let bF = bE()
299299
300-let bH = valueOrErrorMessage(addressFromString(bG[D]), "Invalid staking contract address")
300+let bG = valueOrErrorMessage(addressFromString(bF[D]), "Invalid staking contract address")
301301
302-let bI = valueOrErrorMessage(addressFromString(bG[F]), "Invalid slipage contract address")
302+let bH = valueOrErrorMessage(addressFromString(bF[F]), "Invalid slipage contract address")
303303
304-let bJ = valueOrErrorMessage(addressFromString(bG[G]), "Invalid gwx contract address")
304+let bI = valueOrErrorMessage(addressFromString(bF[G]), "Invalid gwx contract address")
305305
306-let bK = valueOrErrorMessage(addressFromString(bG[E]), "Invalid gwx contract address")
306+let bJ = valueOrErrorMessage(addressFromString(bF[E]), "Invalid gwx contract address")
307307
308-func bL (bM,bN,bO,bP,bQ,bR,bS,bT,bU,bV) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(bR), toString(bS), toString(bT), toString(bU), toString(bV)], o)
308+func bK (bL,bM,bN,bO,bP,bQ,bR,bS,bT,bU) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(bR), toString(bS), toString(bT), toString(bU)], o)
309309
310310
311-func bW (bX,bY,bZ,bP,bS,bT) = makeString(["%d%d%d%d%d%d", toString(bX), toString(bY), toString(bZ), toString(bP), toString(bS), toString(bT)], o)
311+func bV (bW,bX,bY,bO,bR,bS) = makeString(["%d%d%d%d%d%d", toString(bW), toString(bX), toString(bY), toString(bO), toString(bR), toString(bS)], o)
312312
313313
314-func ca (cb) = if ((cb == "WAVES"))
314+func bZ (ca) = if ((ca == "WAVES"))
315315 then wavesBalance(this).available
316- else assetBalance(this, fromBase58String(cb))
316+ else assetBalance(this, fromBase58String(ca))
317317
318318
319-func cc (cd,ce) = fraction(cd, c, ce)
319+func cb (cc,cd) = fraction(cc, c, cd)
320320
321321
322-func cf (cd,ce,Q) = fraction(cd, c, ce, Q)
322+func ce (cc,cd,Q) = fraction(cc, c, cd, Q)
323323
324324
325-func cg (ch,ci,cj) = {
326- let ck = fraction((ch - ci), b, ci)
327- let cl = ((cj - X(ck)) > d)
328- if (!(cl))
329- then throw(("Big slpg: " + toString(ck)))
330- else $Tuple2(cl, min([ch, ci]))
325+func cf (cg,ch,ci) = {
326+ let cj = fraction((cg - ch), b, ch)
327+ let ck = ((ci - X(cj)) > d)
328+ if (!(ck))
329+ then throw(("Big slpg: " + toString(cj)))
330+ else $Tuple2(ck, min([cg, ch]))
331331 }
332332
333333
334-func cm (cn,co,cp) = {
335- let ck = fraction(co, b, cn)
336- let cq = (cp > ck)
337- if (if (cq)
334+func cl (cm,cn,co) = {
335+ let cj = fraction(cn, b, cm)
336+ let cp = (co > cj)
337+ if (if (cp)
338338 then true
339- else (co > cn))
340- then throw(((((((toString(co) + " ") + toString(cn)) + " ") + toString(ck)) + " ") + toString(cp)))
341- else cq
339+ else (cn > cm))
340+ then throw(((((((toString(cn) + " ") + toString(cm)) + " ") + toString(cj)) + " ") + toString(co)))
341+ else cp
342342 }
343343
344344
345-func cr (cs,ct,cu,cv) = {
345+func cq (cr,cs,ct,cu) = {
346+ let cv = I(ct, cr)
346347 let cw = I(cu, cs)
347- let cx = I(cv, ct)
348- cc(cx, cw)
348+ cb(cw, cv)
349349 }
350350
351351
352-func cy (cu,cv,cz) = {
352+func cx (ct,cu,cy) = {
353+ let cz = bC
353354 let cA = bD
354- let cB = bE
355- let cC = cr(cA, cB, cu, cv)
356- let ce = I(cu, cA)
357- let cd = I(cv, cB)
358- let cD = I(cz, a)
359- let cE = cc(ce, cD)
360- let cF = cc(cd, cD)
361-[cC, cE, cF]
355+ let cB = cq(cz, cA, ct, cu)
356+ let cd = I(ct, cz)
357+ let cc = I(cu, cA)
358+ let cC = I(cy, a)
359+ let cD = cb(cd, cC)
360+ let cE = cb(cc, cC)
361+[cB, cD, cE]
362362 }
363363
364364
365-func cG (cu,cv,cz) = {
366- let cH = cy(cu, cv, cz)
367-[M(cH[0], a), M(cH[1], a), M(cH[2], a)]
365+func cF (ct,cu,cy) = {
366+ let cG = cx(ct, cu, cy)
367+[M(cG[0], a), M(cG[1], a), M(cG[2], a)]
368368 }
369369
370370
371-func cI (cJ,ar) = {
372- let cK = if ((ar == 0))
371+func cH (cI,ar) = {
372+ let cJ = if ((ar == 0))
373373 then 0
374- else fraction(cJ, ar, a)
375- $Tuple2((cJ - cK), cK)
374+ else fraction(cI, ar, a)
375+ $Tuple2((cI - cJ), cJ)
376376 }
377377
378378
379-func cL (cM) = {
380- let cN = cM[0]
381- let cO = cM[1]
382- let aV = (cN + cO)
383- if ((aV == e))
379+func cK (cL) = {
380+ let cM = cL[0]
381+ let cN = cL[1]
382+ let aU = (cM + cN)
383+ if ((aU == e))
384384 then e
385385 else {
386- let aR = parseIntValue(bj)
387- let cP = (aR * 2)
388- let cH = fraction(cN, cO, f)
389- let cQ = fraction(cH, i, f)
390- let cR = fraction(toBigInt(cP), aV, f)
391- let cS = toBigInt((cP - 1))
392- func cT (cU) = {
393- let cV = fraction(cU, cU, f)
394- let cW = fraction(cV, cU, f)
395- let cX = fraction(cW, f, cQ)
396- fraction((cR + fraction(cX, g, f)), cU, (fraction(cS, cU, f) + fraction(h, cX, f)))
386+ let aQ = parseIntValue(bi)
387+ let cO = (aQ * 2)
388+ let cG = fraction(cM, cN, f)
389+ let cP = fraction(cG, i, f)
390+ let cQ = fraction(toBigInt(cO), aU, f)
391+ let cR = toBigInt((cO - 1))
392+ func cS (cT) = {
393+ let cU = fraction(cT, cT, f)
394+ let cV = fraction(cU, cT, f)
395+ let cW = fraction(cV, f, cP)
396+ fraction((cQ + fraction(cW, g, f)), cT, (fraction(cR, cT, f) + fraction(h, cW, f)))
397397 }
398398
399- func cY (cZ,da) = if (cZ._2)
400- then cZ
399+ func cX (cY,cZ) = if (cY._2)
400+ then cY
401401 else {
402- let cU = cZ._1
403- let db = cT(cU)
404- let dc = (db - value(cU))
405- let dd = if ((e > dc))
406- then -(dc)
407- else dc
408- if ((f >= dd))
409- then $Tuple2(db, true)
410- else $Tuple2(db, false)
402+ let cT = cY._1
403+ let da = cS(cT)
404+ let db = (da - value(cT))
405+ let dc = if ((e > db))
406+ then -(db)
407+ else db
408+ if ((f >= dc))
409+ then $Tuple2(da, true)
410+ else $Tuple2(da, false)
411411 }
412412
413- let de = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
414- let df = {
415- let dg = de
416- let dh = size(dg)
417- let di = $Tuple2(aV, false)
418- func dj (dk,dl) = if ((dl >= dh))
419- then dk
420- else cY(dk, dg[dl])
413+ let dd = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
414+ let de = {
415+ let df = dd
416+ let dg = size(df)
417+ let dh = $Tuple2(aU, false)
418+ func di (dj,dk) = if ((dk >= dg))
419+ then dj
420+ else cX(dj, df[dk])
421421
422- func dm (dk,dl) = if ((dl >= dh))
423- then dk
422+ func dl (dj,dk) = if ((dk >= dg))
423+ then dj
424424 else throw("List size exceeds 17")
425425
426- dm(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(di, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17)
426+ dl(di(di(di(di(di(di(di(di(di(di(di(di(di(di(di(di(di(dh, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17)
427427 }
428- let cU = df._1
429- let dn = df._2
430- if (dn)
431- then cU
432- else throw(("D calculation error, D = " + toString(cU)))
428+ let cT = de._1
429+ let dm = de._2
430+ if (dm)
431+ then cT
432+ else throw(("D calculation error, D = " + toString(cT)))
433433 }
434434 }
435435
436436
437-func do (dp,dq,dr,ds) = {
438- let dt = bA
437+func dn (do,dp,dq,dr) = {
438+ let ds = bz
439+ let dt = toBase58String(value(bA))
439440 let du = toBase58String(value(bB))
440- let dv = toBase58String(value(bC))
441+ let dv = bC
441442 let dw = bD
442- let dx = bE
443- let dy = toString(bz)
444- let dz = valueOrErrorMessage(assetInfo(dt), "Wrong LP id").quantity
445- if ((toBase58String(dt) != dq))
443+ let dx = toString(by)
444+ let dy = valueOrErrorMessage(assetInfo(ds), "Wrong LP id").quantity
445+ if ((toBase58String(ds) != dp))
446446 then throw("Wrong pmt asset")
447447 else {
448- let dA = ca(du)
449- let dB = I(dA, dw)
450- let dC = ca(dv)
451- let dD = I(dC, dx)
452- let dE = cc(dD, dB)
453- let dF = M(dE, a)
454- let dG = I(dr, a)
455- let dH = I(dz, a)
456- let dI = fraction(dB, dG, dH)
457- let dJ = fraction(dD, dG, dH)
448+ let dz = bZ(dt)
449+ let dA = I(dz, dv)
450+ let dB = bZ(du)
451+ let dC = I(dB, dw)
452+ let dD = cb(dC, dA)
453+ let dE = M(dD, a)
454+ let dF = I(dq, a)
455+ let dG = I(dy, a)
456+ let dH = fraction(dA, dF, dG)
457+ let dI = fraction(dC, dF, dG)
458+ let dJ = P(dH, dv, FLOOR)
458459 let dK = P(dI, dw, FLOOR)
459- let dL = P(dJ, dx, FLOOR)
460- let dM = if ((dp == ""))
460+ let dL = if ((do == ""))
461461 then nil
462- else [ScriptTransfer(ds, dK, if ((du == "WAVES"))
462+ else [ScriptTransfer(dr, dJ, if ((dt == "WAVES"))
463463 then unit
464- else fromBase58String(du)), ScriptTransfer(ds, dL, if ((dv == "WAVES"))
464+ else fromBase58String(dt)), ScriptTransfer(dr, dK, if ((du == "WAVES"))
465465 then unit
466- else fromBase58String(dv)), StringEntry(aj(toString(ds), dp), bW(dK, dL, dr, dF, height, lastBlock.timestamp)), IntegerEntry(ac(), dF), IntegerEntry(ad(height, lastBlock.timestamp), dF)]
467- $Tuple10(dK, dL, du, dv, dA, dC, dz, dE, dy, dM)
466+ else fromBase58String(du)), StringEntry(aj(toString(dr), do), bV(dJ, dK, dq, dE, height, lastBlock.timestamp)), IntegerEntry(ac(), dE), IntegerEntry(ad(height, lastBlock.timestamp), dE)]
467+ $Tuple10(dJ, dK, dt, du, dz, dB, dy, dD, dx, dL)
468468 }
469469 }
470470
471471
472-func dN (dp,cj,dO,dP,dQ,dR,ds,dS,dT,dU,dV,dW,dX) = {
473- let dt = bA
472+func dM (do,ci,dN,dO,dP,dQ,dr,dR,dS,dT,dU,dV,dW) = {
473+ let ds = bz
474+ let dX = toBase58String(value(bA))
474475 let dY = toBase58String(value(bB))
475- let dZ = toBase58String(value(bC))
476+ let dZ = bC
476477 let ea = bD
477- let eb = bE
478- let dy = toString(bz)
479- let ec = valueOrErrorMessage(assetInfo(dt), "Wr lp as").quantity
480- let ed = [if (if ((dP == br(dY)))
481- then (dR == br(dZ))
478+ let dx = toString(by)
479+ let eb = valueOrErrorMessage(assetInfo(ds), "Wr lp as").quantity
480+ let ec = [if (if ((dO == bq(dX)))
481+ then (dQ == bq(dY))
482482 else false)
483483 then true
484- else ba("Invalid amt or price asset passed.")]
485- if ((ed == ed))
484+ else aZ("Invalid amt or price asset passed.")]
485+ if ((ec == ec))
486486 then {
487- let dA = if (dS)
488- then ca(dY)
489- else if (if (dU)
490- then (dX == dY)
487+ let dz = if (dR)
488+ then bZ(dX)
489+ else if (if (dT)
490+ then (dW == dX)
491491 else false)
492- then (ca(dY) - dW)
493- else if (dU)
494- then ca(dY)
495- else (ca(dY) - dO)
496- let dC = if (dS)
497- then ca(dZ)
498- else if (if (dU)
499- then (dX == dZ)
492+ then (bZ(dX) - dV)
493+ else if (dT)
494+ then bZ(dX)
495+ else (bZ(dX) - dN)
496+ let dB = if (dR)
497+ then bZ(dY)
498+ else if (if (dT)
499+ then (dW == dY)
500500 else false)
501- then (ca(dZ) - dW)
502- else if (dU)
503- then ca(dZ)
504- else (ca(dZ) - dQ)
505- let ee = I(dO, ea)
506- let ef = I(dQ, eb)
507- let eg = cc(ef, ee)
508- let dB = I(dA, ea)
509- let dD = I(dC, eb)
510- let co = cL([dB, dD])
511- let eh = if ((ec == 0))
501+ then (bZ(dY) - dV)
502+ else if (dT)
503+ then bZ(dY)
504+ else (bZ(dY) - dP)
505+ let ed = I(dN, dZ)
506+ let ee = I(dP, ea)
507+ let ef = cb(ee, ed)
508+ let dA = I(dz, dZ)
509+ let dC = I(dB, ea)
510+ let cn = cK([dA, dC])
511+ let eg = if ((eb == 0))
512512 then {
513- let cn = cL([(dB + ee), (dD + ef)])
514- let ei = if ((cn > co))
513+ let cm = cK([(dA + ed), (dC + ee)])
514+ let eh = if ((cm > cn))
515515 then true
516516 else throw("D1 should be greater than D0")
517- if ((ei == ei))
517+ if ((eh == eh))
518518 then {
519- let dE = d
520- let ej = d
521- let cD = cn
522- $Tuple5(M(cD, a), M(ee, ea), M(ef, eb), cc((dD + ef), (dB + ee)), ej)
519+ let dD = d
520+ let ei = d
521+ let cC = cm
522+ $Tuple5(M(cC, a), M(ed, dZ), M(ee, ea), cb((dC + ee), (dA + ed)), ei)
523523 }
524524 else throw("Strict value is not equal to itself.")
525525 }
526526 else {
527- let dE = cc(dD, dB)
528- let ek = fraction(X((dE - eg)), c, dE)
529- let ej = I(cj, a)
530- if (if (if (dV)
531- then (dE != d)
527+ let dD = cb(dC, dA)
528+ let ej = fraction(X((dD - ef)), c, dD)
529+ let ei = I(ci, a)
530+ if (if (if (dU)
531+ then (dD != d)
532532 else false)
533- then (ek > ej)
533+ then (ej > ei)
534534 else false)
535- then throw(((("Price slippage " + toString(ek)) + " > ") + toString(ej)))
535+ then throw(((("Price slippage " + toString(ej)) + " > ") + toString(ei)))
536536 else {
537- let el = I(ec, a)
538- let em = fraction(ee, cf(dD, dB, CEILING), c, CEILING)
539- let en = fraction(ef, c, cf(dD, dB, FLOOR), CEILING)
540- let eo = if ((em > ef))
541- then $Tuple2(en, ef)
542- else $Tuple2(ee, em)
543- let ep = eo._1
544- let eq = eo._2
545- let cn = cL([(dB + ep), (dD + eq)])
546- let ei = if ((cn > co))
537+ let ek = I(eb, a)
538+ let el = fraction(ed, ce(dC, dA, CEILING), c, CEILING)
539+ let em = fraction(ee, c, ce(dC, dA, FLOOR), CEILING)
540+ let en = if ((el > ee))
541+ then $Tuple2(em, ee)
542+ else $Tuple2(ed, el)
543+ let eo = en._1
544+ let ep = en._2
545+ let cm = cK([(dA + eo), (dC + ep)])
546+ let eh = if ((cm > cn))
547547 then true
548548 else throw("D1 should be greater than D0")
549- if ((ei == ei))
549+ if ((eh == eh))
550550 then {
551- let cD = fraction(el, (cn - co), co)
552- $Tuple5(P(cD, a, FLOOR), P(ep, ea, CEILING), P(eq, eb, CEILING), dE, ej)
551+ let cC = fraction(ek, (cm - cn), cn)
552+ $Tuple5(P(cC, a, FLOOR), P(eo, dZ, CEILING), P(ep, ea, CEILING), dD, ei)
553553 }
554554 else throw("Strict value is not equal to itself.")
555555 }
556556 }
557- let er = eh._1
558- let es = eh._2
559- let et = eh._3
560- let dF = M(eh._4, a)
561- let eu = M(eh._5, a)
562- if ((0 >= er))
557+ let eq = eg._1
558+ let er = eg._2
559+ let es = eg._3
560+ let dE = M(eg._4, a)
561+ let et = M(eg._5, a)
562+ if ((0 >= eq))
563563 then throw("LP <= 0")
564564 else {
565- let ev = if (!(dT))
565+ let eu = if (!(dS))
566566 then 0
567- else er
568- let ew = (dO - es)
569- let ex = (dQ - et)
570- let ey = if (if (dU)
571- then (dX == dY)
567+ else eq
568+ let ev = (dN - er)
569+ let ew = (dP - es)
570+ let ex = if (if (dT)
571+ then (dW == dX)
572572 else false)
573- then $Tuple2(dW, 0)
574- else if (if (dU)
575- then (dX == dZ)
573+ then $Tuple2(dV, 0)
574+ else if (if (dT)
575+ then (dW == dY)
576576 else false)
577- then $Tuple2(0, dW)
578- else $Tuple2(es, et)
579- let ez = ey._1
580- let eA = ey._2
581- let eB = [IntegerEntry(ac(), dF), IntegerEntry(ad(height, lastBlock.timestamp), dF), StringEntry(ag(ds, dp), bL(ez, eA, ev, dF, cj, eu, height, lastBlock.timestamp, ew, ex))]
582- $Tuple13(er, ev, dF, dA, dC, ec, dt, dy, eB, ew, ex, dP, dR)
577+ then $Tuple2(0, dV)
578+ else $Tuple2(er, es)
579+ let ey = ex._1
580+ let ez = ex._2
581+ let eA = [IntegerEntry(ac(), dE), IntegerEntry(ad(height, lastBlock.timestamp), dE), StringEntry(ag(dr, do), bK(ey, ez, eu, dE, ci, et, height, lastBlock.timestamp, ev, ew))]
582+ $Tuple13(eq, eu, dE, dz, dB, eb, ds, dx, eA, ev, ew, dO, dQ)
583583 }
584584 }
585585 else throw("Strict value is not equal to itself.")
586586 }
587587
588588
589-func eC (cM,da,eD) = {
590- let eE = g
591- let eF = cM[if ((da == 0))
589+func eB (cL,cZ,eC) = {
590+ let eD = g
591+ let eE = cL[if ((cZ == 0))
592592 then 1
593593 else 0]
594- let eG = parseBigIntValue(m)
595- let aR = (parseBigIntValue(bj) * eG)
596- let aV = eF
597- let cP = (aR * eE)
598- let eH = (((((eD * eD) / (eF * eE)) * eD) * eG) / (cP * eE))
599- let eI = ((aV + ((eD * eG) / cP)) - eD)
600- func cY (cZ,eJ) = {
601- let eK = cZ
602- let eL = eK._1
603- let dn = eK._2
604- if ((dn != unit))
605- then cZ
594+ let eF = parseBigIntValue(m)
595+ let aQ = (parseBigIntValue(bi) * eF)
596+ let aU = eE
597+ let cO = (aQ * eD)
598+ let eG = (((((eC * eC) / (eE * eD)) * eC) * eF) / (cO * eD))
599+ let eH = ((aU + ((eC * eF) / cO)) - eC)
600+ func cX (cY,eI) = {
601+ let eJ = cY
602+ let eK = eJ._1
603+ let dm = eJ._2
604+ if ((dm != unit))
605+ then cY
606606 else {
607- let eM = (((eL * eL) + eH) / ((g * eL) + eI))
608- let eN = Y((eM - value(eL)))
609- if ((f >= eN))
610- then $Tuple2(eM, eJ)
611- else $Tuple2(eM, unit)
607+ let eL = (((eK * eK) + eG) / ((g * eK) + eH))
608+ let eM = Y((eL - value(eK)))
609+ if ((f >= eM))
610+ then $Tuple2(eL, eI)
611+ else $Tuple2(eL, unit)
612612 }
613613 }
614614
615- let de = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
616- let eO = {
617- let dg = de
618- let dh = size(dg)
619- let di = $Tuple2(eD, unit)
620- func dj (dk,dl) = if ((dl >= dh))
621- then dk
622- else cY(dk, dg[dl])
615+ let dd = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
616+ let eN = {
617+ let df = dd
618+ let dg = size(df)
619+ let dh = $Tuple2(eC, unit)
620+ func di (dj,dk) = if ((dk >= dg))
621+ then dj
622+ else cX(dj, df[dk])
623623
624- func dm (dk,dl) = if ((dl >= dh))
625- then dk
624+ func dl (dj,dk) = if ((dk >= dg))
625+ then dj
626626 else throw("List size exceeds 15")
627627
628- dm(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(di, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
628+ dl(di(di(di(di(di(di(di(di(di(di(di(di(di(di(di(dh, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
629629 }
630- let eL = eO._1
631- let dn = eO._2
632- if ((dn != unit))
633- then eL
634- else throw(("Y calculation error, Y = " + toString(eL)))
630+ let eK = eN._1
631+ let dm = eN._2
632+ if ((dm != unit))
633+ then eK
634+ else throw(("Y calculation error, Y = " + toString(eK)))
635635 }
636636
637637
638-func eP (eQ,eR,eS) = {
639- let eT = fraction(cL([L(eQ, toBigInt(bD)), L(eR, toBigInt(bE))]), c, eS)
640- if ((eS == e))
638+func eO (eP,eQ,eR) = {
639+ let eS = fraction(cK([L(eP, toBigInt(bC)), L(eQ, toBigInt(bD))]), c, eR)
640+ if ((eR == e))
641641 then e
642- else eT
642+ else eS
643643 }
644644
645645
646-func eU (eV,eW,eX) = {
647- let eY = (toBigInt(ca(bt(bB))) - eV)
648- let eZ = (toBigInt(ca(bt(bC))) - eW)
649- let fa = (toBigInt(value(assetInfo(bA)).quantity) - eX)
650- let fb = eP(eY, eZ, fa)
651- fb
646+func eT (eU,eV,eW) = {
647+ let eX = (toBigInt(bZ(bs(bA))) - eU)
648+ let eY = (toBigInt(bZ(bs(bB))) - eV)
649+ let eZ = (toBigInt(value(assetInfo(bz)).quantity) - eW)
650+ let fa = eO(eX, eY, eZ)
651+ fa
652652 }
653653
654654
655-func fc (fd,fe,eX) = {
656- let eY = (ca(bt(bB)) + fd)
657- let eZ = (ca(bt(bC)) + fe)
658- let fa = (value(assetInfo(bA)).quantity + eX)
659- let eT = eP(toBigInt(eY), toBigInt(eZ), toBigInt(fa))
660- let ff = [IntegerEntry(at, height), StringEntry(as, toString(eT))]
661- $Tuple2(ff, eT)
655+func fb (fc,fd,eW) = {
656+ let eX = (bZ(bs(bA)) + fc)
657+ let eY = (bZ(bs(bB)) + fd)
658+ let eZ = (value(assetInfo(bz)).quantity + eW)
659+ let eS = eO(toBigInt(eX), toBigInt(eY), toBigInt(eZ))
660+ let fe = [IntegerEntry(at, height), StringEntry(as, toString(eS))]
661+ $Tuple2(fe, eS)
662662 }
663663
664664
665-func fg (fh,eT) = if ((eT >= fh))
665+func ff (fg,eS) = if ((eS >= fg))
666666 then true
667- else ba("updated DLp lower than current DLp")
667+ else aZ("updated DLp lower than current DLp")
668668
669669
670-func fi (fj) = {
671- let eY = ca(bt(bB))
672- let eZ = ca(bt(bC))
673- let fk = fj.amount
674- let fl = fraction(fj.amount, fj.price, a, FLOOR)
675- let fm = if ((fj.orderType == Buy))
676- then $Tuple2(fk, -(fl))
677- else $Tuple2(-(fk), fl)
678- let fd = fm._1
679- let fe = fm._2
680- if (if (if (bk())
670+func fh (fi) = {
671+ let eX = bZ(bs(bA))
672+ let eY = bZ(bs(bB))
673+ let fj = fi.amount
674+ let fk = fraction(fi.amount, fi.price, a, FLOOR)
675+ let fl = if ((fi.orderType == Buy))
676+ then $Tuple2(fj, -(fk))
677+ else $Tuple2(-(fj), fk)
678+ let fc = fl._1
679+ let fd = fl._2
680+ if (if (if (bj())
681681 then true
682- else (bz == s))
682+ else (by == s))
683683 then true
684- else (bz == t))
684+ else (by == t))
685685 then throw("Admin blocked")
686- else if (if ((fj.assetPair.amountAsset != bB))
686+ else if (if ((fi.assetPair.amountAsset != bA))
687687 then true
688- else (fj.assetPair.priceAsset != bC))
688+ else (fi.assetPair.priceAsset != bB))
689689 then throw("Wr assets")
690690 else {
691- let fn = parseBigIntValue(valueOrElse(getString(this, as), "0"))
692- let fo = fc(fd, fe, 0)
693- let fp = fo._1
694- let fq = fo._2
695- let fr = (fq >= fn)
696- let fs = makeString(["dLp=", toString(fn), " dLpNew=", toString(fq), " amountAssetBalance=", toString(eY), " priceAssetBalance=", toString(eZ), " amountAssetBalanceDelta=", toString(fd), " priceAssetBalanceDelta=", toString(fe), " height=", toString(height)], "")
697- $Tuple2(fr, fs)
691+ let fm = parseBigIntValue(valueOrElse(getString(this, as), "0"))
692+ let fn = fb(fc, fd, 0)
693+ let fo = fn._1
694+ let fp = fn._2
695+ let fq = (fp >= fm)
696+ let fr = makeString(["dLp=", toString(fm), " dLpNew=", toString(fp), " amountAssetBalance=", toString(eX), " priceAssetBalance=", toString(eY), " amountAssetBalanceDelta=", toString(fc), " priceAssetBalanceDelta=", toString(fd), " height=", toString(height)], "")
697+ $Tuple2(fq, fr)
698698 }
699699 }
700700
701701
702-func ft (da) = if ((size(da.payments) != 1))
702+func fs (cZ) = if ((size(cZ.payments) != 1))
703703 then throw("1 pmnt exp")
704704 else {
705- let fu = value(da.payments[0])
706- let dq = value(fu.assetId)
707- let dW = fu.amount
708- let eh = do(toBase58String(da.transactionId), toBase58String(dq), dW, da.caller)
709- let dK = eh._1
710- let dL = eh._2
711- let dy = parseIntValue(eh._9)
712- let dM = eh._10
713- let fv = if (!(bi(da.caller)))
714- then if (bk())
705+ let ft = value(cZ.payments[0])
706+ let dp = value(ft.assetId)
707+ let dV = ft.amount
708+ let eg = dn(toBase58String(cZ.transactionId), toBase58String(dp), dV, cZ.caller)
709+ let dJ = eg._1
710+ let dK = eg._2
711+ let dx = parseIntValue(eg._9)
712+ let dL = eg._10
713+ let fu = if (!(bh(cZ.caller)))
714+ then if (bj())
715715 then true
716- else (bz == t)
716+ else (by == t)
717717 else false
718- if (fv)
719- then throw(("Admin blocked: " + toString(dy)))
720- else $Tuple5(dK, dL, dW, dq, dM)
718+ if (fu)
719+ then throw(("Admin blocked: " + toString(dx)))
720+ else $Tuple5(dJ, dK, dV, dp, dL)
721721 }
722722
723723
724-func fw (fx,ai,fy,fz,cj,dT,dU,dV,dW,dX) = {
725- let eh = dN(ai, cj, value(fy).amount, value(fy).assetId, value(fz).amount, value(fz).assetId, fx, (ai == ""), dT, dU, dV, dW, dX)
726- let dy = parseIntValue(eh._8)
727- let fA = if (!(bi(addressFromStringValue(fx))))
728- then if (if (bk())
724+func fv (fw,ai,fx,fy,ci,dS,dT,dU,dV,dW) = {
725+ let eg = dM(ai, ci, value(fx).amount, value(fx).assetId, value(fy).amount, value(fy).assetId, fw, (ai == ""), dS, dT, dU, dV, dW)
726+ let dx = parseIntValue(eg._8)
727+ let fz = if (!(bh(addressFromStringValue(fw))))
728+ then if (if (bj())
729729 then true
730- else (bz == t))
730+ else (by == t))
731731 then true
732- else (bz == r)
732+ else (by == r)
733733 else false
734- if (fA)
735- then throw(("Blocked:" + toString(dy)))
736- else eh
734+ if (fz)
735+ then throw(("Blocked:" + toString(dx)))
736+ else eg
737737 }
738738
739739
740-func fB (fC,dq,ds,ai,fD) = {
740+func fA (fB,dp,dr,ai,fC) = {
741+ let dt = toBase58String(value(bA))
741742 let du = toBase58String(value(bB))
742- let dv = toBase58String(value(bC))
743- let dt = bA
743+ let ds = bz
744+ let dZ = bC
744745 let ea = bD
745- let eb = bE
746- let fa = toBigInt(valueOrErrorMessage(assetInfo(dt), "invalid lp asset").quantity)
747- let fE = if ((fa > e))
746+ let eZ = toBigInt(valueOrErrorMessage(assetInfo(ds), "invalid lp asset").quantity)
747+ let fD = if ((eZ > e))
748748 then true
749749 else throw("initial deposit requires all coins")
750- if ((fE == fE))
750+ if ((fD == fD))
751751 then {
752- let dA = ca(du)
753- let dC = ca(dv)
754- let fF = if ((ai == ""))
755- then $Tuple2(dA, dC)
756- else if ((dq == du))
757- then if ((fC > dA))
752+ let dz = bZ(dt)
753+ let dB = bZ(du)
754+ let fE = if ((ai == ""))
755+ then $Tuple2(dz, dB)
756+ else if ((dp == dt))
757+ then if ((fB > dz))
758758 then throw("invalid payment amount")
759- else $Tuple2((dA - fC), dC)
760- else if ((dq == dv))
761- then if ((fC > dC))
759+ else $Tuple2((dz - fB), dB)
760+ else if ((dp == du))
761+ then if ((fB > dB))
762762 then throw("invalid payment amount")
763- else $Tuple2(dA, (dC - fC))
763+ else $Tuple2(dz, (dB - fB))
764764 else throw("wrong pmtAssetId")
765- let fG = fF._1
766- let fH = fF._2
767- let fI = if ((dq == du))
768- then $Tuple2(fC, 0)
769- else if ((dq == dv))
770- then $Tuple2(0, fC)
765+ let fF = fE._1
766+ let fG = fE._2
767+ let fH = if ((dp == dt))
768+ then $Tuple2(fB, 0)
769+ else if ((dp == du))
770+ then $Tuple2(0, fB)
771771 else throw("invalid payment")
772- let fJ = fI._1
773- let fK = fI._2
774- let fL = if (fD)
775- then $Tuple3(cI(fJ, bd)._1, cI(fK, bd)._1, cI(fC, bd)._2)
776- else $Tuple3(fJ, fK, 0)
777- let fM = fL._1
778- let fN = fL._2
779- let cK = fL._3
772+ let fI = fH._1
773+ let fJ = fH._2
774+ let fK = if (fC)
775+ then $Tuple3(cH(fI, bc)._1, cH(fJ, bc)._1, cH(fB, bc)._2)
776+ else $Tuple3(fI, fJ, 0)
777+ let fL = fK._1
778+ let fM = fK._2
779+ let cJ = fK._3
780+ let fN = (fF + fL)
780781 let fO = (fG + fM)
781- let fP = (fH + fN)
782- let co = cL([I(fG, bD), I(fH, bE)])
783- let cn = cL([I(fO, bD), I(fP, bE)])
784- let ei = if ((cn > co))
782+ let cn = cK([I(fF, bC), I(fG, bD)])
783+ let cm = cK([I(fN, bC), I(fO, bD)])
784+ let eh = if ((cm > cn))
785785 then true
786786 else throw()
787- if ((ei == ei))
787+ if ((eh == eh))
788788 then {
789- let fQ = fraction(fa, (cn - co), co, FLOOR)
790- let dF = M(cc(I(fP, eb), I(fO, ea)), a)
791- let eB = [IntegerEntry(ac(), dF), IntegerEntry(ad(height, lastBlock.timestamp), dF), StringEntry(ag(ds, ai), bL(fJ, fK, toInt(fQ), dF, 0, 0, height, lastBlock.timestamp, 0, 0))]
792- let fR = fraction(fH, a, fG)
793- let fS = fraction(fC, a, (fR + a))
794- let fT = (fC - fS)
795- let fU = fraction(fa, toBigInt(fT), toBigInt(fH))
796- let fV = toInt(fraction((fQ - fU), b, fU))
797- $Tuple4(toInt(fQ), eB, cK, fV)
789+ let fP = fraction(eZ, (cm - cn), cn, FLOOR)
790+ let dE = M(cb(I(fO, ea), I(fN, dZ)), a)
791+ let eA = [IntegerEntry(ac(), dE), IntegerEntry(ad(height, lastBlock.timestamp), dE), StringEntry(ag(dr, ai), bK(fI, fJ, toInt(fP), dE, 0, 0, height, lastBlock.timestamp, 0, 0))]
792+ let fQ = fraction(fG, a, fF)
793+ let fR = fraction(fB, a, (fQ + a))
794+ let fS = (fB - fR)
795+ let fT = fraction(eZ, toBigInt(fS), toBigInt(fG))
796+ let fU = toInt(fraction((fP - fT), b, fT))
797+ $Tuple4(toInt(fP), eA, cJ, fU)
798798 }
799799 else throw("Strict value is not equal to itself.")
800800 }
802802 }
803803
804804
805-func fW (fX,fY,fZ,fx,ga,gb) = {
805+func fV (fW,fX,fY,fw,fZ,ga) = {
806+ let ds = toBase58String(value(bz))
806807 let dt = toBase58String(value(bA))
807808 let du = toBase58String(value(bB))
808- let dv = toBase58String(value(bC))
809+ let gb = bC
809810 let gc = bD
810- let gd = bE
811- let ge = bz
812- let ds = if ((fx == bK))
813- then ga
814- else fx
815- let fu = value(fZ[0])
816- let dq = value(fu.assetId)
817- let dW = fu.amount
818- let fb = eU(e, e, e)
819- if ((fb == fb))
811+ let gd = by
812+ let dr = if ((fw == bJ))
813+ then fZ
814+ else fw
815+ let ft = value(fY[0])
816+ let dp = value(ft.assetId)
817+ let dV = ft.amount
818+ let fa = eT(e, e, e)
819+ if ((fa == fa))
820820 then {
821- let dp = toBase58String(gb)
822- if ((dt != toBase58String(dq)))
821+ let do = toBase58String(ga)
822+ if ((ds != toBase58String(dp)))
823823 then throw("Wrong LP")
824824 else {
825- let dA = ca(du)
826- let dC = ca(dv)
827- let gf = {
828- let be = invoke(this, "getOneTknV2READONLY", [fX, dW], nil)
829- if ($isInstanceOf(be, "(Int, Int)"))
830- then be
831- else throw(($getType(be) + " couldn't be cast to (Int, Int)"))
825+ let dz = bZ(dt)
826+ let dB = bZ(du)
827+ let ge = {
828+ let bd = invoke(this, "getOneTknV2READONLY", [fW, dV], nil)
829+ if ($isInstanceOf(bd, "(Int, Int)"))
830+ then bd
831+ else throw(($getType(bd) + " couldn't be cast to (Int, Int)"))
832832 }
833- if ((gf == gf))
833+ if ((ge == ge))
834834 then {
835- let cK = gf._2
836- let gg = gf._1
837- let gh = if (if ((fY > 0))
838- then (fY > gg)
835+ let cJ = ge._2
836+ let gf = ge._1
837+ let gg = if (if ((fX > 0))
838+ then (fX > gf)
839839 else false)
840- then ba(makeString(["amount to receive is less than ", toString(fY)], ""))
841- else gg
842- let gi = if ((fX == du))
843- then $Tuple4(gh, 0, ((dA - gh) - cK), dC)
844- else if ((fX == dv))
845- then $Tuple4(0, gh, dA, ((dC - gh) - cK))
840+ then aZ(makeString(["amount to receive is less than ", toString(fX)], ""))
841+ else gf
842+ let gh = if ((fW == dt))
843+ then $Tuple4(gg, 0, ((dz - gg) - cJ), dB)
844+ else if ((fW == du))
845+ then $Tuple4(0, gg, dz, ((dB - gg) - cJ))
846846 else throw("invalid out asset id")
847- let gj = gi._1
848- let gk = gi._2
849- let fO = gi._3
850- let fP = gi._4
851- let gl = cc(I(fP, gd), I(fO, gc))
852- let gm = M(gl, a)
853- let gn = if ((fX == "WAVES"))
847+ let gi = gh._1
848+ let gj = gh._2
849+ let fN = gh._3
850+ let fO = gh._4
851+ let gk = cb(I(fO, gc), I(fN, gb))
852+ let gl = M(gk, a)
853+ let gm = if ((fW == "WAVES"))
854854 then unit
855- else fromBase58String(fX)
856- let go = if ((cK > 0))
857- then [ScriptTransfer(bm, cK, gn)]
855+ else fromBase58String(fW)
856+ let gn = if ((cJ > 0))
857+ then [ScriptTransfer(bl, cJ, gm)]
858858 else nil
859- let dM = ([ScriptTransfer(ds, gh, gn), StringEntry(aj(toString(ds), dp), bW(gj, gk, dW, gm, height, lastBlock.timestamp)), IntegerEntry(ac(), gm), IntegerEntry(ad(height, lastBlock.timestamp), gm)] ++ go)
860- if ((dM == dM))
859+ let dL = ([ScriptTransfer(dr, gg, gm), StringEntry(aj(toString(dr), do), bV(gi, gj, dV, gl, height, lastBlock.timestamp)), IntegerEntry(ac(), gl), IntegerEntry(ad(height, lastBlock.timestamp), gl)] ++ gn)
860+ if ((dL == dL))
861861 then {
862- let gp = invoke(aU, "burn", [dW], [AttachedPayment(dq, dW)])
863- if ((gp == gp))
862+ let go = invoke(aT, "burn", [dV], [AttachedPayment(dp, dV)])
863+ if ((go == go))
864864 then {
865- let gq = {
866- let gr = if ((this == bm))
865+ let gp = {
866+ let gq = if ((this == bl))
867867 then 0
868- else cK
869- let gs = if ((br(fX) == bB))
868+ else cJ
869+ let gr = if ((bq(fW) == bA))
870870 then true
871871 else false
872- if (gs)
873- then $Tuple2(-((gg + gr)), 0)
874- else $Tuple2(0, -((gg + gr)))
872+ if (gr)
873+ then $Tuple2(-((gf + gq)), 0)
874+ else $Tuple2(0, -((gf + gq)))
875875 }
876- let fd = gq._1
877- let fe = gq._2
878- let gt = fc(fd, fe, 0)
879- let gu = gt._1
880- let eT = gt._2
881- let gv = fg(fb, eT)
882- if ((gv == gv))
883- then $Tuple2((dM ++ gu), gh)
876+ let fc = gp._1
877+ let fd = gp._2
878+ let gs = fb(fc, fd, 0)
879+ let gt = gs._1
880+ let eS = gs._2
881+ let gu = ff(fa, eS)
882+ if ((gu == gu))
883+ then $Tuple2((dL ++ gt), gg)
884884 else throw("Strict value is not equal to itself.")
885885 }
886886 else throw("Strict value is not equal to itself.")
894894 }
895895
896896
897-func gw () = {
898- let gx = aS()
899- let aQ = getString(gx, aa())
900- if ($isInstanceOf(aQ, "String"))
897+func gv () = {
898+ let gw = aR()
899+ let aP = getString(gw, aa())
900+ if ($isInstanceOf(aP, "String"))
901901 then {
902- let aV = aQ
903- fromBase58String(aV)
902+ let aU = aP
903+ fromBase58String(aU)
904904 }
905- else if ($isInstanceOf(aQ, "Unit"))
905+ else if ($isInstanceOf(aP, "Unit"))
906906 then unit
907907 else throw("Match error")
908908 }
909909
910910
911-let gy = throw("Permission denied")
911+let gx = throw("Permission denied")
912912
913-func gz (da) = {
914- let aQ = gw()
915- if ($isInstanceOf(aQ, "ByteVector"))
913+func gy (cZ) = {
914+ let aP = gv()
915+ if ($isInstanceOf(aP, "ByteVector"))
916916 then {
917- let gA = aQ
918- (da.callerPublicKey == gA)
917+ let gz = aP
918+ (cZ.callerPublicKey == gz)
919919 }
920- else if ($isInstanceOf(aQ, "Unit"))
921- then (da.caller == this)
920+ else if ($isInstanceOf(aP, "Unit"))
921+ then (cZ.caller == this)
922922 else throw("Match error")
923923 }
924924
925925
926-func gB (da) = {
927- let aQ = gw()
928- if ($isInstanceOf(aQ, "ByteVector"))
926+func gA (cZ) = {
927+ let aP = gv()
928+ if ($isInstanceOf(aP, "ByteVector"))
929929 then {
930- let gA = aQ
931- if ((da.callerPublicKey == gA))
930+ let gz = aP
931+ if ((cZ.callerPublicKey == gz))
932932 then true
933- else gy
933+ else gx
934934 }
935- else if ($isInstanceOf(aQ, "Unit"))
936- then if ((da.caller == this))
935+ else if ($isInstanceOf(aP, "Unit"))
936+ then if ((cZ.caller == this))
937937 then true
938- else gy
938+ else gx
939939 else throw("Match error")
940940 }
941941
942942
943-func gC (gD,eD,gE) = {
944- let bv = bn()
945- let du = bv[x]
946- let dv = bv[y]
947- let eE = g
948- let eG = parseBigIntValue(m)
949- let aR = (parseBigIntValue(bj) * eG)
950- let cM = if ((gD == false))
951- then [(toBigInt(ca(du)) + gE), toBigInt(ca(dv))]
952- else [(toBigInt(ca(dv)) + gE), toBigInt(ca(du))]
953- let eF = cM[0]
954- let aV = eF
955- let cP = (aR * eE)
956- let eH = (((((eD * eD) / (eF * eE)) * eD) * eG) / (cP * eE))
957- let eI = ((aV + ((eD * eG) / cP)) - eD)
958- func cY (cZ,eJ) = {
959- let gF = cZ
960- let eL = gF._1
961- let dn = gF._2
962- if ((dn != unit))
963- then cZ
943+func gB (gC,eC,gD) = {
944+ let bu = bm()
945+ let dt = bu[x]
946+ let du = bu[y]
947+ let eD = g
948+ let eF = parseBigIntValue(m)
949+ let aQ = (parseBigIntValue(bi) * eF)
950+ let cL = if ((gC == false))
951+ then [(toBigInt(bZ(dt)) + gD), toBigInt(bZ(du))]
952+ else [(toBigInt(bZ(du)) + gD), toBigInt(bZ(dt))]
953+ let eE = cL[0]
954+ let aU = eE
955+ let cO = (aQ * eD)
956+ let eG = (((((eC * eC) / (eE * eD)) * eC) * eF) / (cO * eD))
957+ let eH = ((aU + ((eC * eF) / cO)) - eC)
958+ func cX (cY,eI) = {
959+ let gE = cY
960+ let eK = gE._1
961+ let dm = gE._2
962+ if ((dm != unit))
963+ then cY
964964 else {
965- let eM = (((eL * eL) + eH) / ((g * eL) + eI))
966- let eN = Y((eM - value(eL)))
967- if ((f >= eN))
968- then $Tuple2(eM, eJ)
969- else $Tuple2(eM, unit)
965+ let eL = (((eK * eK) + eG) / ((g * eK) + eH))
966+ let eM = Y((eL - value(eK)))
967+ if ((f >= eM))
968+ then $Tuple2(eL, eI)
969+ else $Tuple2(eL, unit)
970970 }
971971 }
972972
973- let de = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
974- let gG = {
975- let dg = de
976- let dh = size(dg)
977- let di = $Tuple2(eD, unit)
978- func dj (dk,dl) = if ((dl >= dh))
979- then dk
980- else cY(dk, dg[dl])
973+ let dd = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
974+ let gF = {
975+ let df = dd
976+ let dg = size(df)
977+ let dh = $Tuple2(eC, unit)
978+ func di (dj,dk) = if ((dk >= dg))
979+ then dj
980+ else cX(dj, df[dk])
981981
982- func dm (dk,dl) = if ((dl >= dh))
983- then dk
982+ func dl (dj,dk) = if ((dk >= dg))
983+ then dj
984984 else throw("List size exceeds 15")
985985
986- dm(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(di, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
986+ dl(di(di(di(di(di(di(di(di(di(di(di(di(di(di(di(dh, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
987987 }
988- let eL = gG._1
989- let dn = gG._2
990- if ((dn != unit))
991- then eL
992- else throw(("Y calculation error, Y = " + toString(eL)))
988+ let eK = gF._1
989+ let dm = gF._2
990+ if ((dm != unit))
991+ then eK
992+ else throw(("Y calculation error, Y = " + toString(eK)))
993993 }
994994
995995
996-func gH () = valueOrElse(getBoolean(aU, aH(toString(this))), false)
996+func gG () = valueOrElse(getBoolean(aT, aH(toString(this))), false)
997997
998998
999-@Callable(da)
1000-func calculateAmountOutForSwapREADONLY (gI,gD,gJ) = {
1001- let gK = if ((gD == false))
999+@Callable(cZ)
1000+func calculateAmountOutForSwapREADONLY (gH,gC,gI) = {
1001+ let gJ = if ((gC == false))
10021002 then {
1003- let gL = aW(this, al())
1004- let gE = (toBigInt(ca(aW(this, ak()))) + toBigInt(gI))
1005- $Tuple2(gL, gE)
1003+ let gK = aV(this, al())
1004+ let gD = (toBigInt(bZ(aV(this, ak()))) + toBigInt(gH))
1005+ $Tuple2(gK, gD)
10061006 }
10071007 else {
1008- let gL = aW(this, ak())
1009- let gE = (toBigInt(ca(aW(this, al()))) + toBigInt(gI))
1010- $Tuple2(gL, gE)
1008+ let gK = aV(this, ak())
1009+ let gD = (toBigInt(bZ(aV(this, al()))) + toBigInt(gH))
1010+ $Tuple2(gK, gD)
10111011 }
1012- let gL = gK._1
1013- let gE = gK._2
1014- let bv = bn()
1015- let du = bv[x]
1016- let dv = bv[y]
1017- let cM = [toBigInt(ca(du)), toBigInt(ca(dv))]
1018- let eD = cL(cM)
1019- let eL = gC(gD, eD, toBigInt(gI))
1020- let gM = ((toBigInt(ca(gL)) - eL) - toBigInt(1))
1021- let gN = max([0, toInt(gM)])
1022- let gO = if ((gD == false))
1023- then [((toBigInt(ca(du)) + toBigInt(gI)) + toBigInt(gJ)), (toBigInt(ca(dv)) - gM)]
1024- else [(toBigInt(ca(du)) - gM), ((toBigInt(ca(dv)) + toBigInt(gI)) + toBigInt(gJ))]
1025- let gP = cL(gO)
1026- let ei = if ((gP >= eD))
1012+ let gK = gJ._1
1013+ let gD = gJ._2
1014+ let bu = bm()
1015+ let dt = bu[x]
1016+ let du = bu[y]
1017+ let cL = [toBigInt(bZ(dt)), toBigInt(bZ(du))]
1018+ let eC = cK(cL)
1019+ let eK = gB(gC, eC, toBigInt(gH))
1020+ let gL = ((toBigInt(bZ(gK)) - eK) - toBigInt(1))
1021+ let gM = max([0, toInt(gL)])
1022+ let gN = if ((gC == false))
1023+ then [((toBigInt(bZ(dt)) + toBigInt(gH)) + toBigInt(gI)), (toBigInt(bZ(du)) - gL)]
1024+ else [(toBigInt(bZ(dt)) - gL), ((toBigInt(bZ(du)) + toBigInt(gH)) + toBigInt(gI))]
1025+ let gO = cK(gN)
1026+ let eh = if ((gO >= eC))
10271027 then true
1028- else throw(makeString(["new D is fewer error", toString(eD), toString(gP)], "__"))
1029- if ((ei == ei))
1030- then $Tuple2(nil, gN)
1028+ else throw(makeString(["new D is fewer error", toString(eC), toString(gO)], "__"))
1029+ if ((eh == eh))
1030+ then $Tuple2(nil, gM)
10311031 else throw("Strict value is not equal to itself.")
10321032 }
10331033
10341034
10351035
1036-@Callable(da)
1037-func calculateAmountOutForSwapAndSendTokens (gI,gD,gQ,gR,gJ) = {
1036+@Callable(cZ)
1037+func calculateAmountOutForSwapAndSendTokens (gH,gC,gP,gQ,gI) = {
1038+ let gR = {
1039+ let bd = invoke(aT, "getSwapContractREADONLY", nil, nil)
1040+ if ($isInstanceOf(bd, "String"))
1041+ then bd
1042+ else throw(($getType(bd) + " couldn't be cast to String"))
1043+ }
10381044 let gS = {
1039- let be = invoke(aU, "getSwapContractREADONLY", nil, nil)
1040- if ($isInstanceOf(be, "String"))
1041- then be
1042- else throw(($getType(be) + " couldn't be cast to String"))
1045+ let bd = invoke(aT, "isPoolSwapDisabledREADONLY", [toString(this)], nil)
1046+ if ($isInstanceOf(bd, "Boolean"))
1047+ then bd
1048+ else throw(($getType(bd) + " couldn't be cast to Boolean"))
10431049 }
1044- let gT = {
1045- let be = invoke(aU, "isPoolSwapDisabledREADONLY", [toString(this)], nil)
1046- if ($isInstanceOf(be, "Boolean"))
1047- then be
1048- else throw(($getType(be) + " couldn't be cast to Boolean"))
1049- }
1050- let gU = if (!(bi(da.caller)))
1051- then if (if (bk())
1050+ let gT = if (!(bh(cZ.caller)))
1051+ then if (if (bj())
10521052 then true
1053- else (bz == t))
1053+ else (by == t))
10541054 then true
1055- else gT
1055+ else gS
10561056 else false
1057- let gV = [if (if (!(gU))
1057+ let gU = [if (if (!(gT))
10581058 then true
1059- else gz(da))
1059+ else gy(cZ))
10601060 then true
1061- else ba("swap operation is blocked by admin"), if ((value(da.payments[0]).amount >= gI))
1061+ else aZ("swap operation is blocked by admin"), if ((value(cZ.payments[0]).amount >= gH))
10621062 then true
1063- else ba("Wrong amount"), if ((da.caller == addressFromStringValue(gS)))
1063+ else aZ("Wrong amount"), if ((cZ.caller == addressFromStringValue(gR)))
10641064 then true
1065- else ba("Permission denied")]
1066- if ((gV == gV))
1065+ else aZ("Permission denied")]
1066+ if ((gU == gU))
10671067 then {
1068- let fu = value(da.payments[0])
1069- let gW = bt(fu.assetId)
1070- let gX = if ((gD == false))
1068+ let ft = value(cZ.payments[0])
1069+ let gV = bs(ft.assetId)
1070+ let gW = if ((gC == false))
10711071 then {
1072- let gL = aW(this, al())
1073- let gE = (ca(gW) - value(da.payments[0]).amount)
1074- $Tuple2(gL, gE)
1072+ let gK = aV(this, al())
1073+ let gD = (bZ(gV) - value(cZ.payments[0]).amount)
1074+ $Tuple2(gK, gD)
10751075 }
10761076 else {
1077- let gL = aW(this, ak())
1078- let gE = (ca(gW) - value(da.payments[0]).amount)
1079- $Tuple2(gL, gE)
1077+ let gK = aV(this, ak())
1078+ let gD = (bZ(gV) - value(cZ.payments[0]).amount)
1079+ $Tuple2(gK, gD)
10801080 }
1081- let gL = gX._1
1082- let gE = gX._2
1083- let bv = bn()
1084- let du = bv[x]
1085- let dv = bv[y]
1086- let cM = if ((gD == false))
1087- then [(toBigInt(ca(du)) - toBigInt(value(da.payments[0]).amount)), toBigInt(ca(dv))]
1088- else [toBigInt(ca(du)), (toBigInt(ca(dv)) - toBigInt(value(da.payments[0]).amount))]
1089- let eD = cL(cM)
1090- let eL = gC(gD, eD, toBigInt(0))
1091- let gM = ((toBigInt(ca(gL)) - eL) - toBigInt(1))
1092- let gN = max([0, toInt(gM)])
1093- let gY = if ((gN >= gQ))
1081+ let gK = gW._1
1082+ let gD = gW._2
1083+ let bu = bm()
1084+ let dt = bu[x]
1085+ let du = bu[y]
1086+ let cL = if ((gC == false))
1087+ then [(toBigInt(bZ(dt)) - toBigInt(value(cZ.payments[0]).amount)), toBigInt(bZ(du))]
1088+ else [toBigInt(bZ(dt)), (toBigInt(bZ(du)) - toBigInt(value(cZ.payments[0]).amount))]
1089+ let eC = cK(cL)
1090+ let eK = gB(gC, eC, toBigInt(0))
1091+ let gL = ((toBigInt(bZ(gK)) - eK) - toBigInt(1))
1092+ let gM = max([0, toInt(gL)])
1093+ let gX = if ((gM >= gP))
10941094 then true
10951095 else throw("Exchange result is fewer coins than expected")
1096- if ((gY == gY))
1096+ if ((gX == gX))
10971097 then {
1098- let gO = if ((gD == false))
1099- then [(toBigInt(ca(du)) + toBigInt(gJ)), (toBigInt(ca(dv)) - gM)]
1100- else [(toBigInt(ca(du)) - gM), (toBigInt(ca(dv)) + toBigInt(gJ))]
1101- let gP = cL(gO)
1102- let ei = if ((gP >= eD))
1098+ let gN = if ((gC == false))
1099+ then [(toBigInt(bZ(dt)) + toBigInt(gI)), (toBigInt(bZ(du)) - gL)]
1100+ else [(toBigInt(bZ(dt)) - gL), (toBigInt(bZ(du)) + toBigInt(gI))]
1101+ let gO = cK(gN)
1102+ let eh = if ((gO >= eC))
11031103 then true
11041104 else throw("new D is fewer error")
1105- if ((ei == ei))
1105+ if ((eh == eh))
11061106 then {
1107- let fd = if (gD)
1108- then -(gN)
1109- else gJ
1110- let fe = if (gD)
1111- then gJ
1112- else -(gN)
1113- let gu = fc(fd, fe, 0)._1
1114- if ((gu == gu))
1115- then $Tuple2([ScriptTransfer(addressFromStringValue(gR), gN, br(gL))], gN)
1107+ let fc = if (gC)
1108+ then -(gM)
1109+ else gI
1110+ let fd = if (gC)
1111+ then gI
1112+ else -(gM)
1113+ let gt = fb(fc, fd, 0)._1
1114+ if ((gt == gt))
1115+ then $Tuple2([ScriptTransfer(addressFromStringValue(gQ), gM, bq(gK))], gM)
11161116 else throw("Strict value is not equal to itself.")
11171117 }
11181118 else throw("Strict value is not equal to itself.")
11241124
11251125
11261126
1127-@Callable(da)
1127+@Callable(cZ)
11281128 func constructor (Z) = {
1129- let eH = gB(da)
1130- if ((eH == eH))
1129+ let eG = gA(cZ)
1130+ if ((eG == eG))
11311131 then [StringEntry(Z(), Z)]
11321132 else throw("Strict value is not equal to itself.")
11331133 }
11341134
11351135
11361136
1137-@Callable(da)
1138-func put (gZ,ha) = {
1139- let hb = bF()
1140- let hc = valueOrErrorMessage(addressFromString(hb[D]), "Wr st addr")
1141- let hd = valueOrErrorMessage(addressFromString(hb[F]), "Wr sl addr")
1142- if ((0 > gZ))
1137+@Callable(cZ)
1138+func put (gY,gZ) = {
1139+ let ha = bE()
1140+ let hb = valueOrErrorMessage(addressFromString(ha[D]), "Wr st addr")
1141+ let hc = valueOrErrorMessage(addressFromString(ha[F]), "Wr sl addr")
1142+ if ((0 > gY))
11431143 then throw("Wrong slippage")
1144- else if ((size(da.payments) != 2))
1144+ else if ((size(cZ.payments) != 2))
11451145 then throw("2 pmnts expd")
11461146 else {
1147- let he = toBigInt(value(da.payments[0]).amount)
1148- let hf = toBigInt(value(da.payments[1]).amount)
1149- let eY = (toBigInt(ca(bt(bB))) - he)
1150- if ((eY == eY))
1147+ let hd = toBigInt(value(cZ.payments[0]).amount)
1148+ let he = toBigInt(value(cZ.payments[1]).amount)
1149+ let eX = (toBigInt(bZ(bs(bA))) - hd)
1150+ if ((eX == eX))
11511151 then {
1152- let eZ = (toBigInt(ca(bt(bC))) - hf)
1153- if ((eZ == eZ))
1152+ let eY = (toBigInt(bZ(bs(bB))) - he)
1153+ if ((eY == eY))
11541154 then {
1155- let fa = toBigInt(value(assetInfo(bA)).quantity)
1156- if ((fa == fa))
1155+ let eZ = toBigInt(value(assetInfo(bz)).quantity)
1156+ if ((eZ == eZ))
11571157 then {
1158- let fb = eU(he, hf, toBigInt(0))
1159- if ((fb == fb))
1158+ let fa = eT(hd, he, toBigInt(0))
1159+ if ((fa == fa))
11601160 then {
1161- let hg = fw(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(value(da.payments[0]).assetId, value(da.payments[0]).amount), da.payments[1], gZ, true, false, true, 0, "")
1162- let ev = hg._2
1163- let hh = hg._7
1164- let dM = hg._9
1165- let ew = hg._10
1166- let ex = hg._11
1167- let du = hg._12
1168- let dv = hg._13
1169- let eh = invoke(aU, "emit", [ev], nil)
1170- if ((eh == eh))
1161+ let hf = fv(toString(cZ.caller), toBase58String(cZ.transactionId), AttachedPayment(value(cZ.payments[0]).assetId, value(cZ.payments[0]).amount), cZ.payments[1], gY, true, false, true, 0, "")
1162+ let eu = hf._2
1163+ let hg = hf._7
1164+ let dL = hf._9
1165+ let ev = hf._10
1166+ let ew = hf._11
1167+ let dt = hf._12
1168+ let du = hf._13
1169+ let eg = invoke(aT, "emit", [eu], nil)
1170+ if ((eg == eg))
11711171 then {
1172- let hi = {
1173- let aQ = eh
1174- if ($isInstanceOf(aQ, "Address"))
1172+ let hh = {
1173+ let aP = eg
1174+ if ($isInstanceOf(aP, "Address"))
11751175 then {
1176- let hj = aQ
1177- invoke(hj, "emit", [ev], nil)
1176+ let hi = aP
1177+ invoke(hi, "emit", [eu], nil)
11781178 }
11791179 else unit
11801180 }
1181- if ((hi == hi))
1181+ if ((hh == hh))
11821182 then {
1183- let hk = if ((ew > 0))
1184- then invoke(hd, "put", nil, [AttachedPayment(du, ew)])
1183+ let hj = if ((ev > 0))
1184+ then invoke(hc, "put", nil, [AttachedPayment(dt, ev)])
11851185 else nil
1186- if ((hk == hk))
1186+ if ((hj == hj))
11871187 then {
1188- let hl = if ((ex > 0))
1189- then invoke(hd, "put", nil, [AttachedPayment(dv, ex)])
1188+ let hk = if ((ew > 0))
1189+ then invoke(hc, "put", nil, [AttachedPayment(du, ew)])
11901190 else nil
1191- if ((hl == hl))
1191+ if ((hk == hk))
11921192 then {
1193- let hm = if (ha)
1193+ let hl = if (gZ)
11941194 then {
1195- let hn = invoke(hc, "stake", nil, [AttachedPayment(hh, ev)])
1196- if ((hn == hn))
1195+ let hm = invoke(hb, "stake", nil, [AttachedPayment(hg, eu)])
1196+ if ((hm == hm))
11971197 then nil
11981198 else throw("Strict value is not equal to itself.")
11991199 }
1200- else [ScriptTransfer(da.caller, ev, hh)]
1201- let ho = fc(0, 0, 0)
1202- let gu = ho._1
1203- let eT = ho._2
1204- let hp = if ((eT >= fb))
1200+ else [ScriptTransfer(cZ.caller, eu, hg)]
1201+ let hn = fb(0, 0, 0)
1202+ let gt = hn._1
1203+ let eS = hn._2
1204+ let ho = if ((eS >= fa))
12051205 then true
1206- else ba(makeString(["updated DLp lower than current DLp", toString(eY), toString(eZ), toString(fa), toString(fb), toString(eT), toString(ew), toString(ex)], " "))
1207- if ((hp == hp))
1206+ else aZ(makeString(["updated DLp lower than current DLp", toString(eX), toString(eY), toString(eZ), toString(fa), toString(eS), toString(ev), toString(ew)], " "))
1207+ if ((ho == ho))
12081208 then {
1209- let hq = value(assetInfo(bA)).quantity
1210- if ((hq == hq))
1211- then ((dM ++ hm) ++ gu)
1209+ let hp = value(assetInfo(bz)).quantity
1210+ if ((hp == hp))
1211+ then ((dL ++ hl) ++ gt)
12121212 else throw("Strict value is not equal to itself.")
12131213 }
12141214 else throw("Strict value is not equal to itself.")
12331233
12341234
12351235
1236-@Callable(da)
1237-func putOneTknV2 (fY,ha) = {
1238- let hr = {
1239- let be = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1240- if ($isInstanceOf(be, "Boolean"))
1241- then be
1242- else throw(($getType(be) + " couldn't be cast to Boolean"))
1236+@Callable(cZ)
1237+func putOneTknV2 (fX,gZ) = {
1238+ let hq = {
1239+ let bd = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1240+ if ($isInstanceOf(bd, "Boolean"))
1241+ then bd
1242+ else throw(($getType(bd) + " couldn't be cast to Boolean"))
12431243 }
1244- let fA = if (!(bi(da.caller)))
1245- then if (if (if (bk())
1244+ let fz = if (!(bh(cZ.caller)))
1245+ then if (if (if (bj())
12461246 then true
1247- else (bz == r))
1247+ else (by == r))
12481248 then true
1249- else (bz == t))
1249+ else (by == t))
12501250 then true
1251- else hr
1251+ else hq
12521252 else false
1253- let gV = [if (if (!(fA))
1253+ let gU = [if (if (!(fz))
12541254 then true
1255- else gz(da))
1255+ else gy(cZ))
12561256 then true
1257- else ba("put operation is blocked by admin"), if ((size(da.payments) == 1))
1257+ else aZ("put operation is blocked by admin"), if ((size(cZ.payments) == 1))
12581258 then true
1259- else ba("exactly 1 payment are expected")]
1260- if ((gV == gV))
1259+ else aZ("exactly 1 payment are expected")]
1260+ if ((gU == gU))
12611261 then {
1262+ let dt = toBase58String(value(bA))
12621263 let du = toBase58String(value(bB))
1263- let dv = toBase58String(value(bC))
1264- let dt = bA
1264+ let ds = bz
1265+ let gb = bC
12651266 let gc = bD
1266- let gd = bE
1267- let ds = if ((da.caller == this))
1268- then da.originCaller
1269- else da.caller
1270- let fu = value(da.payments[0])
1271- let dq = toBase58String(value(fu.assetId))
1272- let dW = fu.amount
1273- let fb = if ((fu.assetId == bB))
1274- then eU(toBigInt(dW), toBigInt(0), toBigInt(0))
1275- else eU(toBigInt(0), toBigInt(dW), toBigInt(0))
1276- if ((fb == fb))
1267+ let dr = if ((cZ.caller == this))
1268+ then cZ.originCaller
1269+ else cZ.caller
1270+ let ft = value(cZ.payments[0])
1271+ let dp = toBase58String(value(ft.assetId))
1272+ let dV = ft.amount
1273+ let fa = if ((ft.assetId == bA))
1274+ then eT(toBigInt(dV), toBigInt(0), toBigInt(0))
1275+ else eT(toBigInt(0), toBigInt(dV), toBigInt(0))
1276+ if ((fa == fa))
12771277 then {
1278- let hs = fB(dW, dq, toString(ds), toBase58String(da.transactionId), true)
1279- if ((hs == hs))
1278+ let hr = fA(dV, dp, toString(dr), toBase58String(cZ.transactionId), true)
1279+ if ((hr == hr))
12801280 then {
1281- let cK = hs._3
1282- let dM = hs._2
1283- let ht = hs._1
1284- let ev = if (if ((fY > 0))
1285- then (fY > ht)
1281+ let cJ = hr._3
1282+ let dL = hr._2
1283+ let hs = hr._1
1284+ let eu = if (if ((fX > 0))
1285+ then (fX > hs)
12861286 else false)
1287- then ba(makeString(["amount to receive is less than ", toString(fY)], ""))
1288- else ht
1289- let hg = invoke(aU, "emit", [ev], nil)
1290- if ((hg == hg))
1287+ then aZ(makeString(["amount to receive is less than ", toString(fX)], ""))
1288+ else hs
1289+ let hf = invoke(aT, "emit", [eu], nil)
1290+ if ((hf == hf))
12911291 then {
1292- let hi = {
1293- let aQ = hg
1294- if ($isInstanceOf(aQ, "Address"))
1292+ let hh = {
1293+ let aP = hf
1294+ if ($isInstanceOf(aP, "Address"))
12951295 then {
1296- let hj = aQ
1297- invoke(hj, "emit", [ev], nil)
1296+ let hi = aP
1297+ invoke(hi, "emit", [eu], nil)
12981298 }
12991299 else unit
13001300 }
1301- if ((hi == hi))
1301+ if ((hh == hh))
13021302 then {
1303- let hm = if (ha)
1303+ let hl = if (gZ)
13041304 then {
1305- let hn = invoke(bH, "stakeFor", [toString(da.caller)], [AttachedPayment(dt, ev)])
1306- if ((hn == hn))
1305+ let hm = invoke(bG, "stakeFor", [toString(cZ.caller)], [AttachedPayment(ds, eu)])
1306+ if ((hm == hm))
13071307 then nil
13081308 else throw("Strict value is not equal to itself.")
13091309 }
1310- else [ScriptTransfer(da.caller, ev, dt)]
1311- let go = if ((cK > 0))
1312- then [ScriptTransfer(bm, cK, fromBase58String(dq))]
1310+ else [ScriptTransfer(cZ.caller, eu, ds)]
1311+ let gn = if ((cJ > 0))
1312+ then [ScriptTransfer(bl, cJ, fromBase58String(dp))]
13131313 else nil
1314- let hu = if ((this == bm))
1314+ let ht = if ((this == bl))
13151315 then $Tuple2(0, 0)
13161316 else {
1317- let hv = if ((fu.assetId == bB))
1317+ let hu = if ((ft.assetId == bA))
13181318 then true
13191319 else false
1320- if (hv)
1321- then $Tuple2(-(cK), 0)
1322- else $Tuple2(0, -(cK))
1320+ if (hu)
1321+ then $Tuple2(-(cJ), 0)
1322+ else $Tuple2(0, -(cJ))
13231323 }
1324- let fd = hu._1
1325- let fe = hu._2
1326- let hw = fc(fd, fe, 0)
1327- let gu = hw._1
1328- let eT = hw._2
1329- let gv = fg(fb, eT)
1330- if ((gv == gv))
1331- then $Tuple2((((dM ++ hm) ++ go) ++ gu), ev)
1324+ let fc = ht._1
1325+ let fd = ht._2
1326+ let hv = fb(fc, fd, 0)
1327+ let gt = hv._1
1328+ let eS = hv._2
1329+ let gu = ff(fa, eS)
1330+ if ((gu == gu))
1331+ then $Tuple2((((dL ++ hl) ++ gn) ++ gt), eu)
13321332 else throw("Strict value is not equal to itself.")
13331333 }
13341334 else throw("Strict value is not equal to itself.")
13441344
13451345
13461346
1347-@Callable(da)
1348-func putForFree (hx) = if ((0 > hx))
1347+@Callable(cZ)
1348+func putForFree (hw) = if ((0 > hw))
13491349 then throw("Wrong slpg")
1350- else if ((size(da.payments) != 2))
1350+ else if ((size(cZ.payments) != 2))
13511351 then throw("2 pmnts expd")
13521352 else {
1353- let hy = fw(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(value(da.payments[0]).assetId, value(da.payments[0]).amount), da.payments[1], hx, false, false, true, 0, "")
1354- let dM = hy._9
1355- let he = toBigInt(value(da.payments[0]).amount)
1356- let hf = toBigInt(value(da.payments[1]).amount)
1357- let fb = eU(he, hf, toBigInt(0))
1358- if ((fb == fb))
1353+ let hx = fv(toString(cZ.caller), toBase58String(cZ.transactionId), AttachedPayment(value(cZ.payments[0]).assetId, value(cZ.payments[0]).amount), cZ.payments[1], hw, false, false, true, 0, "")
1354+ let dL = hx._9
1355+ let hd = toBigInt(value(cZ.payments[0]).amount)
1356+ let he = toBigInt(value(cZ.payments[1]).amount)
1357+ let fa = eT(hd, he, toBigInt(0))
1358+ if ((fa == fa))
13591359 then {
1360- let hz = fc(0, 0, 0)
1361- let gu = hz._1
1362- let eT = hz._2
1363- let gv = fg(fb, eT)
1364- if ((gv == gv))
1365- then (dM ++ gu)
1360+ let hy = fb(0, 0, 0)
1361+ let gt = hy._1
1362+ let eS = hy._2
1363+ let gu = ff(fa, eS)
1364+ if ((gu == gu))
1365+ then (dL ++ gt)
13661366 else throw("Strict value is not equal to itself.")
13671367 }
13681368 else throw("Strict value is not equal to itself.")
13701370
13711371
13721372
1373-@Callable(da)
1373+@Callable(cZ)
13741374 func get () = {
1375- let fb = eU(toBigInt(0), toBigInt(0), toBigInt(0))
1376- if ((fb == fb))
1375+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1376+ if ((fa == fa))
13771377 then {
1378- let eh = ft(da)
1379- let hA = eh._1
1380- let dL = eh._2
1381- let dW = eh._3
1382- let dq = eh._4
1383- let dM = eh._5
1384- let eI = invoke(aU, "burn", [dW], [AttachedPayment(dq, dW)])
1385- if ((eI == eI))
1378+ let eg = fs(cZ)
1379+ let hz = eg._1
1380+ let dK = eg._2
1381+ let dV = eg._3
1382+ let dp = eg._4
1383+ let dL = eg._5
1384+ let eH = invoke(aT, "burn", [dV], [AttachedPayment(dp, dV)])
1385+ if ((eH == eH))
13861386 then {
1387- let hB = fc(-(hA), -(dL), 0)
1388- let gu = hB._1
1389- let eT = hB._2
1390- let gv = fg(fb, eT)
1391- if ((gv == gv))
1392- then (dM ++ gu)
1387+ let hA = fb(-(hz), -(dK), 0)
1388+ let gt = hA._1
1389+ let eS = hA._2
1390+ let gu = ff(fa, eS)
1391+ if ((gu == gu))
1392+ then (dL ++ gt)
13931393 else throw("Strict value is not equal to itself.")
13941394 }
13951395 else throw("Strict value is not equal to itself.")
13991399
14001400
14011401
1402-@Callable(da)
1403-func getOneTknV2 (fX,fY) = {
1404- let hr = {
1405- let be = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1406- if ($isInstanceOf(be, "Boolean"))
1407- then be
1408- else throw(($getType(be) + " couldn't be cast to Boolean"))
1402+@Callable(cZ)
1403+func getOneTknV2 (fW,fX) = {
1404+ let hq = {
1405+ let bd = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1406+ if ($isInstanceOf(bd, "Boolean"))
1407+ then bd
1408+ else throw(($getType(bd) + " couldn't be cast to Boolean"))
14091409 }
1410- let fv = if (!(bi(da.caller)))
1411- then if (if (bk())
1410+ let fu = if (!(bh(cZ.caller)))
1411+ then if (if (bj())
14121412 then true
1413- else (bz == t))
1413+ else (by == t))
14141414 then true
1415- else hr
1415+ else hq
14161416 else false
1417- let gV = [if (if (!(fv))
1417+ let gU = [if (if (!(fu))
14181418 then true
1419- else gz(da))
1419+ else gy(cZ))
14201420 then true
1421- else ba("get operation is blocked by admin"), if ((size(da.payments) == 1))
1421+ else aZ("get operation is blocked by admin"), if ((size(cZ.payments) == 1))
14221422 then true
1423- else ba("exactly 1 payment are expected")]
1424- if ((gV == gV))
1423+ else aZ("exactly 1 payment are expected")]
1424+ if ((gU == gU))
14251425 then {
1426- let hC = fW(fX, fY, da.payments, da.caller, da.originCaller, da.transactionId)
1427- let dM = hC._1
1428- let gh = hC._2
1429- $Tuple2(dM, gh)
1426+ let hB = fV(fW, fX, cZ.payments, cZ.caller, cZ.originCaller, cZ.transactionId)
1427+ let dL = hB._1
1428+ let gg = hB._2
1429+ $Tuple2(dL, gg)
14301430 }
14311431 else throw("Strict value is not equal to itself.")
14321432 }
14331433
14341434
14351435
1436-@Callable(da)
1436+@Callable(cZ)
14371437 func refreshDLp () = {
1438- let hD = valueOrElse(getInteger(at), 0)
1439- let hE = if (((height - hD) >= aw))
1438+ let hC = valueOrElse(getInteger(at), 0)
1439+ let hD = if (((height - hC) >= aw))
14401440 then unit
1441- else ba(makeString([toString(aw), " blocks have not passed since the previous call"], ""))
1442- if ((hE == hE))
1441+ else aZ(makeString([toString(aw), " blocks have not passed since the previous call"], ""))
1442+ if ((hD == hD))
14431443 then {
1444- let fn = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, as), "0")), bc("invalid dLp"))
1445- let hF = fc(0, 0, 0)
1446- let hG = hF._1
1447- let eT = hF._2
1448- let ff = if ((fn != eT))
1449- then hG
1450- else ba("nothing to refresh")
1451- $Tuple2(ff, toString(eT))
1444+ let fm = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, as), "0")), bb("invalid dLp"))
1445+ let hE = fb(0, 0, 0)
1446+ let hF = hE._1
1447+ let eS = hE._2
1448+ let fe = if ((fm != eS))
1449+ then hF
1450+ else aZ("nothing to refresh")
1451+ $Tuple2(fe, toString(eS))
14521452 }
14531453 else throw("Strict value is not equal to itself.")
14541454 }
14551455
14561456
14571457
1458-@Callable(da)
1459-func getOneTknV2READONLY (fX,hH) = {
1458+@Callable(cZ)
1459+func getOneTknV2READONLY (fW,hG) = {
1460+ let dt = toBase58String(value(bA))
14601461 let du = toBase58String(value(bB))
1461- let dv = toBase58String(value(bC))
1462- let dt = toBase58String(value(bA))
1463- let cM = [toBigInt(ca(du)), toBigInt(ca(dv))]
1464- let eS = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(dt)), "invalid lp asset").quantity)
1465- let co = cL(cM)
1466- let cn = (co - fraction(toBigInt(hH), co, eS))
1467- let hI = if ((fX == du))
1462+ let ds = toBase58String(value(bz))
1463+ let cL = [toBigInt(bZ(dt)), toBigInt(bZ(du))]
1464+ let eR = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(ds)), "invalid lp asset").quantity)
1465+ let cn = cK(cL)
1466+ let cm = (cn - fraction(toBigInt(hG), cn, eR))
1467+ let hH = if ((fW == dt))
14681468 then 0
1469- else if ((fX == dv))
1469+ else if ((fW == du))
14701470 then 1
14711471 else throw("invalid out asset id")
1472- let hJ = eC(cM, hI, cn)
1473- let gM = (cM[hI] - hJ)
1474- let gN = max([0, toInt((gM - f))])
1475- let hK = cI(gN, bf)
1476- let gg = hK._1
1477- let cK = hK._2
1478- $Tuple2(nil, $Tuple2(gg, cK))
1472+ let hI = eB(cL, hH, cm)
1473+ let gL = (cL[hH] - hI)
1474+ let gM = max([0, toInt((gL - f))])
1475+ let hJ = cH(gM, be)
1476+ let gf = hJ._1
1477+ let cJ = hJ._2
1478+ $Tuple2(nil, $Tuple2(gf, cJ))
14791479 }
14801480
14811481
14821482
1483-@Callable(da)
1484-func getOneTknV2WithBonusREADONLY (fX,hH) = {
1483+@Callable(cZ)
1484+func getOneTknV2WithBonusREADONLY (fW,hG) = {
1485+ let dt = toBase58String(value(bA))
14851486 let du = toBase58String(value(bB))
1486- let dv = toBase58String(value(bC))
1487- let dt = toBase58String(value(bA))
1488- let dA = ca(du)
1489- let dC = ca(dv)
1490- let hL = {
1491- let be = invoke(this, "getOneTknV2READONLY", [fX, hH], nil)
1492- if ($isInstanceOf(be, "(Int, Int)"))
1493- then be
1494- else throw(($getType(be) + " couldn't be cast to (Int, Int)"))
1487+ let ds = toBase58String(value(bz))
1488+ let dz = bZ(dt)
1489+ let dB = bZ(du)
1490+ let hK = {
1491+ let bd = invoke(this, "getOneTknV2READONLY", [fW, hG], nil)
1492+ if ($isInstanceOf(bd, "(Int, Int)"))
1493+ then bd
1494+ else throw(($getType(bd) + " couldn't be cast to (Int, Int)"))
14951495 }
1496- let gg = hL._1
1497- let cK = hL._2
1498- let eh = do("", dt, hH, this)
1499- let dK = eh._1
1500- let dL = eh._2
1501- let hM = (dK + dL)
1502- let fV = if ((hM == 0))
1503- then if ((gg == 0))
1496+ let gf = hK._1
1497+ let cJ = hK._2
1498+ let eg = dn("", ds, hG, this)
1499+ let dJ = eg._1
1500+ let dK = eg._2
1501+ let hL = (dJ + dK)
1502+ let fU = if ((hL == 0))
1503+ then if ((gf == 0))
15041504 then 0
15051505 else throw("bonus calculation error")
1506- else fraction((gg - hM), a, hM)
1507- $Tuple2(nil, $Tuple3(gg, cK, fV))
1506+ else fraction((gf - hL), a, hL)
1507+ $Tuple2(nil, $Tuple3(gf, cJ, fU))
15081508 }
15091509
15101510
15111511
1512-@Callable(da)
1513-func getNoLess (hN,hO) = {
1514- let eh = ft(da)
1515- let dK = eh._1
1516- let dL = eh._2
1517- let dW = eh._3
1518- let dq = eh._4
1519- let dM = eh._5
1520- if ((hN > dK))
1521- then throw(((("Failed: " + toString(dK)) + " < ") + toString(hN)))
1522- else if ((hO > dL))
1523- then throw(((("Failed: " + toString(dL)) + " < ") + toString(hO)))
1512+@Callable(cZ)
1513+func getNoLess (hM,hN) = {
1514+ let eg = fs(cZ)
1515+ let dJ = eg._1
1516+ let dK = eg._2
1517+ let dV = eg._3
1518+ let dp = eg._4
1519+ let dL = eg._5
1520+ if ((hM > dJ))
1521+ then throw(((("Failed: " + toString(dJ)) + " < ") + toString(hM)))
1522+ else if ((hN > dK))
1523+ then throw(((("Failed: " + toString(dK)) + " < ") + toString(hN)))
15241524 else {
1525- let fb = eU(toBigInt(0), toBigInt(0), toBigInt(0))
1526- if ((fb == fb))
1525+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1526+ if ((fa == fa))
15271527 then {
1528- let hP = invoke(aU, "burn", [dW], [AttachedPayment(dq, dW)])
1529- if ((hP == hP))
1528+ let hO = invoke(aT, "burn", [dV], [AttachedPayment(dp, dV)])
1529+ if ((hO == hO))
15301530 then {
1531- let hQ = fc(-(dK), -(dL), 0)
1532- let gu = hQ._1
1533- let eT = hQ._2
1534- let gv = fg(fb, eT)
1535- if ((gv == gv))
1536- then (dM ++ gu)
1531+ let hP = fb(-(dJ), -(dK), 0)
1532+ let gt = hP._1
1533+ let eS = hP._2
1534+ let gu = ff(fa, eS)
1535+ if ((gu == gu))
1536+ then (dL ++ gt)
15371537 else throw("Strict value is not equal to itself.")
15381538 }
15391539 else throw("Strict value is not equal to itself.")
15441544
15451545
15461546
1547-@Callable(da)
1548-func unstakeAndGet (cJ) = {
1549- let hR = if ((size(da.payments) != 0))
1547+@Callable(cZ)
1548+func unstakeAndGet (cI) = {
1549+ let hQ = if ((size(cZ.payments) != 0))
15501550 then throw("No pmnts expd")
15511551 else true
1552- if ((hR == hR))
1552+ if ((hQ == hQ))
15531553 then {
1554- let hS = bF()
1555- let hh = bA
1556- let hT = valueOrErrorMessage(addressFromString(hS[D]), "Wr st addr")
1557- let fb = eU(toBigInt(0), toBigInt(0), toBigInt(0))
1558- if ((fb == fb))
1554+ let hR = bE()
1555+ let hg = bz
1556+ let hS = valueOrErrorMessage(addressFromString(hR[D]), "Wr st addr")
1557+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1558+ if ((fa == fa))
15591559 then {
1560- let hU = invoke(hT, "unstake", [toBase58String(hh), cJ], nil)
1561- if ((hU == hU))
1560+ let hT = invoke(hS, "unstake", [toBase58String(hg), cI], nil)
1561+ if ((hT == hT))
15621562 then {
1563- let eh = do(toBase58String(da.transactionId), toBase58String(hh), cJ, da.caller)
1564- let dK = eh._1
1565- let dL = eh._2
1566- let dy = parseIntValue(eh._9)
1567- let dM = eh._10
1568- let fv = if (!(bi(da.caller)))
1569- then if (bk())
1563+ let eg = dn(toBase58String(cZ.transactionId), toBase58String(hg), cI, cZ.caller)
1564+ let dJ = eg._1
1565+ let dK = eg._2
1566+ let dx = parseIntValue(eg._9)
1567+ let dL = eg._10
1568+ let fu = if (!(bh(cZ.caller)))
1569+ then if (bj())
15701570 then true
1571- else (bz == t)
1571+ else (by == t)
15721572 else false
1573- let hV = if (fv)
1574- then throw(("Blocked: " + toString(dy)))
1573+ let hU = if (fu)
1574+ then throw(("Blocked: " + toString(dx)))
15751575 else true
1576- if ((hV == hV))
1576+ if ((hU == hU))
15771577 then {
1578- let hW = invoke(aU, "burn", [cJ], [AttachedPayment(hh, cJ)])
1579- if ((hW == hW))
1578+ let hV = invoke(aT, "burn", [cI], [AttachedPayment(hg, cI)])
1579+ if ((hV == hV))
15801580 then {
1581- let hX = fc(-(dK), -(dL), 0)
1582- let gu = hX._1
1583- let eT = hX._2
1584- let gv = fg(fb, eT)
1585- if ((gv == gv))
1586- then (dM ++ gu)
1581+ let hW = fb(-(dJ), -(dK), 0)
1582+ let gt = hW._1
1583+ let eS = hW._2
1584+ let gu = ff(fa, eS)
1585+ if ((gu == gu))
1586+ then (dL ++ gt)
15871587 else throw("Strict value is not equal to itself.")
15881588 }
15891589 else throw("Strict value is not equal to itself.")
15991599
16001600
16011601
1602-@Callable(da)
1603-func unstakeAndGetNoLess (hY,hZ,hO) = {
1604- let fv = if (!(bi(da.caller)))
1605- then if (bk())
1602+@Callable(cZ)
1603+func unstakeAndGetNoLess (hX,hY,hN) = {
1604+ let fu = if (!(bh(cZ.caller)))
1605+ then if (bj())
16061606 then true
1607- else (bz == t)
1607+ else (by == t)
16081608 else false
1609- let gV = [if (!(fv))
1609+ let gU = [if (!(fu))
16101610 then true
1611- else throw("get operation is blocked by admin"), if ((size(da.payments) == 0))
1611+ else throw("get operation is blocked by admin"), if ((size(cZ.payments) == 0))
16121612 then true
16131613 else throw("no payments are expected")]
1614- if ((gV == gV))
1614+ if ((gU == gU))
16151615 then {
1616- let fb = eU(toBigInt(0), toBigInt(0), toBigInt(0))
1617- if ((fb == fb))
1616+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1617+ if ((fa == fa))
16181618 then {
1619- let hU = invoke(bH, "unstake", [toBase58String(bA), hY], nil)
1620- if ((hU == hU))
1619+ let hT = invoke(bG, "unstake", [toBase58String(bz), hX], nil)
1620+ if ((hT == hT))
16211621 then {
1622- let ia = do(toBase58String(da.transactionId), toBase58String(bA), hY, da.caller)
1623- let dK = ia._1
1624- let dL = ia._2
1625- let dM = ia._10
1626- let ib = [if ((dK >= hZ))
1622+ let hZ = dn(toBase58String(cZ.transactionId), toBase58String(bz), hX, cZ.caller)
1623+ let dJ = hZ._1
1624+ let dK = hZ._2
1625+ let dL = hZ._10
1626+ let ia = [if ((dJ >= hY))
16271627 then true
1628- else throw(makeString(["amount asset amount to receive is less than ", toString(hZ)], "")), if ((dL >= hO))
1628+ else throw(makeString(["amount asset amount to receive is less than ", toString(hY)], "")), if ((dK >= hN))
16291629 then true
1630- else throw(makeString(["price asset amount to receive is less than ", toString(hO)], ""))]
1631- if ((ib == ib))
1630+ else throw(makeString(["price asset amount to receive is less than ", toString(hN)], ""))]
1631+ if ((ia == ia))
16321632 then {
1633- let hP = invoke(aU, "burn", [hY], [AttachedPayment(bA, hY)])
1634- if ((hP == hP))
1633+ let hO = invoke(aT, "burn", [hX], [AttachedPayment(bz, hX)])
1634+ if ((hO == hO))
16351635 then {
1636- let ic = fc(-(dK), -(dL), 0)
1637- let gu = ic._1
1638- let eT = ic._2
1639- let gv = fg(fb, eT)
1640- if ((gv == gv))
1641- then (dM ++ gu)
1636+ let ib = fb(-(dJ), -(dK), 0)
1637+ let gt = ib._1
1638+ let eS = ib._2
1639+ let gu = ff(fa, eS)
1640+ if ((gu == gu))
1641+ then (dL ++ gt)
16421642 else throw("Strict value is not equal to itself.")
16431643 }
16441644 else throw("Strict value is not equal to itself.")
16541654
16551655
16561656
1657-@Callable(da)
1658-func unstakeAndGetOneTknV2 (hY,fX,fY) = {
1659- let hr = {
1660- let be = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1661- if ($isInstanceOf(be, "Boolean"))
1662- then be
1663- else throw(($getType(be) + " couldn't be cast to Boolean"))
1657+@Callable(cZ)
1658+func unstakeAndGetOneTknV2 (hX,fW,fX) = {
1659+ let hq = {
1660+ let bd = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1661+ if ($isInstanceOf(bd, "Boolean"))
1662+ then bd
1663+ else throw(($getType(bd) + " couldn't be cast to Boolean"))
16641664 }
1665- let fv = if (!(bi(da.caller)))
1666- then if (if (bk())
1665+ let fu = if (!(bh(cZ.caller)))
1666+ then if (if (bj())
16671667 then true
1668- else (bz == t))
1668+ else (by == t))
16691669 then true
1670- else hr
1670+ else hq
16711671 else false
1672- let gV = [if (if (!(fv))
1672+ let gU = [if (if (!(fu))
16731673 then true
1674- else gz(da))
1674+ else gy(cZ))
16751675 then true
1676- else ba("get operation is blocked by admin"), if ((size(da.payments) == 0))
1676+ else aZ("get operation is blocked by admin"), if ((size(cZ.payments) == 0))
16771677 then true
1678- else ba("no payments are expected")]
1679- if ((gV == gV))
1678+ else aZ("no payments are expected")]
1679+ if ((gU == gU))
16801680 then {
1681- let hS = bF()
1682- let hh = bA
1683- let hT = valueOrErrorMessage(addressFromString(hS[D]), "Wr st addr")
1684- let ds = da.caller
1685- let id = this
1686- let hU = invoke(hT, "unstakeINTERNAL", [hh, hY, ds.bytes, id.bytes], nil)
1687- if ((hU == hU))
1681+ let hR = bE()
1682+ let hg = bz
1683+ let hS = valueOrErrorMessage(addressFromString(hR[D]), "Wr st addr")
1684+ let dr = cZ.caller
1685+ let ic = this
1686+ let hT = invoke(hS, "unstakeINTERNAL", [hg, hX, dr.bytes, ic.bytes], nil)
1687+ if ((hT == hT))
16881688 then {
1689- let ie = fW(fX, fY, [AttachedPayment(hh, hY)], da.caller, da.originCaller, da.transactionId)
1690- let dM = ie._1
1691- let gh = ie._2
1692- $Tuple2(dM, gh)
1689+ let id = fV(fW, fX, [AttachedPayment(hg, hX)], cZ.caller, cZ.originCaller, cZ.transactionId)
1690+ let dL = id._1
1691+ let gg = id._2
1692+ $Tuple2(dL, gg)
16931693 }
16941694 else throw("Strict value is not equal to itself.")
16951695 }
16981698
16991699
17001700
1701-@Callable(da)
1702-func putOneTknV2WithBonusREADONLY (if,ig) = {
1703- let ih = fB(if, ig, "", "", true)
1704- let fQ = ih._1
1705- let dM = ih._2
1706- let cK = ih._3
1707- let fV = ih._4
1708- $Tuple2(nil, $Tuple3(fQ, cK, fV))
1701+@Callable(cZ)
1702+func putOneTknV2WithBonusREADONLY (ie,if) = {
1703+ let ig = fA(ie, if, "", "", true)
1704+ let fP = ig._1
1705+ let dL = ig._2
1706+ let cJ = ig._3
1707+ let fU = ig._4
1708+ $Tuple2(nil, $Tuple3(fP, cJ, fU))
17091709 }
17101710
17111711
17121712
1713-@Callable(da)
1714-func putOneTknV2WithoutTakeFeeREADONLY (if,ig) = {
1715- let ii = fB(if, ig, "", "", false)
1716- let fQ = ii._1
1717- let dM = ii._2
1718- let cK = ii._3
1719- let fV = ii._4
1720- $Tuple2(nil, $Tuple3(fQ, cK, fV))
1713+@Callable(cZ)
1714+func putOneTknV2WithoutTakeFeeREADONLY (ie,if) = {
1715+ let ih = fA(ie, if, "", "", false)
1716+ let fP = ih._1
1717+ let dL = ih._2
1718+ let cJ = ih._3
1719+ let fU = ih._4
1720+ $Tuple2(nil, $Tuple3(fP, cJ, fU))
17211721 }
17221722
17231723
17241724
1725-@Callable(da)
1726-func activate (ij,ik) = if ((toString(da.caller) != toString(aU)))
1725+@Callable(cZ)
1726+func activate (ii,ij) = if ((toString(cZ.caller) != toString(aT)))
17271727 then throw("denied")
1728- else $Tuple2([StringEntry(ak(), ij), StringEntry(al(), ik), StringEntry(am(), toString(l)), StringEntry(an(height), toString(l))], "success")
1728+ else $Tuple2([StringEntry(ak(), ii), StringEntry(al(), ij), StringEntry(am(), toString(l)), StringEntry(an(height), toString(l))], "success")
17291729
17301730
17311731
1732-@Callable(da)
1733-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bn())
1732+@Callable(cZ)
1733+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bm())
17341734
17351735
17361736
1737-@Callable(da)
1738-func getAccBalanceWrapperREADONLY (cb) = $Tuple2(nil, ca(cb))
1737+@Callable(cZ)
1738+func getAccBalanceWrapperREADONLY (ca) = $Tuple2(nil, bZ(ca))
17391739
17401740
17411741
1742-@Callable(da)
1743-func calcPricesWrapperREADONLY (cu,cv,cz) = {
1744- let il = cy(cu, cv, cz)
1745- $Tuple2(nil, [toString(il[0]), toString(il[1]), toString(il[2])])
1742+@Callable(cZ)
1743+func calcPricesWrapperREADONLY (ct,cu,cy) = {
1744+ let ik = cx(ct, cu, cy)
1745+ $Tuple2(nil, [toString(ik[0]), toString(ik[1]), toString(ik[2])])
17461746 }
17471747
17481748
17491749
1750-@Callable(da)
1751-func fromX18WrapperREADONLY (N,im) = $Tuple2(nil, M(parseBigIntValue(N), im))
1750+@Callable(cZ)
1751+func fromX18WrapperREADONLY (N,il) = $Tuple2(nil, M(parseBigIntValue(N), il))
17521752
17531753
17541754
1755-@Callable(da)
1755+@Callable(cZ)
17561756 func toX18WrapperREADONLY (J,K) = $Tuple2(nil, toString(I(J, K)))
17571757
17581758
17591759
1760-@Callable(da)
1761-func calcPriceBigIntWrapperREADONLY (cd,ce) = $Tuple2(nil, toString(cc(parseBigIntValue(cd), parseBigIntValue(ce))))
1760+@Callable(cZ)
1761+func calcPriceBigIntWrapperREADONLY (cc,cd) = $Tuple2(nil, toString(cb(parseBigIntValue(cc), parseBigIntValue(cd))))
17621762
17631763
17641764
1765-@Callable(da)
1766-func estimatePutOperationWrapperREADONLY (dp,cj,dO,dP,dQ,dR,in,dS,dT) = $Tuple2(nil, dN(dp, cj, dO, dP, dQ, dR, in, dS, dT, true, false, 0, ""))
1765+@Callable(cZ)
1766+func estimatePutOperationWrapperREADONLY (do,ci,dN,dO,dP,dQ,im,dR,dS) = $Tuple2(nil, dM(do, ci, dN, dO, dP, dQ, im, dR, dS, true, false, 0, ""))
17671767
17681768
17691769
1770-@Callable(da)
1771-func estimateGetOperationWrapperREADONLY (dp,io,dr,in) = {
1772- let eh = do(dp, io, dr, addressFromStringValue(in))
1773- $Tuple2(nil, $Tuple10(eh._1, eh._2, eh._3, eh._4, eh._5, eh._6, eh._7, toString(eh._8), eh._9, eh._10))
1770+@Callable(cZ)
1771+func estimateGetOperationWrapperREADONLY (do,in,dq,im) = {
1772+ let eg = dn(do, in, dq, addressFromStringValue(im))
1773+ $Tuple2(nil, $Tuple10(eg._1, eg._2, eg._3, eg._4, eg._5, eg._6, eg._7, toString(eg._8), eg._9, eg._10))
17741774 }
17751775
17761776
17771777
1778-@Callable(da)
1778+@Callable(cZ)
17791779 func changeAmp () = {
1780- let ip = invoke(aU, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1781- let iq = {
1782- let aQ = ip
1783- if ($isInstanceOf(aQ, "List[Any]"))
1780+ let io = invoke(aT, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1781+ let ip = {
1782+ let aP = io
1783+ if ($isInstanceOf(aP, "List[Any]"))
17841784 then {
1785- let ir = aQ
1785+ let iq = aP
17861786 $Tuple3({
1787- let be = ir[0]
1788- if ($isInstanceOf(be, "Int"))
1789- then be
1790- else throw(($getType(be) + " couldn't be cast to Int"))
1787+ let bd = iq[0]
1788+ if ($isInstanceOf(bd, "Int"))
1789+ then bd
1790+ else throw(($getType(bd) + " couldn't be cast to Int"))
17911791 }, {
1792- let be = ir[1]
1793- if ($isInstanceOf(be, "Int"))
1794- then be
1795- else throw(($getType(be) + " couldn't be cast to Int"))
1792+ let bd = iq[1]
1793+ if ($isInstanceOf(bd, "Int"))
1794+ then bd
1795+ else throw(($getType(bd) + " couldn't be cast to Int"))
17961796 }, {
1797- let be = ir[2]
1798- if ($isInstanceOf(be, "Int"))
1799- then be
1800- else throw(($getType(be) + " couldn't be cast to Int"))
1797+ let bd = iq[2]
1798+ if ($isInstanceOf(bd, "Int"))
1799+ then bd
1800+ else throw(($getType(bd) + " couldn't be cast to Int"))
18011801 })
18021802 }
1803- else ba("invalid entry type")
1803+ else aZ("invalid entry type")
18041804 }
1805- let is = iq._1
1806- let it = iq._2
1807- let iu = iq._3
1808- let iv = parseIntValue(getStringValue(am()))
1809- let iw = (iv + it)
1810- let ix = if ((0 > it))
1811- then if ((iu > iw))
1812- then iu
1813- else iw
1814- else if ((iw > iu))
1815- then iu
1816- else iw
1817- let iy = valueOrElse(getInteger(ap()), 0)
1818- let iz = (iy + is)
1819- let gV = [if ((height > iz))
1805+ let ir = ip._1
1806+ let is = ip._2
1807+ let it = ip._3
1808+ let iu = parseIntValue(getStringValue(am()))
1809+ let iv = (iu + is)
1810+ let iw = if ((0 > is))
1811+ then if ((it > iv))
1812+ then it
1813+ else iv
1814+ else if ((iv > it))
1815+ then it
1816+ else iv
1817+ let ix = valueOrElse(getInteger(ap()), 0)
1818+ let iy = (ix + ir)
1819+ let gU = [if ((height > iy))
18201820 then true
1821- else ba("try again in few blocks"), if ((iv != ix))
1821+ else aZ("try again in few blocks"), if ((iu != iw))
18221822 then true
1823- else ba("already reached target")]
1824- if ((gV == gV))
1825- then [IntegerEntry(ap(), height), StringEntry(am(), toString(ix)), StringEntry(an(height), toString(ix))]
1823+ else aZ("already reached target")]
1824+ if ((gU == gU))
1825+ then [IntegerEntry(ap(), height), StringEntry(am(), toString(iw)), StringEntry(an(height), toString(iw))]
18261826 else throw("Strict value is not equal to itself.")
18271827 }
18281828
18291829
1830-@Verifier(iA)
1831-func iB () = {
1832- let iC = {
1833- let aQ = gw()
1834- if ($isInstanceOf(aQ, "ByteVector"))
1830+@Verifier(iz)
1831+func iA () = {
1832+ let iB = {
1833+ let aP = gv()
1834+ if ($isInstanceOf(aP, "ByteVector"))
18351835 then {
1836- let gA = aQ
1837- gA
1836+ let gz = aP
1837+ gz
18381838 }
1839- else if ($isInstanceOf(aQ, "Unit"))
1840- then iA.senderPublicKey
1839+ else if ($isInstanceOf(aP, "Unit"))
1840+ then iz.senderPublicKey
18411841 else throw("Match error")
18421842 }
1843- let aQ = iA
1844- if ($isInstanceOf(aQ, "Order"))
1843+ let aP = iz
1844+ if ($isInstanceOf(aP, "Order"))
18451845 then {
1846- let fj = aQ
1847- let iD = bl()
1848- let iE = if (gH())
1846+ let fi = aP
1847+ let iC = bk()
1848+ let iD = if (gG())
18491849 then $Tuple2(true, "")
1850- else fi(fj)
1851- let aK = iE._1
1852- let aL = iE._2
1853- let aM = sigVerify(fj.bodyBytes, fj.proofs[0], fj.senderPublicKey)
1854- let aN = sigVerify(fj.bodyBytes, fj.proofs[1], iD)
1855- if (if (if (aK)
1850+ else fh(fi)
1851+ let aK = iD._1
1852+ let aL = iD._2
1853+ let aM = sigVerify(fi.bodyBytes, fi.proofs[1], iC)
1854+ if (if (aK)
18561855 then aM
18571856 else false)
1858- then aN
1859- else false)
18601857 then true
1861- else aJ(aK, aL, aM, aN)
1858+ else aJ(aK, aL, aM)
18621859 }
1863- else if ($isInstanceOf(aQ, "SetScriptTransaction"))
1860+ else if ($isInstanceOf(aP, "SetScriptTransaction"))
18641861 then {
1865- let aV = aQ
1866- if (sigVerify(iA.bodyBytes, iA.proofs[0], iC))
1862+ let aU = aP
1863+ if (sigVerify(iz.bodyBytes, iz.proofs[0], iB))
18671864 then true
18681865 else {
1869- let iF = blake2b256(value(aV.script))
1870- let iG = fromBase64String(value(getString(aU, aF())))
1871- let iH = scriptHash(this)
1872- if ((iG == iF))
1873- then (iH != iF)
1866+ let iE = blake2b256(value(aU.script))
1867+ let iF = fromBase64String(value(getString(aT, aF())))
1868+ let iG = scriptHash(this)
1869+ if ((iF == iE))
1870+ then (iG != iE)
18741871 else false
18751872 }
18761873 }
1877- else sigVerify(iA.bodyBytes, iA.proofs[0], iC)
1874+ else sigVerify(iz.bodyBytes, iz.proofs[0], iB)
18781875 }
18791876
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = toBigInt(100000000)
77
88 let c = toBigInt(1000000000000000000)
99
1010 let d = toBigInt(0)
1111
1212 let e = toBigInt(0)
1313
1414 let f = toBigInt(1)
1515
1616 let g = toBigInt(2)
1717
1818 let h = toBigInt(3)
1919
2020 let i = toBigInt(4)
2121
2222 let j = toBigInt((a - ((a * 1) / a)))
2323
2424 let k = "WAVES"
2525
2626 let l = 50
2727
2828 let m = "100"
2929
3030 let n = "1"
3131
3232 let o = "__"
3333
3434 let p = ""
3535
3636 let q = 1
3737
3838 let r = 2
3939
4040 let s = 3
4141
4242 let t = 4
4343
4444 let u = 1
4545
4646 let v = 2
4747
4848 let w = 3
4949
5050 let x = 4
5151
5252 let y = 5
5353
5454 let z = 6
5555
5656 let A = 7
5757
5858 let B = 8
5959
6060 let C = 9
6161
6262 let D = 1
6363
6464 let E = 6
6565
6666 let F = 7
6767
6868 let G = 10
6969
7070 let H = fraction(10, a, 10000)
7171
7272 func I (J,K) = fraction(toBigInt(J), c, toBigInt(K))
7373
7474
7575 func L (J,K) = fraction(J, c, K)
7676
7777
7878 func M (N,O) = toInt(fraction(N, toBigInt(O), c))
7979
8080
8181 func P (N,O,Q) = toInt(fraction(N, toBigInt(O), c, Q))
8282
8383
8484 func R (J,K) = fraction(J, c, toBigInt(K))
8585
8686
8787 func S (N,O) = fraction(N, toBigInt(O), c)
8888
8989
9090 func T (U,V,W) = fraction(U, V, W)
9191
9292
9393 func X (N) = if ((d > N))
9494 then -(N)
9595 else N
9696
9797
9898 func Y (N) = if ((d > N))
9999 then -(N)
100100 else N
101101
102102
103103 func Z () = "%s__factoryContract"
104104
105105
106106 func aa () = "%s__managerPublicKey"
107107
108108
109109 func ab () = "%s__managerVaultAddress"
110110
111111
112112 func ac () = "%s%s__price__last"
113113
114114
115115 func ad (ae,af) = makeString(["%s%s%d%d__price__history", toString(ae), toString(af)], o)
116116
117117
118118 func ag (ah,ai) = ((("%s%s%s__P__" + ah) + "__") + ai)
119119
120120
121121 func aj (ah,ai) = ((("%s%s%s__G__" + ah) + "__") + ai)
122122
123123
124124 func ak () = "%s__amountAsset"
125125
126126
127127 func al () = "%s__priceAsset"
128128
129129
130130 func am () = "%s__amp"
131131
132132
133133 func an (ao) = ("%s%d__amp__" + toString(ao))
134134
135135
136136 func ap () = "%s__changeAmpLastCall"
137137
138138
139139 let aq = "%s__fee"
140140
141141 let ar = valueOrElse(getInteger(this, aq), H)
142142
143143 let as = makeString(["%s", "dLp"], o)
144144
145145 let at = makeString(["%s", "dLpRefreshedHeight"], o)
146146
147147 let au = makeString(["%s", "refreshDLpDelay"], o)
148148
149149 let av = 30
150150
151151 let aw = valueOrElse(getInteger(this, au), av)
152152
153153 func ax () = "%s__factoryConfig"
154154
155155
156156 func ay () = "%s%s__matcher__publicKey"
157157
158158
159159 func az (aA,aB) = (((("%d%d%s__" + aA) + "__") + aB) + "__config")
160160
161161
162162 func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
163163
164164
165165 func aE () = "%s__shutdown"
166166
167167
168168 func aF () = "%s__allowedLpStableScriptHash"
169169
170170
171171 func aG () = "%s__feeCollectorAddress"
172172
173173
174174 func aH (aI) = ("%s%s__skipOrderValidation__" + aI)
175175
176176
177-func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
177+func aJ (aK,aL,aM) = throw((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " matcherValid=") + toString(aM)))
178178
179179
180-func aO (aP) = {
181- let aQ = addressFromString(aP)
182- if ($isInstanceOf(aQ, "Address"))
180+func aN (aO) = {
181+ let aP = addressFromString(aO)
182+ if ($isInstanceOf(aP, "Address"))
183183 then {
184- let aR = aQ
185- aR
184+ let aQ = aP
185+ aQ
186186 }
187187 else this
188188 }
189189
190190
191-func aS () = {
192- let aT = {
193- let aQ = getString(Z())
194- if ($isInstanceOf(aQ, "String"))
191+func aR () = {
192+ let aS = {
193+ let aP = getString(Z())
194+ if ($isInstanceOf(aP, "String"))
195195 then {
196- let aU = aQ
197- aO(aU)
196+ let aT = aP
197+ aN(aT)
198198 }
199199 else this
200200 }
201- let aQ = getString(aT, ab())
202- if ($isInstanceOf(aQ, "String"))
201+ let aP = getString(aS, ab())
202+ if ($isInstanceOf(aP, "String"))
203203 then {
204- let aV = aQ
205- aO(aV)
204+ let aU = aP
205+ aN(aU)
206206 }
207207 else this
208208 }
209209
210210
211-func aW (aX,aY) = valueOrErrorMessage(getString(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " not defined"], ""))
211+func aV (aW,aX) = valueOrErrorMessage(getString(aW, aX), makeString(["mandatory ", toString(aW), ".", aX, " not defined"], ""))
212212
213213
214-func aZ (aX,aY) = valueOrErrorMessage(getInteger(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " not defined"], ""))
214+func aY (aW,aX) = valueOrErrorMessage(getInteger(aW, aX), makeString(["mandatory ", toString(aW), ".", aX, " not defined"], ""))
215215
216216
217-func ba (bb) = throw(makeString(["lp_stable.ride:", bb], " "))
217+func aZ (ba) = throw(makeString(["lp_stable.ride:", ba], " "))
218218
219219
220-func bc (bb) = makeString(["lp_stable.ride:", bb], " ")
220+func bb (ba) = makeString(["lp_stable.ride:", ba], " ")
221221
222222
223-let aU = addressFromStringValue(aW(this, Z()))
223+let aT = addressFromStringValue(aV(this, Z()))
224224
225-let bd = {
226- let be = invoke(aU, "getInFeeREADONLY", [toString(this)], nil)
227- if ($isInstanceOf(be, "Int"))
228- then be
229- else throw(($getType(be) + " couldn't be cast to Int"))
225+let bc = {
226+ let bd = invoke(aT, "getInFeeREADONLY", [toString(this)], nil)
227+ if ($isInstanceOf(bd, "Int"))
228+ then bd
229+ else throw(($getType(bd) + " couldn't be cast to Int"))
230230 }
231231
232-let bf = {
233- let be = invoke(aU, "getOutFeeREADONLY", [toString(this)], nil)
234- if ($isInstanceOf(be, "Int"))
235- then be
236- else throw(($getType(be) + " couldn't be cast to Int"))
232+let be = {
233+ let bd = invoke(aT, "getOutFeeREADONLY", [toString(this)], nil)
234+ if ($isInstanceOf(bd, "Int"))
235+ then bd
236+ else throw(($getType(bd) + " couldn't be cast to Int"))
237237 }
238238
239-func bg (bh) = makeString(["%s%s", "whitelisted", toString(bh)], o)
239+func bf (bg) = makeString(["%s%s", "whitelisted", toString(bg)], o)
240240
241241
242-func bi (bh) = valueOrElse(getBoolean(aU, bg(bh)), false)
242+func bh (bg) = valueOrElse(getBoolean(aT, bf(bg)), false)
243243
244244
245-let bj = aW(this, am())
245+let bi = aV(this, am())
246246
247-func bk () = valueOrElse(getBoolean(aU, aE()), false)
247+func bj () = valueOrElse(getBoolean(aT, aE()), false)
248248
249249
250-func bl () = fromBase58String(aW(aU, ay()))
250+func bk () = fromBase58String(aV(aT, ay()))
251251
252252
253-let bm = addressFromStringValue(aW(aU, aG()))
253+let bl = addressFromStringValue(aV(aT, aG()))
254254
255-func bn () = {
256- let bo = aW(this, ak())
257- let bp = aW(this, al())
258- let bq = aZ(aU, aC(bp))
259- let aA = aZ(aU, aC(bo))
260- split(aW(aU, az(toString(aA), toString(bq))), o)
255+func bm () = {
256+ let bn = aV(this, ak())
257+ let bo = aV(this, al())
258+ let bp = aY(aT, aC(bo))
259+ let aA = aY(aT, aC(bn))
260+ split(aV(aT, az(toString(aA), toString(bp))), o)
261261 }
262262
263263
264-func br (bs) = if ((bs == k))
264+func bq (br) = if ((br == k))
265265 then unit
266- else fromBase58String(bs)
266+ else fromBase58String(br)
267267
268268
269-func bt (bs) = if ((bs == unit))
269+func bs (br) = if ((br == unit))
270270 then k
271- else toBase58String(value(bs))
271+ else toBase58String(value(br))
272272
273273
274-func bu (bv) = $Tuple7(addressFromStringValue(bv[u]), parseIntValue(bv[v]), fromBase58String(bv[w]), br(bv[x]), br(bv[y]), parseIntValue(bv[z]), parseIntValue(bv[A]))
274+func bt (bu) = $Tuple7(addressFromStringValue(bu[u]), parseIntValue(bu[v]), fromBase58String(bu[w]), bq(bu[x]), bq(bu[y]), parseIntValue(bu[z]), parseIntValue(bu[A]))
275275
276276
277-let bw = bu(bn())
277+let bv = bt(bm())
278278
279-let bx = bw
279+let bw = bv
280280
281-let by = bx._1
281+let bx = bw._1
282282
283-let bz = bx._2
283+let by = bw._2
284284
285-let bA = bx._3
285+let bz = bw._3
286286
287-let bB = bx._4
287+let bA = bw._4
288288
289-let bC = bx._5
289+let bB = bw._5
290290
291-let bD = bx._6
291+let bC = bw._6
292292
293-let bE = bx._7
293+let bD = bw._7
294294
295-func bF () = split(aW(aU, ax()), o)
295+func bE () = split(aV(aT, ax()), o)
296296
297297
298-let bG = bF()
298+let bF = bE()
299299
300-let bH = valueOrErrorMessage(addressFromString(bG[D]), "Invalid staking contract address")
300+let bG = valueOrErrorMessage(addressFromString(bF[D]), "Invalid staking contract address")
301301
302-let bI = valueOrErrorMessage(addressFromString(bG[F]), "Invalid slipage contract address")
302+let bH = valueOrErrorMessage(addressFromString(bF[F]), "Invalid slipage contract address")
303303
304-let bJ = valueOrErrorMessage(addressFromString(bG[G]), "Invalid gwx contract address")
304+let bI = valueOrErrorMessage(addressFromString(bF[G]), "Invalid gwx contract address")
305305
306-let bK = valueOrErrorMessage(addressFromString(bG[E]), "Invalid gwx contract address")
306+let bJ = valueOrErrorMessage(addressFromString(bF[E]), "Invalid gwx contract address")
307307
308-func bL (bM,bN,bO,bP,bQ,bR,bS,bT,bU,bV) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(bR), toString(bS), toString(bT), toString(bU), toString(bV)], o)
308+func bK (bL,bM,bN,bO,bP,bQ,bR,bS,bT,bU) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(bR), toString(bS), toString(bT), toString(bU)], o)
309309
310310
311-func bW (bX,bY,bZ,bP,bS,bT) = makeString(["%d%d%d%d%d%d", toString(bX), toString(bY), toString(bZ), toString(bP), toString(bS), toString(bT)], o)
311+func bV (bW,bX,bY,bO,bR,bS) = makeString(["%d%d%d%d%d%d", toString(bW), toString(bX), toString(bY), toString(bO), toString(bR), toString(bS)], o)
312312
313313
314-func ca (cb) = if ((cb == "WAVES"))
314+func bZ (ca) = if ((ca == "WAVES"))
315315 then wavesBalance(this).available
316- else assetBalance(this, fromBase58String(cb))
316+ else assetBalance(this, fromBase58String(ca))
317317
318318
319-func cc (cd,ce) = fraction(cd, c, ce)
319+func cb (cc,cd) = fraction(cc, c, cd)
320320
321321
322-func cf (cd,ce,Q) = fraction(cd, c, ce, Q)
322+func ce (cc,cd,Q) = fraction(cc, c, cd, Q)
323323
324324
325-func cg (ch,ci,cj) = {
326- let ck = fraction((ch - ci), b, ci)
327- let cl = ((cj - X(ck)) > d)
328- if (!(cl))
329- then throw(("Big slpg: " + toString(ck)))
330- else $Tuple2(cl, min([ch, ci]))
325+func cf (cg,ch,ci) = {
326+ let cj = fraction((cg - ch), b, ch)
327+ let ck = ((ci - X(cj)) > d)
328+ if (!(ck))
329+ then throw(("Big slpg: " + toString(cj)))
330+ else $Tuple2(ck, min([cg, ch]))
331331 }
332332
333333
334-func cm (cn,co,cp) = {
335- let ck = fraction(co, b, cn)
336- let cq = (cp > ck)
337- if (if (cq)
334+func cl (cm,cn,co) = {
335+ let cj = fraction(cn, b, cm)
336+ let cp = (co > cj)
337+ if (if (cp)
338338 then true
339- else (co > cn))
340- then throw(((((((toString(co) + " ") + toString(cn)) + " ") + toString(ck)) + " ") + toString(cp)))
341- else cq
339+ else (cn > cm))
340+ then throw(((((((toString(cn) + " ") + toString(cm)) + " ") + toString(cj)) + " ") + toString(co)))
341+ else cp
342342 }
343343
344344
345-func cr (cs,ct,cu,cv) = {
345+func cq (cr,cs,ct,cu) = {
346+ let cv = I(ct, cr)
346347 let cw = I(cu, cs)
347- let cx = I(cv, ct)
348- cc(cx, cw)
348+ cb(cw, cv)
349349 }
350350
351351
352-func cy (cu,cv,cz) = {
352+func cx (ct,cu,cy) = {
353+ let cz = bC
353354 let cA = bD
354- let cB = bE
355- let cC = cr(cA, cB, cu, cv)
356- let ce = I(cu, cA)
357- let cd = I(cv, cB)
358- let cD = I(cz, a)
359- let cE = cc(ce, cD)
360- let cF = cc(cd, cD)
361-[cC, cE, cF]
355+ let cB = cq(cz, cA, ct, cu)
356+ let cd = I(ct, cz)
357+ let cc = I(cu, cA)
358+ let cC = I(cy, a)
359+ let cD = cb(cd, cC)
360+ let cE = cb(cc, cC)
361+[cB, cD, cE]
362362 }
363363
364364
365-func cG (cu,cv,cz) = {
366- let cH = cy(cu, cv, cz)
367-[M(cH[0], a), M(cH[1], a), M(cH[2], a)]
365+func cF (ct,cu,cy) = {
366+ let cG = cx(ct, cu, cy)
367+[M(cG[0], a), M(cG[1], a), M(cG[2], a)]
368368 }
369369
370370
371-func cI (cJ,ar) = {
372- let cK = if ((ar == 0))
371+func cH (cI,ar) = {
372+ let cJ = if ((ar == 0))
373373 then 0
374- else fraction(cJ, ar, a)
375- $Tuple2((cJ - cK), cK)
374+ else fraction(cI, ar, a)
375+ $Tuple2((cI - cJ), cJ)
376376 }
377377
378378
379-func cL (cM) = {
380- let cN = cM[0]
381- let cO = cM[1]
382- let aV = (cN + cO)
383- if ((aV == e))
379+func cK (cL) = {
380+ let cM = cL[0]
381+ let cN = cL[1]
382+ let aU = (cM + cN)
383+ if ((aU == e))
384384 then e
385385 else {
386- let aR = parseIntValue(bj)
387- let cP = (aR * 2)
388- let cH = fraction(cN, cO, f)
389- let cQ = fraction(cH, i, f)
390- let cR = fraction(toBigInt(cP), aV, f)
391- let cS = toBigInt((cP - 1))
392- func cT (cU) = {
393- let cV = fraction(cU, cU, f)
394- let cW = fraction(cV, cU, f)
395- let cX = fraction(cW, f, cQ)
396- fraction((cR + fraction(cX, g, f)), cU, (fraction(cS, cU, f) + fraction(h, cX, f)))
386+ let aQ = parseIntValue(bi)
387+ let cO = (aQ * 2)
388+ let cG = fraction(cM, cN, f)
389+ let cP = fraction(cG, i, f)
390+ let cQ = fraction(toBigInt(cO), aU, f)
391+ let cR = toBigInt((cO - 1))
392+ func cS (cT) = {
393+ let cU = fraction(cT, cT, f)
394+ let cV = fraction(cU, cT, f)
395+ let cW = fraction(cV, f, cP)
396+ fraction((cQ + fraction(cW, g, f)), cT, (fraction(cR, cT, f) + fraction(h, cW, f)))
397397 }
398398
399- func cY (cZ,da) = if (cZ._2)
400- then cZ
399+ func cX (cY,cZ) = if (cY._2)
400+ then cY
401401 else {
402- let cU = cZ._1
403- let db = cT(cU)
404- let dc = (db - value(cU))
405- let dd = if ((e > dc))
406- then -(dc)
407- else dc
408- if ((f >= dd))
409- then $Tuple2(db, true)
410- else $Tuple2(db, false)
402+ let cT = cY._1
403+ let da = cS(cT)
404+ let db = (da - value(cT))
405+ let dc = if ((e > db))
406+ then -(db)
407+ else db
408+ if ((f >= dc))
409+ then $Tuple2(da, true)
410+ else $Tuple2(da, false)
411411 }
412412
413- let de = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
414- let df = {
415- let dg = de
416- let dh = size(dg)
417- let di = $Tuple2(aV, false)
418- func dj (dk,dl) = if ((dl >= dh))
419- then dk
420- else cY(dk, dg[dl])
413+ let dd = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
414+ let de = {
415+ let df = dd
416+ let dg = size(df)
417+ let dh = $Tuple2(aU, false)
418+ func di (dj,dk) = if ((dk >= dg))
419+ then dj
420+ else cX(dj, df[dk])
421421
422- func dm (dk,dl) = if ((dl >= dh))
423- then dk
422+ func dl (dj,dk) = if ((dk >= dg))
423+ then dj
424424 else throw("List size exceeds 17")
425425
426- dm(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(di, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17)
426+ dl(di(di(di(di(di(di(di(di(di(di(di(di(di(di(di(di(di(dh, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17)
427427 }
428- let cU = df._1
429- let dn = df._2
430- if (dn)
431- then cU
432- else throw(("D calculation error, D = " + toString(cU)))
428+ let cT = de._1
429+ let dm = de._2
430+ if (dm)
431+ then cT
432+ else throw(("D calculation error, D = " + toString(cT)))
433433 }
434434 }
435435
436436
437-func do (dp,dq,dr,ds) = {
438- let dt = bA
437+func dn (do,dp,dq,dr) = {
438+ let ds = bz
439+ let dt = toBase58String(value(bA))
439440 let du = toBase58String(value(bB))
440- let dv = toBase58String(value(bC))
441+ let dv = bC
441442 let dw = bD
442- let dx = bE
443- let dy = toString(bz)
444- let dz = valueOrErrorMessage(assetInfo(dt), "Wrong LP id").quantity
445- if ((toBase58String(dt) != dq))
443+ let dx = toString(by)
444+ let dy = valueOrErrorMessage(assetInfo(ds), "Wrong LP id").quantity
445+ if ((toBase58String(ds) != dp))
446446 then throw("Wrong pmt asset")
447447 else {
448- let dA = ca(du)
449- let dB = I(dA, dw)
450- let dC = ca(dv)
451- let dD = I(dC, dx)
452- let dE = cc(dD, dB)
453- let dF = M(dE, a)
454- let dG = I(dr, a)
455- let dH = I(dz, a)
456- let dI = fraction(dB, dG, dH)
457- let dJ = fraction(dD, dG, dH)
448+ let dz = bZ(dt)
449+ let dA = I(dz, dv)
450+ let dB = bZ(du)
451+ let dC = I(dB, dw)
452+ let dD = cb(dC, dA)
453+ let dE = M(dD, a)
454+ let dF = I(dq, a)
455+ let dG = I(dy, a)
456+ let dH = fraction(dA, dF, dG)
457+ let dI = fraction(dC, dF, dG)
458+ let dJ = P(dH, dv, FLOOR)
458459 let dK = P(dI, dw, FLOOR)
459- let dL = P(dJ, dx, FLOOR)
460- let dM = if ((dp == ""))
460+ let dL = if ((do == ""))
461461 then nil
462- else [ScriptTransfer(ds, dK, if ((du == "WAVES"))
462+ else [ScriptTransfer(dr, dJ, if ((dt == "WAVES"))
463463 then unit
464- else fromBase58String(du)), ScriptTransfer(ds, dL, if ((dv == "WAVES"))
464+ else fromBase58String(dt)), ScriptTransfer(dr, dK, if ((du == "WAVES"))
465465 then unit
466- else fromBase58String(dv)), StringEntry(aj(toString(ds), dp), bW(dK, dL, dr, dF, height, lastBlock.timestamp)), IntegerEntry(ac(), dF), IntegerEntry(ad(height, lastBlock.timestamp), dF)]
467- $Tuple10(dK, dL, du, dv, dA, dC, dz, dE, dy, dM)
466+ else fromBase58String(du)), StringEntry(aj(toString(dr), do), bV(dJ, dK, dq, dE, height, lastBlock.timestamp)), IntegerEntry(ac(), dE), IntegerEntry(ad(height, lastBlock.timestamp), dE)]
467+ $Tuple10(dJ, dK, dt, du, dz, dB, dy, dD, dx, dL)
468468 }
469469 }
470470
471471
472-func dN (dp,cj,dO,dP,dQ,dR,ds,dS,dT,dU,dV,dW,dX) = {
473- let dt = bA
472+func dM (do,ci,dN,dO,dP,dQ,dr,dR,dS,dT,dU,dV,dW) = {
473+ let ds = bz
474+ let dX = toBase58String(value(bA))
474475 let dY = toBase58String(value(bB))
475- let dZ = toBase58String(value(bC))
476+ let dZ = bC
476477 let ea = bD
477- let eb = bE
478- let dy = toString(bz)
479- let ec = valueOrErrorMessage(assetInfo(dt), "Wr lp as").quantity
480- let ed = [if (if ((dP == br(dY)))
481- then (dR == br(dZ))
478+ let dx = toString(by)
479+ let eb = valueOrErrorMessage(assetInfo(ds), "Wr lp as").quantity
480+ let ec = [if (if ((dO == bq(dX)))
481+ then (dQ == bq(dY))
482482 else false)
483483 then true
484- else ba("Invalid amt or price asset passed.")]
485- if ((ed == ed))
484+ else aZ("Invalid amt or price asset passed.")]
485+ if ((ec == ec))
486486 then {
487- let dA = if (dS)
488- then ca(dY)
489- else if (if (dU)
490- then (dX == dY)
487+ let dz = if (dR)
488+ then bZ(dX)
489+ else if (if (dT)
490+ then (dW == dX)
491491 else false)
492- then (ca(dY) - dW)
493- else if (dU)
494- then ca(dY)
495- else (ca(dY) - dO)
496- let dC = if (dS)
497- then ca(dZ)
498- else if (if (dU)
499- then (dX == dZ)
492+ then (bZ(dX) - dV)
493+ else if (dT)
494+ then bZ(dX)
495+ else (bZ(dX) - dN)
496+ let dB = if (dR)
497+ then bZ(dY)
498+ else if (if (dT)
499+ then (dW == dY)
500500 else false)
501- then (ca(dZ) - dW)
502- else if (dU)
503- then ca(dZ)
504- else (ca(dZ) - dQ)
505- let ee = I(dO, ea)
506- let ef = I(dQ, eb)
507- let eg = cc(ef, ee)
508- let dB = I(dA, ea)
509- let dD = I(dC, eb)
510- let co = cL([dB, dD])
511- let eh = if ((ec == 0))
501+ then (bZ(dY) - dV)
502+ else if (dT)
503+ then bZ(dY)
504+ else (bZ(dY) - dP)
505+ let ed = I(dN, dZ)
506+ let ee = I(dP, ea)
507+ let ef = cb(ee, ed)
508+ let dA = I(dz, dZ)
509+ let dC = I(dB, ea)
510+ let cn = cK([dA, dC])
511+ let eg = if ((eb == 0))
512512 then {
513- let cn = cL([(dB + ee), (dD + ef)])
514- let ei = if ((cn > co))
513+ let cm = cK([(dA + ed), (dC + ee)])
514+ let eh = if ((cm > cn))
515515 then true
516516 else throw("D1 should be greater than D0")
517- if ((ei == ei))
517+ if ((eh == eh))
518518 then {
519- let dE = d
520- let ej = d
521- let cD = cn
522- $Tuple5(M(cD, a), M(ee, ea), M(ef, eb), cc((dD + ef), (dB + ee)), ej)
519+ let dD = d
520+ let ei = d
521+ let cC = cm
522+ $Tuple5(M(cC, a), M(ed, dZ), M(ee, ea), cb((dC + ee), (dA + ed)), ei)
523523 }
524524 else throw("Strict value is not equal to itself.")
525525 }
526526 else {
527- let dE = cc(dD, dB)
528- let ek = fraction(X((dE - eg)), c, dE)
529- let ej = I(cj, a)
530- if (if (if (dV)
531- then (dE != d)
527+ let dD = cb(dC, dA)
528+ let ej = fraction(X((dD - ef)), c, dD)
529+ let ei = I(ci, a)
530+ if (if (if (dU)
531+ then (dD != d)
532532 else false)
533- then (ek > ej)
533+ then (ej > ei)
534534 else false)
535- then throw(((("Price slippage " + toString(ek)) + " > ") + toString(ej)))
535+ then throw(((("Price slippage " + toString(ej)) + " > ") + toString(ei)))
536536 else {
537- let el = I(ec, a)
538- let em = fraction(ee, cf(dD, dB, CEILING), c, CEILING)
539- let en = fraction(ef, c, cf(dD, dB, FLOOR), CEILING)
540- let eo = if ((em > ef))
541- then $Tuple2(en, ef)
542- else $Tuple2(ee, em)
543- let ep = eo._1
544- let eq = eo._2
545- let cn = cL([(dB + ep), (dD + eq)])
546- let ei = if ((cn > co))
537+ let ek = I(eb, a)
538+ let el = fraction(ed, ce(dC, dA, CEILING), c, CEILING)
539+ let em = fraction(ee, c, ce(dC, dA, FLOOR), CEILING)
540+ let en = if ((el > ee))
541+ then $Tuple2(em, ee)
542+ else $Tuple2(ed, el)
543+ let eo = en._1
544+ let ep = en._2
545+ let cm = cK([(dA + eo), (dC + ep)])
546+ let eh = if ((cm > cn))
547547 then true
548548 else throw("D1 should be greater than D0")
549- if ((ei == ei))
549+ if ((eh == eh))
550550 then {
551- let cD = fraction(el, (cn - co), co)
552- $Tuple5(P(cD, a, FLOOR), P(ep, ea, CEILING), P(eq, eb, CEILING), dE, ej)
551+ let cC = fraction(ek, (cm - cn), cn)
552+ $Tuple5(P(cC, a, FLOOR), P(eo, dZ, CEILING), P(ep, ea, CEILING), dD, ei)
553553 }
554554 else throw("Strict value is not equal to itself.")
555555 }
556556 }
557- let er = eh._1
558- let es = eh._2
559- let et = eh._3
560- let dF = M(eh._4, a)
561- let eu = M(eh._5, a)
562- if ((0 >= er))
557+ let eq = eg._1
558+ let er = eg._2
559+ let es = eg._3
560+ let dE = M(eg._4, a)
561+ let et = M(eg._5, a)
562+ if ((0 >= eq))
563563 then throw("LP <= 0")
564564 else {
565- let ev = if (!(dT))
565+ let eu = if (!(dS))
566566 then 0
567- else er
568- let ew = (dO - es)
569- let ex = (dQ - et)
570- let ey = if (if (dU)
571- then (dX == dY)
567+ else eq
568+ let ev = (dN - er)
569+ let ew = (dP - es)
570+ let ex = if (if (dT)
571+ then (dW == dX)
572572 else false)
573- then $Tuple2(dW, 0)
574- else if (if (dU)
575- then (dX == dZ)
573+ then $Tuple2(dV, 0)
574+ else if (if (dT)
575+ then (dW == dY)
576576 else false)
577- then $Tuple2(0, dW)
578- else $Tuple2(es, et)
579- let ez = ey._1
580- let eA = ey._2
581- let eB = [IntegerEntry(ac(), dF), IntegerEntry(ad(height, lastBlock.timestamp), dF), StringEntry(ag(ds, dp), bL(ez, eA, ev, dF, cj, eu, height, lastBlock.timestamp, ew, ex))]
582- $Tuple13(er, ev, dF, dA, dC, ec, dt, dy, eB, ew, ex, dP, dR)
577+ then $Tuple2(0, dV)
578+ else $Tuple2(er, es)
579+ let ey = ex._1
580+ let ez = ex._2
581+ let eA = [IntegerEntry(ac(), dE), IntegerEntry(ad(height, lastBlock.timestamp), dE), StringEntry(ag(dr, do), bK(ey, ez, eu, dE, ci, et, height, lastBlock.timestamp, ev, ew))]
582+ $Tuple13(eq, eu, dE, dz, dB, eb, ds, dx, eA, ev, ew, dO, dQ)
583583 }
584584 }
585585 else throw("Strict value is not equal to itself.")
586586 }
587587
588588
589-func eC (cM,da,eD) = {
590- let eE = g
591- let eF = cM[if ((da == 0))
589+func eB (cL,cZ,eC) = {
590+ let eD = g
591+ let eE = cL[if ((cZ == 0))
592592 then 1
593593 else 0]
594- let eG = parseBigIntValue(m)
595- let aR = (parseBigIntValue(bj) * eG)
596- let aV = eF
597- let cP = (aR * eE)
598- let eH = (((((eD * eD) / (eF * eE)) * eD) * eG) / (cP * eE))
599- let eI = ((aV + ((eD * eG) / cP)) - eD)
600- func cY (cZ,eJ) = {
601- let eK = cZ
602- let eL = eK._1
603- let dn = eK._2
604- if ((dn != unit))
605- then cZ
594+ let eF = parseBigIntValue(m)
595+ let aQ = (parseBigIntValue(bi) * eF)
596+ let aU = eE
597+ let cO = (aQ * eD)
598+ let eG = (((((eC * eC) / (eE * eD)) * eC) * eF) / (cO * eD))
599+ let eH = ((aU + ((eC * eF) / cO)) - eC)
600+ func cX (cY,eI) = {
601+ let eJ = cY
602+ let eK = eJ._1
603+ let dm = eJ._2
604+ if ((dm != unit))
605+ then cY
606606 else {
607- let eM = (((eL * eL) + eH) / ((g * eL) + eI))
608- let eN = Y((eM - value(eL)))
609- if ((f >= eN))
610- then $Tuple2(eM, eJ)
611- else $Tuple2(eM, unit)
607+ let eL = (((eK * eK) + eG) / ((g * eK) + eH))
608+ let eM = Y((eL - value(eK)))
609+ if ((f >= eM))
610+ then $Tuple2(eL, eI)
611+ else $Tuple2(eL, unit)
612612 }
613613 }
614614
615- let de = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
616- let eO = {
617- let dg = de
618- let dh = size(dg)
619- let di = $Tuple2(eD, unit)
620- func dj (dk,dl) = if ((dl >= dh))
621- then dk
622- else cY(dk, dg[dl])
615+ let dd = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
616+ let eN = {
617+ let df = dd
618+ let dg = size(df)
619+ let dh = $Tuple2(eC, unit)
620+ func di (dj,dk) = if ((dk >= dg))
621+ then dj
622+ else cX(dj, df[dk])
623623
624- func dm (dk,dl) = if ((dl >= dh))
625- then dk
624+ func dl (dj,dk) = if ((dk >= dg))
625+ then dj
626626 else throw("List size exceeds 15")
627627
628- dm(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(di, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
628+ dl(di(di(di(di(di(di(di(di(di(di(di(di(di(di(di(dh, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
629629 }
630- let eL = eO._1
631- let dn = eO._2
632- if ((dn != unit))
633- then eL
634- else throw(("Y calculation error, Y = " + toString(eL)))
630+ let eK = eN._1
631+ let dm = eN._2
632+ if ((dm != unit))
633+ then eK
634+ else throw(("Y calculation error, Y = " + toString(eK)))
635635 }
636636
637637
638-func eP (eQ,eR,eS) = {
639- let eT = fraction(cL([L(eQ, toBigInt(bD)), L(eR, toBigInt(bE))]), c, eS)
640- if ((eS == e))
638+func eO (eP,eQ,eR) = {
639+ let eS = fraction(cK([L(eP, toBigInt(bC)), L(eQ, toBigInt(bD))]), c, eR)
640+ if ((eR == e))
641641 then e
642- else eT
642+ else eS
643643 }
644644
645645
646-func eU (eV,eW,eX) = {
647- let eY = (toBigInt(ca(bt(bB))) - eV)
648- let eZ = (toBigInt(ca(bt(bC))) - eW)
649- let fa = (toBigInt(value(assetInfo(bA)).quantity) - eX)
650- let fb = eP(eY, eZ, fa)
651- fb
646+func eT (eU,eV,eW) = {
647+ let eX = (toBigInt(bZ(bs(bA))) - eU)
648+ let eY = (toBigInt(bZ(bs(bB))) - eV)
649+ let eZ = (toBigInt(value(assetInfo(bz)).quantity) - eW)
650+ let fa = eO(eX, eY, eZ)
651+ fa
652652 }
653653
654654
655-func fc (fd,fe,eX) = {
656- let eY = (ca(bt(bB)) + fd)
657- let eZ = (ca(bt(bC)) + fe)
658- let fa = (value(assetInfo(bA)).quantity + eX)
659- let eT = eP(toBigInt(eY), toBigInt(eZ), toBigInt(fa))
660- let ff = [IntegerEntry(at, height), StringEntry(as, toString(eT))]
661- $Tuple2(ff, eT)
655+func fb (fc,fd,eW) = {
656+ let eX = (bZ(bs(bA)) + fc)
657+ let eY = (bZ(bs(bB)) + fd)
658+ let eZ = (value(assetInfo(bz)).quantity + eW)
659+ let eS = eO(toBigInt(eX), toBigInt(eY), toBigInt(eZ))
660+ let fe = [IntegerEntry(at, height), StringEntry(as, toString(eS))]
661+ $Tuple2(fe, eS)
662662 }
663663
664664
665-func fg (fh,eT) = if ((eT >= fh))
665+func ff (fg,eS) = if ((eS >= fg))
666666 then true
667- else ba("updated DLp lower than current DLp")
667+ else aZ("updated DLp lower than current DLp")
668668
669669
670-func fi (fj) = {
671- let eY = ca(bt(bB))
672- let eZ = ca(bt(bC))
673- let fk = fj.amount
674- let fl = fraction(fj.amount, fj.price, a, FLOOR)
675- let fm = if ((fj.orderType == Buy))
676- then $Tuple2(fk, -(fl))
677- else $Tuple2(-(fk), fl)
678- let fd = fm._1
679- let fe = fm._2
680- if (if (if (bk())
670+func fh (fi) = {
671+ let eX = bZ(bs(bA))
672+ let eY = bZ(bs(bB))
673+ let fj = fi.amount
674+ let fk = fraction(fi.amount, fi.price, a, FLOOR)
675+ let fl = if ((fi.orderType == Buy))
676+ then $Tuple2(fj, -(fk))
677+ else $Tuple2(-(fj), fk)
678+ let fc = fl._1
679+ let fd = fl._2
680+ if (if (if (bj())
681681 then true
682- else (bz == s))
682+ else (by == s))
683683 then true
684- else (bz == t))
684+ else (by == t))
685685 then throw("Admin blocked")
686- else if (if ((fj.assetPair.amountAsset != bB))
686+ else if (if ((fi.assetPair.amountAsset != bA))
687687 then true
688- else (fj.assetPair.priceAsset != bC))
688+ else (fi.assetPair.priceAsset != bB))
689689 then throw("Wr assets")
690690 else {
691- let fn = parseBigIntValue(valueOrElse(getString(this, as), "0"))
692- let fo = fc(fd, fe, 0)
693- let fp = fo._1
694- let fq = fo._2
695- let fr = (fq >= fn)
696- let fs = makeString(["dLp=", toString(fn), " dLpNew=", toString(fq), " amountAssetBalance=", toString(eY), " priceAssetBalance=", toString(eZ), " amountAssetBalanceDelta=", toString(fd), " priceAssetBalanceDelta=", toString(fe), " height=", toString(height)], "")
697- $Tuple2(fr, fs)
691+ let fm = parseBigIntValue(valueOrElse(getString(this, as), "0"))
692+ let fn = fb(fc, fd, 0)
693+ let fo = fn._1
694+ let fp = fn._2
695+ let fq = (fp >= fm)
696+ let fr = makeString(["dLp=", toString(fm), " dLpNew=", toString(fp), " amountAssetBalance=", toString(eX), " priceAssetBalance=", toString(eY), " amountAssetBalanceDelta=", toString(fc), " priceAssetBalanceDelta=", toString(fd), " height=", toString(height)], "")
697+ $Tuple2(fq, fr)
698698 }
699699 }
700700
701701
702-func ft (da) = if ((size(da.payments) != 1))
702+func fs (cZ) = if ((size(cZ.payments) != 1))
703703 then throw("1 pmnt exp")
704704 else {
705- let fu = value(da.payments[0])
706- let dq = value(fu.assetId)
707- let dW = fu.amount
708- let eh = do(toBase58String(da.transactionId), toBase58String(dq), dW, da.caller)
709- let dK = eh._1
710- let dL = eh._2
711- let dy = parseIntValue(eh._9)
712- let dM = eh._10
713- let fv = if (!(bi(da.caller)))
714- then if (bk())
705+ let ft = value(cZ.payments[0])
706+ let dp = value(ft.assetId)
707+ let dV = ft.amount
708+ let eg = dn(toBase58String(cZ.transactionId), toBase58String(dp), dV, cZ.caller)
709+ let dJ = eg._1
710+ let dK = eg._2
711+ let dx = parseIntValue(eg._9)
712+ let dL = eg._10
713+ let fu = if (!(bh(cZ.caller)))
714+ then if (bj())
715715 then true
716- else (bz == t)
716+ else (by == t)
717717 else false
718- if (fv)
719- then throw(("Admin blocked: " + toString(dy)))
720- else $Tuple5(dK, dL, dW, dq, dM)
718+ if (fu)
719+ then throw(("Admin blocked: " + toString(dx)))
720+ else $Tuple5(dJ, dK, dV, dp, dL)
721721 }
722722
723723
724-func fw (fx,ai,fy,fz,cj,dT,dU,dV,dW,dX) = {
725- let eh = dN(ai, cj, value(fy).amount, value(fy).assetId, value(fz).amount, value(fz).assetId, fx, (ai == ""), dT, dU, dV, dW, dX)
726- let dy = parseIntValue(eh._8)
727- let fA = if (!(bi(addressFromStringValue(fx))))
728- then if (if (bk())
724+func fv (fw,ai,fx,fy,ci,dS,dT,dU,dV,dW) = {
725+ let eg = dM(ai, ci, value(fx).amount, value(fx).assetId, value(fy).amount, value(fy).assetId, fw, (ai == ""), dS, dT, dU, dV, dW)
726+ let dx = parseIntValue(eg._8)
727+ let fz = if (!(bh(addressFromStringValue(fw))))
728+ then if (if (bj())
729729 then true
730- else (bz == t))
730+ else (by == t))
731731 then true
732- else (bz == r)
732+ else (by == r)
733733 else false
734- if (fA)
735- then throw(("Blocked:" + toString(dy)))
736- else eh
734+ if (fz)
735+ then throw(("Blocked:" + toString(dx)))
736+ else eg
737737 }
738738
739739
740-func fB (fC,dq,ds,ai,fD) = {
740+func fA (fB,dp,dr,ai,fC) = {
741+ let dt = toBase58String(value(bA))
741742 let du = toBase58String(value(bB))
742- let dv = toBase58String(value(bC))
743- let dt = bA
743+ let ds = bz
744+ let dZ = bC
744745 let ea = bD
745- let eb = bE
746- let fa = toBigInt(valueOrErrorMessage(assetInfo(dt), "invalid lp asset").quantity)
747- let fE = if ((fa > e))
746+ let eZ = toBigInt(valueOrErrorMessage(assetInfo(ds), "invalid lp asset").quantity)
747+ let fD = if ((eZ > e))
748748 then true
749749 else throw("initial deposit requires all coins")
750- if ((fE == fE))
750+ if ((fD == fD))
751751 then {
752- let dA = ca(du)
753- let dC = ca(dv)
754- let fF = if ((ai == ""))
755- then $Tuple2(dA, dC)
756- else if ((dq == du))
757- then if ((fC > dA))
752+ let dz = bZ(dt)
753+ let dB = bZ(du)
754+ let fE = if ((ai == ""))
755+ then $Tuple2(dz, dB)
756+ else if ((dp == dt))
757+ then if ((fB > dz))
758758 then throw("invalid payment amount")
759- else $Tuple2((dA - fC), dC)
760- else if ((dq == dv))
761- then if ((fC > dC))
759+ else $Tuple2((dz - fB), dB)
760+ else if ((dp == du))
761+ then if ((fB > dB))
762762 then throw("invalid payment amount")
763- else $Tuple2(dA, (dC - fC))
763+ else $Tuple2(dz, (dB - fB))
764764 else throw("wrong pmtAssetId")
765- let fG = fF._1
766- let fH = fF._2
767- let fI = if ((dq == du))
768- then $Tuple2(fC, 0)
769- else if ((dq == dv))
770- then $Tuple2(0, fC)
765+ let fF = fE._1
766+ let fG = fE._2
767+ let fH = if ((dp == dt))
768+ then $Tuple2(fB, 0)
769+ else if ((dp == du))
770+ then $Tuple2(0, fB)
771771 else throw("invalid payment")
772- let fJ = fI._1
773- let fK = fI._2
774- let fL = if (fD)
775- then $Tuple3(cI(fJ, bd)._1, cI(fK, bd)._1, cI(fC, bd)._2)
776- else $Tuple3(fJ, fK, 0)
777- let fM = fL._1
778- let fN = fL._2
779- let cK = fL._3
772+ let fI = fH._1
773+ let fJ = fH._2
774+ let fK = if (fC)
775+ then $Tuple3(cH(fI, bc)._1, cH(fJ, bc)._1, cH(fB, bc)._2)
776+ else $Tuple3(fI, fJ, 0)
777+ let fL = fK._1
778+ let fM = fK._2
779+ let cJ = fK._3
780+ let fN = (fF + fL)
780781 let fO = (fG + fM)
781- let fP = (fH + fN)
782- let co = cL([I(fG, bD), I(fH, bE)])
783- let cn = cL([I(fO, bD), I(fP, bE)])
784- let ei = if ((cn > co))
782+ let cn = cK([I(fF, bC), I(fG, bD)])
783+ let cm = cK([I(fN, bC), I(fO, bD)])
784+ let eh = if ((cm > cn))
785785 then true
786786 else throw()
787- if ((ei == ei))
787+ if ((eh == eh))
788788 then {
789- let fQ = fraction(fa, (cn - co), co, FLOOR)
790- let dF = M(cc(I(fP, eb), I(fO, ea)), a)
791- let eB = [IntegerEntry(ac(), dF), IntegerEntry(ad(height, lastBlock.timestamp), dF), StringEntry(ag(ds, ai), bL(fJ, fK, toInt(fQ), dF, 0, 0, height, lastBlock.timestamp, 0, 0))]
792- let fR = fraction(fH, a, fG)
793- let fS = fraction(fC, a, (fR + a))
794- let fT = (fC - fS)
795- let fU = fraction(fa, toBigInt(fT), toBigInt(fH))
796- let fV = toInt(fraction((fQ - fU), b, fU))
797- $Tuple4(toInt(fQ), eB, cK, fV)
789+ let fP = fraction(eZ, (cm - cn), cn, FLOOR)
790+ let dE = M(cb(I(fO, ea), I(fN, dZ)), a)
791+ let eA = [IntegerEntry(ac(), dE), IntegerEntry(ad(height, lastBlock.timestamp), dE), StringEntry(ag(dr, ai), bK(fI, fJ, toInt(fP), dE, 0, 0, height, lastBlock.timestamp, 0, 0))]
792+ let fQ = fraction(fG, a, fF)
793+ let fR = fraction(fB, a, (fQ + a))
794+ let fS = (fB - fR)
795+ let fT = fraction(eZ, toBigInt(fS), toBigInt(fG))
796+ let fU = toInt(fraction((fP - fT), b, fT))
797+ $Tuple4(toInt(fP), eA, cJ, fU)
798798 }
799799 else throw("Strict value is not equal to itself.")
800800 }
801801 else throw("Strict value is not equal to itself.")
802802 }
803803
804804
805-func fW (fX,fY,fZ,fx,ga,gb) = {
805+func fV (fW,fX,fY,fw,fZ,ga) = {
806+ let ds = toBase58String(value(bz))
806807 let dt = toBase58String(value(bA))
807808 let du = toBase58String(value(bB))
808- let dv = toBase58String(value(bC))
809+ let gb = bC
809810 let gc = bD
810- let gd = bE
811- let ge = bz
812- let ds = if ((fx == bK))
813- then ga
814- else fx
815- let fu = value(fZ[0])
816- let dq = value(fu.assetId)
817- let dW = fu.amount
818- let fb = eU(e, e, e)
819- if ((fb == fb))
811+ let gd = by
812+ let dr = if ((fw == bJ))
813+ then fZ
814+ else fw
815+ let ft = value(fY[0])
816+ let dp = value(ft.assetId)
817+ let dV = ft.amount
818+ let fa = eT(e, e, e)
819+ if ((fa == fa))
820820 then {
821- let dp = toBase58String(gb)
822- if ((dt != toBase58String(dq)))
821+ let do = toBase58String(ga)
822+ if ((ds != toBase58String(dp)))
823823 then throw("Wrong LP")
824824 else {
825- let dA = ca(du)
826- let dC = ca(dv)
827- let gf = {
828- let be = invoke(this, "getOneTknV2READONLY", [fX, dW], nil)
829- if ($isInstanceOf(be, "(Int, Int)"))
830- then be
831- else throw(($getType(be) + " couldn't be cast to (Int, Int)"))
825+ let dz = bZ(dt)
826+ let dB = bZ(du)
827+ let ge = {
828+ let bd = invoke(this, "getOneTknV2READONLY", [fW, dV], nil)
829+ if ($isInstanceOf(bd, "(Int, Int)"))
830+ then bd
831+ else throw(($getType(bd) + " couldn't be cast to (Int, Int)"))
832832 }
833- if ((gf == gf))
833+ if ((ge == ge))
834834 then {
835- let cK = gf._2
836- let gg = gf._1
837- let gh = if (if ((fY > 0))
838- then (fY > gg)
835+ let cJ = ge._2
836+ let gf = ge._1
837+ let gg = if (if ((fX > 0))
838+ then (fX > gf)
839839 else false)
840- then ba(makeString(["amount to receive is less than ", toString(fY)], ""))
841- else gg
842- let gi = if ((fX == du))
843- then $Tuple4(gh, 0, ((dA - gh) - cK), dC)
844- else if ((fX == dv))
845- then $Tuple4(0, gh, dA, ((dC - gh) - cK))
840+ then aZ(makeString(["amount to receive is less than ", toString(fX)], ""))
841+ else gf
842+ let gh = if ((fW == dt))
843+ then $Tuple4(gg, 0, ((dz - gg) - cJ), dB)
844+ else if ((fW == du))
845+ then $Tuple4(0, gg, dz, ((dB - gg) - cJ))
846846 else throw("invalid out asset id")
847- let gj = gi._1
848- let gk = gi._2
849- let fO = gi._3
850- let fP = gi._4
851- let gl = cc(I(fP, gd), I(fO, gc))
852- let gm = M(gl, a)
853- let gn = if ((fX == "WAVES"))
847+ let gi = gh._1
848+ let gj = gh._2
849+ let fN = gh._3
850+ let fO = gh._4
851+ let gk = cb(I(fO, gc), I(fN, gb))
852+ let gl = M(gk, a)
853+ let gm = if ((fW == "WAVES"))
854854 then unit
855- else fromBase58String(fX)
856- let go = if ((cK > 0))
857- then [ScriptTransfer(bm, cK, gn)]
855+ else fromBase58String(fW)
856+ let gn = if ((cJ > 0))
857+ then [ScriptTransfer(bl, cJ, gm)]
858858 else nil
859- let dM = ([ScriptTransfer(ds, gh, gn), StringEntry(aj(toString(ds), dp), bW(gj, gk, dW, gm, height, lastBlock.timestamp)), IntegerEntry(ac(), gm), IntegerEntry(ad(height, lastBlock.timestamp), gm)] ++ go)
860- if ((dM == dM))
859+ let dL = ([ScriptTransfer(dr, gg, gm), StringEntry(aj(toString(dr), do), bV(gi, gj, dV, gl, height, lastBlock.timestamp)), IntegerEntry(ac(), gl), IntegerEntry(ad(height, lastBlock.timestamp), gl)] ++ gn)
860+ if ((dL == dL))
861861 then {
862- let gp = invoke(aU, "burn", [dW], [AttachedPayment(dq, dW)])
863- if ((gp == gp))
862+ let go = invoke(aT, "burn", [dV], [AttachedPayment(dp, dV)])
863+ if ((go == go))
864864 then {
865- let gq = {
866- let gr = if ((this == bm))
865+ let gp = {
866+ let gq = if ((this == bl))
867867 then 0
868- else cK
869- let gs = if ((br(fX) == bB))
868+ else cJ
869+ let gr = if ((bq(fW) == bA))
870870 then true
871871 else false
872- if (gs)
873- then $Tuple2(-((gg + gr)), 0)
874- else $Tuple2(0, -((gg + gr)))
872+ if (gr)
873+ then $Tuple2(-((gf + gq)), 0)
874+ else $Tuple2(0, -((gf + gq)))
875875 }
876- let fd = gq._1
877- let fe = gq._2
878- let gt = fc(fd, fe, 0)
879- let gu = gt._1
880- let eT = gt._2
881- let gv = fg(fb, eT)
882- if ((gv == gv))
883- then $Tuple2((dM ++ gu), gh)
876+ let fc = gp._1
877+ let fd = gp._2
878+ let gs = fb(fc, fd, 0)
879+ let gt = gs._1
880+ let eS = gs._2
881+ let gu = ff(fa, eS)
882+ if ((gu == gu))
883+ then $Tuple2((dL ++ gt), gg)
884884 else throw("Strict value is not equal to itself.")
885885 }
886886 else throw("Strict value is not equal to itself.")
887887 }
888888 else throw("Strict value is not equal to itself.")
889889 }
890890 else throw("Strict value is not equal to itself.")
891891 }
892892 }
893893 else throw("Strict value is not equal to itself.")
894894 }
895895
896896
897-func gw () = {
898- let gx = aS()
899- let aQ = getString(gx, aa())
900- if ($isInstanceOf(aQ, "String"))
897+func gv () = {
898+ let gw = aR()
899+ let aP = getString(gw, aa())
900+ if ($isInstanceOf(aP, "String"))
901901 then {
902- let aV = aQ
903- fromBase58String(aV)
902+ let aU = aP
903+ fromBase58String(aU)
904904 }
905- else if ($isInstanceOf(aQ, "Unit"))
905+ else if ($isInstanceOf(aP, "Unit"))
906906 then unit
907907 else throw("Match error")
908908 }
909909
910910
911-let gy = throw("Permission denied")
911+let gx = throw("Permission denied")
912912
913-func gz (da) = {
914- let aQ = gw()
915- if ($isInstanceOf(aQ, "ByteVector"))
913+func gy (cZ) = {
914+ let aP = gv()
915+ if ($isInstanceOf(aP, "ByteVector"))
916916 then {
917- let gA = aQ
918- (da.callerPublicKey == gA)
917+ let gz = aP
918+ (cZ.callerPublicKey == gz)
919919 }
920- else if ($isInstanceOf(aQ, "Unit"))
921- then (da.caller == this)
920+ else if ($isInstanceOf(aP, "Unit"))
921+ then (cZ.caller == this)
922922 else throw("Match error")
923923 }
924924
925925
926-func gB (da) = {
927- let aQ = gw()
928- if ($isInstanceOf(aQ, "ByteVector"))
926+func gA (cZ) = {
927+ let aP = gv()
928+ if ($isInstanceOf(aP, "ByteVector"))
929929 then {
930- let gA = aQ
931- if ((da.callerPublicKey == gA))
930+ let gz = aP
931+ if ((cZ.callerPublicKey == gz))
932932 then true
933- else gy
933+ else gx
934934 }
935- else if ($isInstanceOf(aQ, "Unit"))
936- then if ((da.caller == this))
935+ else if ($isInstanceOf(aP, "Unit"))
936+ then if ((cZ.caller == this))
937937 then true
938- else gy
938+ else gx
939939 else throw("Match error")
940940 }
941941
942942
943-func gC (gD,eD,gE) = {
944- let bv = bn()
945- let du = bv[x]
946- let dv = bv[y]
947- let eE = g
948- let eG = parseBigIntValue(m)
949- let aR = (parseBigIntValue(bj) * eG)
950- let cM = if ((gD == false))
951- then [(toBigInt(ca(du)) + gE), toBigInt(ca(dv))]
952- else [(toBigInt(ca(dv)) + gE), toBigInt(ca(du))]
953- let eF = cM[0]
954- let aV = eF
955- let cP = (aR * eE)
956- let eH = (((((eD * eD) / (eF * eE)) * eD) * eG) / (cP * eE))
957- let eI = ((aV + ((eD * eG) / cP)) - eD)
958- func cY (cZ,eJ) = {
959- let gF = cZ
960- let eL = gF._1
961- let dn = gF._2
962- if ((dn != unit))
963- then cZ
943+func gB (gC,eC,gD) = {
944+ let bu = bm()
945+ let dt = bu[x]
946+ let du = bu[y]
947+ let eD = g
948+ let eF = parseBigIntValue(m)
949+ let aQ = (parseBigIntValue(bi) * eF)
950+ let cL = if ((gC == false))
951+ then [(toBigInt(bZ(dt)) + gD), toBigInt(bZ(du))]
952+ else [(toBigInt(bZ(du)) + gD), toBigInt(bZ(dt))]
953+ let eE = cL[0]
954+ let aU = eE
955+ let cO = (aQ * eD)
956+ let eG = (((((eC * eC) / (eE * eD)) * eC) * eF) / (cO * eD))
957+ let eH = ((aU + ((eC * eF) / cO)) - eC)
958+ func cX (cY,eI) = {
959+ let gE = cY
960+ let eK = gE._1
961+ let dm = gE._2
962+ if ((dm != unit))
963+ then cY
964964 else {
965- let eM = (((eL * eL) + eH) / ((g * eL) + eI))
966- let eN = Y((eM - value(eL)))
967- if ((f >= eN))
968- then $Tuple2(eM, eJ)
969- else $Tuple2(eM, unit)
965+ let eL = (((eK * eK) + eG) / ((g * eK) + eH))
966+ let eM = Y((eL - value(eK)))
967+ if ((f >= eM))
968+ then $Tuple2(eL, eI)
969+ else $Tuple2(eL, unit)
970970 }
971971 }
972972
973- let de = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
974- let gG = {
975- let dg = de
976- let dh = size(dg)
977- let di = $Tuple2(eD, unit)
978- func dj (dk,dl) = if ((dl >= dh))
979- then dk
980- else cY(dk, dg[dl])
973+ let dd = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
974+ let gF = {
975+ let df = dd
976+ let dg = size(df)
977+ let dh = $Tuple2(eC, unit)
978+ func di (dj,dk) = if ((dk >= dg))
979+ then dj
980+ else cX(dj, df[dk])
981981
982- func dm (dk,dl) = if ((dl >= dh))
983- then dk
982+ func dl (dj,dk) = if ((dk >= dg))
983+ then dj
984984 else throw("List size exceeds 15")
985985
986- dm(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(dj(di, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
986+ dl(di(di(di(di(di(di(di(di(di(di(di(di(di(di(di(dh, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
987987 }
988- let eL = gG._1
989- let dn = gG._2
990- if ((dn != unit))
991- then eL
992- else throw(("Y calculation error, Y = " + toString(eL)))
988+ let eK = gF._1
989+ let dm = gF._2
990+ if ((dm != unit))
991+ then eK
992+ else throw(("Y calculation error, Y = " + toString(eK)))
993993 }
994994
995995
996-func gH () = valueOrElse(getBoolean(aU, aH(toString(this))), false)
996+func gG () = valueOrElse(getBoolean(aT, aH(toString(this))), false)
997997
998998
999-@Callable(da)
1000-func calculateAmountOutForSwapREADONLY (gI,gD,gJ) = {
1001- let gK = if ((gD == false))
999+@Callable(cZ)
1000+func calculateAmountOutForSwapREADONLY (gH,gC,gI) = {
1001+ let gJ = if ((gC == false))
10021002 then {
1003- let gL = aW(this, al())
1004- let gE = (toBigInt(ca(aW(this, ak()))) + toBigInt(gI))
1005- $Tuple2(gL, gE)
1003+ let gK = aV(this, al())
1004+ let gD = (toBigInt(bZ(aV(this, ak()))) + toBigInt(gH))
1005+ $Tuple2(gK, gD)
10061006 }
10071007 else {
1008- let gL = aW(this, ak())
1009- let gE = (toBigInt(ca(aW(this, al()))) + toBigInt(gI))
1010- $Tuple2(gL, gE)
1008+ let gK = aV(this, ak())
1009+ let gD = (toBigInt(bZ(aV(this, al()))) + toBigInt(gH))
1010+ $Tuple2(gK, gD)
10111011 }
1012- let gL = gK._1
1013- let gE = gK._2
1014- let bv = bn()
1015- let du = bv[x]
1016- let dv = bv[y]
1017- let cM = [toBigInt(ca(du)), toBigInt(ca(dv))]
1018- let eD = cL(cM)
1019- let eL = gC(gD, eD, toBigInt(gI))
1020- let gM = ((toBigInt(ca(gL)) - eL) - toBigInt(1))
1021- let gN = max([0, toInt(gM)])
1022- let gO = if ((gD == false))
1023- then [((toBigInt(ca(du)) + toBigInt(gI)) + toBigInt(gJ)), (toBigInt(ca(dv)) - gM)]
1024- else [(toBigInt(ca(du)) - gM), ((toBigInt(ca(dv)) + toBigInt(gI)) + toBigInt(gJ))]
1025- let gP = cL(gO)
1026- let ei = if ((gP >= eD))
1012+ let gK = gJ._1
1013+ let gD = gJ._2
1014+ let bu = bm()
1015+ let dt = bu[x]
1016+ let du = bu[y]
1017+ let cL = [toBigInt(bZ(dt)), toBigInt(bZ(du))]
1018+ let eC = cK(cL)
1019+ let eK = gB(gC, eC, toBigInt(gH))
1020+ let gL = ((toBigInt(bZ(gK)) - eK) - toBigInt(1))
1021+ let gM = max([0, toInt(gL)])
1022+ let gN = if ((gC == false))
1023+ then [((toBigInt(bZ(dt)) + toBigInt(gH)) + toBigInt(gI)), (toBigInt(bZ(du)) - gL)]
1024+ else [(toBigInt(bZ(dt)) - gL), ((toBigInt(bZ(du)) + toBigInt(gH)) + toBigInt(gI))]
1025+ let gO = cK(gN)
1026+ let eh = if ((gO >= eC))
10271027 then true
1028- else throw(makeString(["new D is fewer error", toString(eD), toString(gP)], "__"))
1029- if ((ei == ei))
1030- then $Tuple2(nil, gN)
1028+ else throw(makeString(["new D is fewer error", toString(eC), toString(gO)], "__"))
1029+ if ((eh == eh))
1030+ then $Tuple2(nil, gM)
10311031 else throw("Strict value is not equal to itself.")
10321032 }
10331033
10341034
10351035
1036-@Callable(da)
1037-func calculateAmountOutForSwapAndSendTokens (gI,gD,gQ,gR,gJ) = {
1036+@Callable(cZ)
1037+func calculateAmountOutForSwapAndSendTokens (gH,gC,gP,gQ,gI) = {
1038+ let gR = {
1039+ let bd = invoke(aT, "getSwapContractREADONLY", nil, nil)
1040+ if ($isInstanceOf(bd, "String"))
1041+ then bd
1042+ else throw(($getType(bd) + " couldn't be cast to String"))
1043+ }
10381044 let gS = {
1039- let be = invoke(aU, "getSwapContractREADONLY", nil, nil)
1040- if ($isInstanceOf(be, "String"))
1041- then be
1042- else throw(($getType(be) + " couldn't be cast to String"))
1045+ let bd = invoke(aT, "isPoolSwapDisabledREADONLY", [toString(this)], nil)
1046+ if ($isInstanceOf(bd, "Boolean"))
1047+ then bd
1048+ else throw(($getType(bd) + " couldn't be cast to Boolean"))
10431049 }
1044- let gT = {
1045- let be = invoke(aU, "isPoolSwapDisabledREADONLY", [toString(this)], nil)
1046- if ($isInstanceOf(be, "Boolean"))
1047- then be
1048- else throw(($getType(be) + " couldn't be cast to Boolean"))
1049- }
1050- let gU = if (!(bi(da.caller)))
1051- then if (if (bk())
1050+ let gT = if (!(bh(cZ.caller)))
1051+ then if (if (bj())
10521052 then true
1053- else (bz == t))
1053+ else (by == t))
10541054 then true
1055- else gT
1055+ else gS
10561056 else false
1057- let gV = [if (if (!(gU))
1057+ let gU = [if (if (!(gT))
10581058 then true
1059- else gz(da))
1059+ else gy(cZ))
10601060 then true
1061- else ba("swap operation is blocked by admin"), if ((value(da.payments[0]).amount >= gI))
1061+ else aZ("swap operation is blocked by admin"), if ((value(cZ.payments[0]).amount >= gH))
10621062 then true
1063- else ba("Wrong amount"), if ((da.caller == addressFromStringValue(gS)))
1063+ else aZ("Wrong amount"), if ((cZ.caller == addressFromStringValue(gR)))
10641064 then true
1065- else ba("Permission denied")]
1066- if ((gV == gV))
1065+ else aZ("Permission denied")]
1066+ if ((gU == gU))
10671067 then {
1068- let fu = value(da.payments[0])
1069- let gW = bt(fu.assetId)
1070- let gX = if ((gD == false))
1068+ let ft = value(cZ.payments[0])
1069+ let gV = bs(ft.assetId)
1070+ let gW = if ((gC == false))
10711071 then {
1072- let gL = aW(this, al())
1073- let gE = (ca(gW) - value(da.payments[0]).amount)
1074- $Tuple2(gL, gE)
1072+ let gK = aV(this, al())
1073+ let gD = (bZ(gV) - value(cZ.payments[0]).amount)
1074+ $Tuple2(gK, gD)
10751075 }
10761076 else {
1077- let gL = aW(this, ak())
1078- let gE = (ca(gW) - value(da.payments[0]).amount)
1079- $Tuple2(gL, gE)
1077+ let gK = aV(this, ak())
1078+ let gD = (bZ(gV) - value(cZ.payments[0]).amount)
1079+ $Tuple2(gK, gD)
10801080 }
1081- let gL = gX._1
1082- let gE = gX._2
1083- let bv = bn()
1084- let du = bv[x]
1085- let dv = bv[y]
1086- let cM = if ((gD == false))
1087- then [(toBigInt(ca(du)) - toBigInt(value(da.payments[0]).amount)), toBigInt(ca(dv))]
1088- else [toBigInt(ca(du)), (toBigInt(ca(dv)) - toBigInt(value(da.payments[0]).amount))]
1089- let eD = cL(cM)
1090- let eL = gC(gD, eD, toBigInt(0))
1091- let gM = ((toBigInt(ca(gL)) - eL) - toBigInt(1))
1092- let gN = max([0, toInt(gM)])
1093- let gY = if ((gN >= gQ))
1081+ let gK = gW._1
1082+ let gD = gW._2
1083+ let bu = bm()
1084+ let dt = bu[x]
1085+ let du = bu[y]
1086+ let cL = if ((gC == false))
1087+ then [(toBigInt(bZ(dt)) - toBigInt(value(cZ.payments[0]).amount)), toBigInt(bZ(du))]
1088+ else [toBigInt(bZ(dt)), (toBigInt(bZ(du)) - toBigInt(value(cZ.payments[0]).amount))]
1089+ let eC = cK(cL)
1090+ let eK = gB(gC, eC, toBigInt(0))
1091+ let gL = ((toBigInt(bZ(gK)) - eK) - toBigInt(1))
1092+ let gM = max([0, toInt(gL)])
1093+ let gX = if ((gM >= gP))
10941094 then true
10951095 else throw("Exchange result is fewer coins than expected")
1096- if ((gY == gY))
1096+ if ((gX == gX))
10971097 then {
1098- let gO = if ((gD == false))
1099- then [(toBigInt(ca(du)) + toBigInt(gJ)), (toBigInt(ca(dv)) - gM)]
1100- else [(toBigInt(ca(du)) - gM), (toBigInt(ca(dv)) + toBigInt(gJ))]
1101- let gP = cL(gO)
1102- let ei = if ((gP >= eD))
1098+ let gN = if ((gC == false))
1099+ then [(toBigInt(bZ(dt)) + toBigInt(gI)), (toBigInt(bZ(du)) - gL)]
1100+ else [(toBigInt(bZ(dt)) - gL), (toBigInt(bZ(du)) + toBigInt(gI))]
1101+ let gO = cK(gN)
1102+ let eh = if ((gO >= eC))
11031103 then true
11041104 else throw("new D is fewer error")
1105- if ((ei == ei))
1105+ if ((eh == eh))
11061106 then {
1107- let fd = if (gD)
1108- then -(gN)
1109- else gJ
1110- let fe = if (gD)
1111- then gJ
1112- else -(gN)
1113- let gu = fc(fd, fe, 0)._1
1114- if ((gu == gu))
1115- then $Tuple2([ScriptTransfer(addressFromStringValue(gR), gN, br(gL))], gN)
1107+ let fc = if (gC)
1108+ then -(gM)
1109+ else gI
1110+ let fd = if (gC)
1111+ then gI
1112+ else -(gM)
1113+ let gt = fb(fc, fd, 0)._1
1114+ if ((gt == gt))
1115+ then $Tuple2([ScriptTransfer(addressFromStringValue(gQ), gM, bq(gK))], gM)
11161116 else throw("Strict value is not equal to itself.")
11171117 }
11181118 else throw("Strict value is not equal to itself.")
11191119 }
11201120 else throw("Strict value is not equal to itself.")
11211121 }
11221122 else throw("Strict value is not equal to itself.")
11231123 }
11241124
11251125
11261126
1127-@Callable(da)
1127+@Callable(cZ)
11281128 func constructor (Z) = {
1129- let eH = gB(da)
1130- if ((eH == eH))
1129+ let eG = gA(cZ)
1130+ if ((eG == eG))
11311131 then [StringEntry(Z(), Z)]
11321132 else throw("Strict value is not equal to itself.")
11331133 }
11341134
11351135
11361136
1137-@Callable(da)
1138-func put (gZ,ha) = {
1139- let hb = bF()
1140- let hc = valueOrErrorMessage(addressFromString(hb[D]), "Wr st addr")
1141- let hd = valueOrErrorMessage(addressFromString(hb[F]), "Wr sl addr")
1142- if ((0 > gZ))
1137+@Callable(cZ)
1138+func put (gY,gZ) = {
1139+ let ha = bE()
1140+ let hb = valueOrErrorMessage(addressFromString(ha[D]), "Wr st addr")
1141+ let hc = valueOrErrorMessage(addressFromString(ha[F]), "Wr sl addr")
1142+ if ((0 > gY))
11431143 then throw("Wrong slippage")
1144- else if ((size(da.payments) != 2))
1144+ else if ((size(cZ.payments) != 2))
11451145 then throw("2 pmnts expd")
11461146 else {
1147- let he = toBigInt(value(da.payments[0]).amount)
1148- let hf = toBigInt(value(da.payments[1]).amount)
1149- let eY = (toBigInt(ca(bt(bB))) - he)
1150- if ((eY == eY))
1147+ let hd = toBigInt(value(cZ.payments[0]).amount)
1148+ let he = toBigInt(value(cZ.payments[1]).amount)
1149+ let eX = (toBigInt(bZ(bs(bA))) - hd)
1150+ if ((eX == eX))
11511151 then {
1152- let eZ = (toBigInt(ca(bt(bC))) - hf)
1153- if ((eZ == eZ))
1152+ let eY = (toBigInt(bZ(bs(bB))) - he)
1153+ if ((eY == eY))
11541154 then {
1155- let fa = toBigInt(value(assetInfo(bA)).quantity)
1156- if ((fa == fa))
1155+ let eZ = toBigInt(value(assetInfo(bz)).quantity)
1156+ if ((eZ == eZ))
11571157 then {
1158- let fb = eU(he, hf, toBigInt(0))
1159- if ((fb == fb))
1158+ let fa = eT(hd, he, toBigInt(0))
1159+ if ((fa == fa))
11601160 then {
1161- let hg = fw(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(value(da.payments[0]).assetId, value(da.payments[0]).amount), da.payments[1], gZ, true, false, true, 0, "")
1162- let ev = hg._2
1163- let hh = hg._7
1164- let dM = hg._9
1165- let ew = hg._10
1166- let ex = hg._11
1167- let du = hg._12
1168- let dv = hg._13
1169- let eh = invoke(aU, "emit", [ev], nil)
1170- if ((eh == eh))
1161+ let hf = fv(toString(cZ.caller), toBase58String(cZ.transactionId), AttachedPayment(value(cZ.payments[0]).assetId, value(cZ.payments[0]).amount), cZ.payments[1], gY, true, false, true, 0, "")
1162+ let eu = hf._2
1163+ let hg = hf._7
1164+ let dL = hf._9
1165+ let ev = hf._10
1166+ let ew = hf._11
1167+ let dt = hf._12
1168+ let du = hf._13
1169+ let eg = invoke(aT, "emit", [eu], nil)
1170+ if ((eg == eg))
11711171 then {
1172- let hi = {
1173- let aQ = eh
1174- if ($isInstanceOf(aQ, "Address"))
1172+ let hh = {
1173+ let aP = eg
1174+ if ($isInstanceOf(aP, "Address"))
11751175 then {
1176- let hj = aQ
1177- invoke(hj, "emit", [ev], nil)
1176+ let hi = aP
1177+ invoke(hi, "emit", [eu], nil)
11781178 }
11791179 else unit
11801180 }
1181- if ((hi == hi))
1181+ if ((hh == hh))
11821182 then {
1183- let hk = if ((ew > 0))
1184- then invoke(hd, "put", nil, [AttachedPayment(du, ew)])
1183+ let hj = if ((ev > 0))
1184+ then invoke(hc, "put", nil, [AttachedPayment(dt, ev)])
11851185 else nil
1186- if ((hk == hk))
1186+ if ((hj == hj))
11871187 then {
1188- let hl = if ((ex > 0))
1189- then invoke(hd, "put", nil, [AttachedPayment(dv, ex)])
1188+ let hk = if ((ew > 0))
1189+ then invoke(hc, "put", nil, [AttachedPayment(du, ew)])
11901190 else nil
1191- if ((hl == hl))
1191+ if ((hk == hk))
11921192 then {
1193- let hm = if (ha)
1193+ let hl = if (gZ)
11941194 then {
1195- let hn = invoke(hc, "stake", nil, [AttachedPayment(hh, ev)])
1196- if ((hn == hn))
1195+ let hm = invoke(hb, "stake", nil, [AttachedPayment(hg, eu)])
1196+ if ((hm == hm))
11971197 then nil
11981198 else throw("Strict value is not equal to itself.")
11991199 }
1200- else [ScriptTransfer(da.caller, ev, hh)]
1201- let ho = fc(0, 0, 0)
1202- let gu = ho._1
1203- let eT = ho._2
1204- let hp = if ((eT >= fb))
1200+ else [ScriptTransfer(cZ.caller, eu, hg)]
1201+ let hn = fb(0, 0, 0)
1202+ let gt = hn._1
1203+ let eS = hn._2
1204+ let ho = if ((eS >= fa))
12051205 then true
1206- else ba(makeString(["updated DLp lower than current DLp", toString(eY), toString(eZ), toString(fa), toString(fb), toString(eT), toString(ew), toString(ex)], " "))
1207- if ((hp == hp))
1206+ else aZ(makeString(["updated DLp lower than current DLp", toString(eX), toString(eY), toString(eZ), toString(fa), toString(eS), toString(ev), toString(ew)], " "))
1207+ if ((ho == ho))
12081208 then {
1209- let hq = value(assetInfo(bA)).quantity
1210- if ((hq == hq))
1211- then ((dM ++ hm) ++ gu)
1209+ let hp = value(assetInfo(bz)).quantity
1210+ if ((hp == hp))
1211+ then ((dL ++ hl) ++ gt)
12121212 else throw("Strict value is not equal to itself.")
12131213 }
12141214 else throw("Strict value is not equal to itself.")
12151215 }
12161216 else throw("Strict value is not equal to itself.")
12171217 }
12181218 else throw("Strict value is not equal to itself.")
12191219 }
12201220 else throw("Strict value is not equal to itself.")
12211221 }
12221222 else throw("Strict value is not equal to itself.")
12231223 }
12241224 else throw("Strict value is not equal to itself.")
12251225 }
12261226 else throw("Strict value is not equal to itself.")
12271227 }
12281228 else throw("Strict value is not equal to itself.")
12291229 }
12301230 else throw("Strict value is not equal to itself.")
12311231 }
12321232 }
12331233
12341234
12351235
1236-@Callable(da)
1237-func putOneTknV2 (fY,ha) = {
1238- let hr = {
1239- let be = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1240- if ($isInstanceOf(be, "Boolean"))
1241- then be
1242- else throw(($getType(be) + " couldn't be cast to Boolean"))
1236+@Callable(cZ)
1237+func putOneTknV2 (fX,gZ) = {
1238+ let hq = {
1239+ let bd = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1240+ if ($isInstanceOf(bd, "Boolean"))
1241+ then bd
1242+ else throw(($getType(bd) + " couldn't be cast to Boolean"))
12431243 }
1244- let fA = if (!(bi(da.caller)))
1245- then if (if (if (bk())
1244+ let fz = if (!(bh(cZ.caller)))
1245+ then if (if (if (bj())
12461246 then true
1247- else (bz == r))
1247+ else (by == r))
12481248 then true
1249- else (bz == t))
1249+ else (by == t))
12501250 then true
1251- else hr
1251+ else hq
12521252 else false
1253- let gV = [if (if (!(fA))
1253+ let gU = [if (if (!(fz))
12541254 then true
1255- else gz(da))
1255+ else gy(cZ))
12561256 then true
1257- else ba("put operation is blocked by admin"), if ((size(da.payments) == 1))
1257+ else aZ("put operation is blocked by admin"), if ((size(cZ.payments) == 1))
12581258 then true
1259- else ba("exactly 1 payment are expected")]
1260- if ((gV == gV))
1259+ else aZ("exactly 1 payment are expected")]
1260+ if ((gU == gU))
12611261 then {
1262+ let dt = toBase58String(value(bA))
12621263 let du = toBase58String(value(bB))
1263- let dv = toBase58String(value(bC))
1264- let dt = bA
1264+ let ds = bz
1265+ let gb = bC
12651266 let gc = bD
1266- let gd = bE
1267- let ds = if ((da.caller == this))
1268- then da.originCaller
1269- else da.caller
1270- let fu = value(da.payments[0])
1271- let dq = toBase58String(value(fu.assetId))
1272- let dW = fu.amount
1273- let fb = if ((fu.assetId == bB))
1274- then eU(toBigInt(dW), toBigInt(0), toBigInt(0))
1275- else eU(toBigInt(0), toBigInt(dW), toBigInt(0))
1276- if ((fb == fb))
1267+ let dr = if ((cZ.caller == this))
1268+ then cZ.originCaller
1269+ else cZ.caller
1270+ let ft = value(cZ.payments[0])
1271+ let dp = toBase58String(value(ft.assetId))
1272+ let dV = ft.amount
1273+ let fa = if ((ft.assetId == bA))
1274+ then eT(toBigInt(dV), toBigInt(0), toBigInt(0))
1275+ else eT(toBigInt(0), toBigInt(dV), toBigInt(0))
1276+ if ((fa == fa))
12771277 then {
1278- let hs = fB(dW, dq, toString(ds), toBase58String(da.transactionId), true)
1279- if ((hs == hs))
1278+ let hr = fA(dV, dp, toString(dr), toBase58String(cZ.transactionId), true)
1279+ if ((hr == hr))
12801280 then {
1281- let cK = hs._3
1282- let dM = hs._2
1283- let ht = hs._1
1284- let ev = if (if ((fY > 0))
1285- then (fY > ht)
1281+ let cJ = hr._3
1282+ let dL = hr._2
1283+ let hs = hr._1
1284+ let eu = if (if ((fX > 0))
1285+ then (fX > hs)
12861286 else false)
1287- then ba(makeString(["amount to receive is less than ", toString(fY)], ""))
1288- else ht
1289- let hg = invoke(aU, "emit", [ev], nil)
1290- if ((hg == hg))
1287+ then aZ(makeString(["amount to receive is less than ", toString(fX)], ""))
1288+ else hs
1289+ let hf = invoke(aT, "emit", [eu], nil)
1290+ if ((hf == hf))
12911291 then {
1292- let hi = {
1293- let aQ = hg
1294- if ($isInstanceOf(aQ, "Address"))
1292+ let hh = {
1293+ let aP = hf
1294+ if ($isInstanceOf(aP, "Address"))
12951295 then {
1296- let hj = aQ
1297- invoke(hj, "emit", [ev], nil)
1296+ let hi = aP
1297+ invoke(hi, "emit", [eu], nil)
12981298 }
12991299 else unit
13001300 }
1301- if ((hi == hi))
1301+ if ((hh == hh))
13021302 then {
1303- let hm = if (ha)
1303+ let hl = if (gZ)
13041304 then {
1305- let hn = invoke(bH, "stakeFor", [toString(da.caller)], [AttachedPayment(dt, ev)])
1306- if ((hn == hn))
1305+ let hm = invoke(bG, "stakeFor", [toString(cZ.caller)], [AttachedPayment(ds, eu)])
1306+ if ((hm == hm))
13071307 then nil
13081308 else throw("Strict value is not equal to itself.")
13091309 }
1310- else [ScriptTransfer(da.caller, ev, dt)]
1311- let go = if ((cK > 0))
1312- then [ScriptTransfer(bm, cK, fromBase58String(dq))]
1310+ else [ScriptTransfer(cZ.caller, eu, ds)]
1311+ let gn = if ((cJ > 0))
1312+ then [ScriptTransfer(bl, cJ, fromBase58String(dp))]
13131313 else nil
1314- let hu = if ((this == bm))
1314+ let ht = if ((this == bl))
13151315 then $Tuple2(0, 0)
13161316 else {
1317- let hv = if ((fu.assetId == bB))
1317+ let hu = if ((ft.assetId == bA))
13181318 then true
13191319 else false
1320- if (hv)
1321- then $Tuple2(-(cK), 0)
1322- else $Tuple2(0, -(cK))
1320+ if (hu)
1321+ then $Tuple2(-(cJ), 0)
1322+ else $Tuple2(0, -(cJ))
13231323 }
1324- let fd = hu._1
1325- let fe = hu._2
1326- let hw = fc(fd, fe, 0)
1327- let gu = hw._1
1328- let eT = hw._2
1329- let gv = fg(fb, eT)
1330- if ((gv == gv))
1331- then $Tuple2((((dM ++ hm) ++ go) ++ gu), ev)
1324+ let fc = ht._1
1325+ let fd = ht._2
1326+ let hv = fb(fc, fd, 0)
1327+ let gt = hv._1
1328+ let eS = hv._2
1329+ let gu = ff(fa, eS)
1330+ if ((gu == gu))
1331+ then $Tuple2((((dL ++ hl) ++ gn) ++ gt), eu)
13321332 else throw("Strict value is not equal to itself.")
13331333 }
13341334 else throw("Strict value is not equal to itself.")
13351335 }
13361336 else throw("Strict value is not equal to itself.")
13371337 }
13381338 else throw("Strict value is not equal to itself.")
13391339 }
13401340 else throw("Strict value is not equal to itself.")
13411341 }
13421342 else throw("Strict value is not equal to itself.")
13431343 }
13441344
13451345
13461346
1347-@Callable(da)
1348-func putForFree (hx) = if ((0 > hx))
1347+@Callable(cZ)
1348+func putForFree (hw) = if ((0 > hw))
13491349 then throw("Wrong slpg")
1350- else if ((size(da.payments) != 2))
1350+ else if ((size(cZ.payments) != 2))
13511351 then throw("2 pmnts expd")
13521352 else {
1353- let hy = fw(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(value(da.payments[0]).assetId, value(da.payments[0]).amount), da.payments[1], hx, false, false, true, 0, "")
1354- let dM = hy._9
1355- let he = toBigInt(value(da.payments[0]).amount)
1356- let hf = toBigInt(value(da.payments[1]).amount)
1357- let fb = eU(he, hf, toBigInt(0))
1358- if ((fb == fb))
1353+ let hx = fv(toString(cZ.caller), toBase58String(cZ.transactionId), AttachedPayment(value(cZ.payments[0]).assetId, value(cZ.payments[0]).amount), cZ.payments[1], hw, false, false, true, 0, "")
1354+ let dL = hx._9
1355+ let hd = toBigInt(value(cZ.payments[0]).amount)
1356+ let he = toBigInt(value(cZ.payments[1]).amount)
1357+ let fa = eT(hd, he, toBigInt(0))
1358+ if ((fa == fa))
13591359 then {
1360- let hz = fc(0, 0, 0)
1361- let gu = hz._1
1362- let eT = hz._2
1363- let gv = fg(fb, eT)
1364- if ((gv == gv))
1365- then (dM ++ gu)
1360+ let hy = fb(0, 0, 0)
1361+ let gt = hy._1
1362+ let eS = hy._2
1363+ let gu = ff(fa, eS)
1364+ if ((gu == gu))
1365+ then (dL ++ gt)
13661366 else throw("Strict value is not equal to itself.")
13671367 }
13681368 else throw("Strict value is not equal to itself.")
13691369 }
13701370
13711371
13721372
1373-@Callable(da)
1373+@Callable(cZ)
13741374 func get () = {
1375- let fb = eU(toBigInt(0), toBigInt(0), toBigInt(0))
1376- if ((fb == fb))
1375+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1376+ if ((fa == fa))
13771377 then {
1378- let eh = ft(da)
1379- let hA = eh._1
1380- let dL = eh._2
1381- let dW = eh._3
1382- let dq = eh._4
1383- let dM = eh._5
1384- let eI = invoke(aU, "burn", [dW], [AttachedPayment(dq, dW)])
1385- if ((eI == eI))
1378+ let eg = fs(cZ)
1379+ let hz = eg._1
1380+ let dK = eg._2
1381+ let dV = eg._3
1382+ let dp = eg._4
1383+ let dL = eg._5
1384+ let eH = invoke(aT, "burn", [dV], [AttachedPayment(dp, dV)])
1385+ if ((eH == eH))
13861386 then {
1387- let hB = fc(-(hA), -(dL), 0)
1388- let gu = hB._1
1389- let eT = hB._2
1390- let gv = fg(fb, eT)
1391- if ((gv == gv))
1392- then (dM ++ gu)
1387+ let hA = fb(-(hz), -(dK), 0)
1388+ let gt = hA._1
1389+ let eS = hA._2
1390+ let gu = ff(fa, eS)
1391+ if ((gu == gu))
1392+ then (dL ++ gt)
13931393 else throw("Strict value is not equal to itself.")
13941394 }
13951395 else throw("Strict value is not equal to itself.")
13961396 }
13971397 else throw("Strict value is not equal to itself.")
13981398 }
13991399
14001400
14011401
1402-@Callable(da)
1403-func getOneTknV2 (fX,fY) = {
1404- let hr = {
1405- let be = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1406- if ($isInstanceOf(be, "Boolean"))
1407- then be
1408- else throw(($getType(be) + " couldn't be cast to Boolean"))
1402+@Callable(cZ)
1403+func getOneTknV2 (fW,fX) = {
1404+ let hq = {
1405+ let bd = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1406+ if ($isInstanceOf(bd, "Boolean"))
1407+ then bd
1408+ else throw(($getType(bd) + " couldn't be cast to Boolean"))
14091409 }
1410- let fv = if (!(bi(da.caller)))
1411- then if (if (bk())
1410+ let fu = if (!(bh(cZ.caller)))
1411+ then if (if (bj())
14121412 then true
1413- else (bz == t))
1413+ else (by == t))
14141414 then true
1415- else hr
1415+ else hq
14161416 else false
1417- let gV = [if (if (!(fv))
1417+ let gU = [if (if (!(fu))
14181418 then true
1419- else gz(da))
1419+ else gy(cZ))
14201420 then true
1421- else ba("get operation is blocked by admin"), if ((size(da.payments) == 1))
1421+ else aZ("get operation is blocked by admin"), if ((size(cZ.payments) == 1))
14221422 then true
1423- else ba("exactly 1 payment are expected")]
1424- if ((gV == gV))
1423+ else aZ("exactly 1 payment are expected")]
1424+ if ((gU == gU))
14251425 then {
1426- let hC = fW(fX, fY, da.payments, da.caller, da.originCaller, da.transactionId)
1427- let dM = hC._1
1428- let gh = hC._2
1429- $Tuple2(dM, gh)
1426+ let hB = fV(fW, fX, cZ.payments, cZ.caller, cZ.originCaller, cZ.transactionId)
1427+ let dL = hB._1
1428+ let gg = hB._2
1429+ $Tuple2(dL, gg)
14301430 }
14311431 else throw("Strict value is not equal to itself.")
14321432 }
14331433
14341434
14351435
1436-@Callable(da)
1436+@Callable(cZ)
14371437 func refreshDLp () = {
1438- let hD = valueOrElse(getInteger(at), 0)
1439- let hE = if (((height - hD) >= aw))
1438+ let hC = valueOrElse(getInteger(at), 0)
1439+ let hD = if (((height - hC) >= aw))
14401440 then unit
1441- else ba(makeString([toString(aw), " blocks have not passed since the previous call"], ""))
1442- if ((hE == hE))
1441+ else aZ(makeString([toString(aw), " blocks have not passed since the previous call"], ""))
1442+ if ((hD == hD))
14431443 then {
1444- let fn = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, as), "0")), bc("invalid dLp"))
1445- let hF = fc(0, 0, 0)
1446- let hG = hF._1
1447- let eT = hF._2
1448- let ff = if ((fn != eT))
1449- then hG
1450- else ba("nothing to refresh")
1451- $Tuple2(ff, toString(eT))
1444+ let fm = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, as), "0")), bb("invalid dLp"))
1445+ let hE = fb(0, 0, 0)
1446+ let hF = hE._1
1447+ let eS = hE._2
1448+ let fe = if ((fm != eS))
1449+ then hF
1450+ else aZ("nothing to refresh")
1451+ $Tuple2(fe, toString(eS))
14521452 }
14531453 else throw("Strict value is not equal to itself.")
14541454 }
14551455
14561456
14571457
1458-@Callable(da)
1459-func getOneTknV2READONLY (fX,hH) = {
1458+@Callable(cZ)
1459+func getOneTknV2READONLY (fW,hG) = {
1460+ let dt = toBase58String(value(bA))
14601461 let du = toBase58String(value(bB))
1461- let dv = toBase58String(value(bC))
1462- let dt = toBase58String(value(bA))
1463- let cM = [toBigInt(ca(du)), toBigInt(ca(dv))]
1464- let eS = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(dt)), "invalid lp asset").quantity)
1465- let co = cL(cM)
1466- let cn = (co - fraction(toBigInt(hH), co, eS))
1467- let hI = if ((fX == du))
1462+ let ds = toBase58String(value(bz))
1463+ let cL = [toBigInt(bZ(dt)), toBigInt(bZ(du))]
1464+ let eR = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(ds)), "invalid lp asset").quantity)
1465+ let cn = cK(cL)
1466+ let cm = (cn - fraction(toBigInt(hG), cn, eR))
1467+ let hH = if ((fW == dt))
14681468 then 0
1469- else if ((fX == dv))
1469+ else if ((fW == du))
14701470 then 1
14711471 else throw("invalid out asset id")
1472- let hJ = eC(cM, hI, cn)
1473- let gM = (cM[hI] - hJ)
1474- let gN = max([0, toInt((gM - f))])
1475- let hK = cI(gN, bf)
1476- let gg = hK._1
1477- let cK = hK._2
1478- $Tuple2(nil, $Tuple2(gg, cK))
1472+ let hI = eB(cL, hH, cm)
1473+ let gL = (cL[hH] - hI)
1474+ let gM = max([0, toInt((gL - f))])
1475+ let hJ = cH(gM, be)
1476+ let gf = hJ._1
1477+ let cJ = hJ._2
1478+ $Tuple2(nil, $Tuple2(gf, cJ))
14791479 }
14801480
14811481
14821482
1483-@Callable(da)
1484-func getOneTknV2WithBonusREADONLY (fX,hH) = {
1483+@Callable(cZ)
1484+func getOneTknV2WithBonusREADONLY (fW,hG) = {
1485+ let dt = toBase58String(value(bA))
14851486 let du = toBase58String(value(bB))
1486- let dv = toBase58String(value(bC))
1487- let dt = toBase58String(value(bA))
1488- let dA = ca(du)
1489- let dC = ca(dv)
1490- let hL = {
1491- let be = invoke(this, "getOneTknV2READONLY", [fX, hH], nil)
1492- if ($isInstanceOf(be, "(Int, Int)"))
1493- then be
1494- else throw(($getType(be) + " couldn't be cast to (Int, Int)"))
1487+ let ds = toBase58String(value(bz))
1488+ let dz = bZ(dt)
1489+ let dB = bZ(du)
1490+ let hK = {
1491+ let bd = invoke(this, "getOneTknV2READONLY", [fW, hG], nil)
1492+ if ($isInstanceOf(bd, "(Int, Int)"))
1493+ then bd
1494+ else throw(($getType(bd) + " couldn't be cast to (Int, Int)"))
14951495 }
1496- let gg = hL._1
1497- let cK = hL._2
1498- let eh = do("", dt, hH, this)
1499- let dK = eh._1
1500- let dL = eh._2
1501- let hM = (dK + dL)
1502- let fV = if ((hM == 0))
1503- then if ((gg == 0))
1496+ let gf = hK._1
1497+ let cJ = hK._2
1498+ let eg = dn("", ds, hG, this)
1499+ let dJ = eg._1
1500+ let dK = eg._2
1501+ let hL = (dJ + dK)
1502+ let fU = if ((hL == 0))
1503+ then if ((gf == 0))
15041504 then 0
15051505 else throw("bonus calculation error")
1506- else fraction((gg - hM), a, hM)
1507- $Tuple2(nil, $Tuple3(gg, cK, fV))
1506+ else fraction((gf - hL), a, hL)
1507+ $Tuple2(nil, $Tuple3(gf, cJ, fU))
15081508 }
15091509
15101510
15111511
1512-@Callable(da)
1513-func getNoLess (hN,hO) = {
1514- let eh = ft(da)
1515- let dK = eh._1
1516- let dL = eh._2
1517- let dW = eh._3
1518- let dq = eh._4
1519- let dM = eh._5
1520- if ((hN > dK))
1521- then throw(((("Failed: " + toString(dK)) + " < ") + toString(hN)))
1522- else if ((hO > dL))
1523- then throw(((("Failed: " + toString(dL)) + " < ") + toString(hO)))
1512+@Callable(cZ)
1513+func getNoLess (hM,hN) = {
1514+ let eg = fs(cZ)
1515+ let dJ = eg._1
1516+ let dK = eg._2
1517+ let dV = eg._3
1518+ let dp = eg._4
1519+ let dL = eg._5
1520+ if ((hM > dJ))
1521+ then throw(((("Failed: " + toString(dJ)) + " < ") + toString(hM)))
1522+ else if ((hN > dK))
1523+ then throw(((("Failed: " + toString(dK)) + " < ") + toString(hN)))
15241524 else {
1525- let fb = eU(toBigInt(0), toBigInt(0), toBigInt(0))
1526- if ((fb == fb))
1525+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1526+ if ((fa == fa))
15271527 then {
1528- let hP = invoke(aU, "burn", [dW], [AttachedPayment(dq, dW)])
1529- if ((hP == hP))
1528+ let hO = invoke(aT, "burn", [dV], [AttachedPayment(dp, dV)])
1529+ if ((hO == hO))
15301530 then {
1531- let hQ = fc(-(dK), -(dL), 0)
1532- let gu = hQ._1
1533- let eT = hQ._2
1534- let gv = fg(fb, eT)
1535- if ((gv == gv))
1536- then (dM ++ gu)
1531+ let hP = fb(-(dJ), -(dK), 0)
1532+ let gt = hP._1
1533+ let eS = hP._2
1534+ let gu = ff(fa, eS)
1535+ if ((gu == gu))
1536+ then (dL ++ gt)
15371537 else throw("Strict value is not equal to itself.")
15381538 }
15391539 else throw("Strict value is not equal to itself.")
15401540 }
15411541 else throw("Strict value is not equal to itself.")
15421542 }
15431543 }
15441544
15451545
15461546
1547-@Callable(da)
1548-func unstakeAndGet (cJ) = {
1549- let hR = if ((size(da.payments) != 0))
1547+@Callable(cZ)
1548+func unstakeAndGet (cI) = {
1549+ let hQ = if ((size(cZ.payments) != 0))
15501550 then throw("No pmnts expd")
15511551 else true
1552- if ((hR == hR))
1552+ if ((hQ == hQ))
15531553 then {
1554- let hS = bF()
1555- let hh = bA
1556- let hT = valueOrErrorMessage(addressFromString(hS[D]), "Wr st addr")
1557- let fb = eU(toBigInt(0), toBigInt(0), toBigInt(0))
1558- if ((fb == fb))
1554+ let hR = bE()
1555+ let hg = bz
1556+ let hS = valueOrErrorMessage(addressFromString(hR[D]), "Wr st addr")
1557+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1558+ if ((fa == fa))
15591559 then {
1560- let hU = invoke(hT, "unstake", [toBase58String(hh), cJ], nil)
1561- if ((hU == hU))
1560+ let hT = invoke(hS, "unstake", [toBase58String(hg), cI], nil)
1561+ if ((hT == hT))
15621562 then {
1563- let eh = do(toBase58String(da.transactionId), toBase58String(hh), cJ, da.caller)
1564- let dK = eh._1
1565- let dL = eh._2
1566- let dy = parseIntValue(eh._9)
1567- let dM = eh._10
1568- let fv = if (!(bi(da.caller)))
1569- then if (bk())
1563+ let eg = dn(toBase58String(cZ.transactionId), toBase58String(hg), cI, cZ.caller)
1564+ let dJ = eg._1
1565+ let dK = eg._2
1566+ let dx = parseIntValue(eg._9)
1567+ let dL = eg._10
1568+ let fu = if (!(bh(cZ.caller)))
1569+ then if (bj())
15701570 then true
1571- else (bz == t)
1571+ else (by == t)
15721572 else false
1573- let hV = if (fv)
1574- then throw(("Blocked: " + toString(dy)))
1573+ let hU = if (fu)
1574+ then throw(("Blocked: " + toString(dx)))
15751575 else true
1576- if ((hV == hV))
1576+ if ((hU == hU))
15771577 then {
1578- let hW = invoke(aU, "burn", [cJ], [AttachedPayment(hh, cJ)])
1579- if ((hW == hW))
1578+ let hV = invoke(aT, "burn", [cI], [AttachedPayment(hg, cI)])
1579+ if ((hV == hV))
15801580 then {
1581- let hX = fc(-(dK), -(dL), 0)
1582- let gu = hX._1
1583- let eT = hX._2
1584- let gv = fg(fb, eT)
1585- if ((gv == gv))
1586- then (dM ++ gu)
1581+ let hW = fb(-(dJ), -(dK), 0)
1582+ let gt = hW._1
1583+ let eS = hW._2
1584+ let gu = ff(fa, eS)
1585+ if ((gu == gu))
1586+ then (dL ++ gt)
15871587 else throw("Strict value is not equal to itself.")
15881588 }
15891589 else throw("Strict value is not equal to itself.")
15901590 }
15911591 else throw("Strict value is not equal to itself.")
15921592 }
15931593 else throw("Strict value is not equal to itself.")
15941594 }
15951595 else throw("Strict value is not equal to itself.")
15961596 }
15971597 else throw("Strict value is not equal to itself.")
15981598 }
15991599
16001600
16011601
1602-@Callable(da)
1603-func unstakeAndGetNoLess (hY,hZ,hO) = {
1604- let fv = if (!(bi(da.caller)))
1605- then if (bk())
1602+@Callable(cZ)
1603+func unstakeAndGetNoLess (hX,hY,hN) = {
1604+ let fu = if (!(bh(cZ.caller)))
1605+ then if (bj())
16061606 then true
1607- else (bz == t)
1607+ else (by == t)
16081608 else false
1609- let gV = [if (!(fv))
1609+ let gU = [if (!(fu))
16101610 then true
1611- else throw("get operation is blocked by admin"), if ((size(da.payments) == 0))
1611+ else throw("get operation is blocked by admin"), if ((size(cZ.payments) == 0))
16121612 then true
16131613 else throw("no payments are expected")]
1614- if ((gV == gV))
1614+ if ((gU == gU))
16151615 then {
1616- let fb = eU(toBigInt(0), toBigInt(0), toBigInt(0))
1617- if ((fb == fb))
1616+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1617+ if ((fa == fa))
16181618 then {
1619- let hU = invoke(bH, "unstake", [toBase58String(bA), hY], nil)
1620- if ((hU == hU))
1619+ let hT = invoke(bG, "unstake", [toBase58String(bz), hX], nil)
1620+ if ((hT == hT))
16211621 then {
1622- let ia = do(toBase58String(da.transactionId), toBase58String(bA), hY, da.caller)
1623- let dK = ia._1
1624- let dL = ia._2
1625- let dM = ia._10
1626- let ib = [if ((dK >= hZ))
1622+ let hZ = dn(toBase58String(cZ.transactionId), toBase58String(bz), hX, cZ.caller)
1623+ let dJ = hZ._1
1624+ let dK = hZ._2
1625+ let dL = hZ._10
1626+ let ia = [if ((dJ >= hY))
16271627 then true
1628- else throw(makeString(["amount asset amount to receive is less than ", toString(hZ)], "")), if ((dL >= hO))
1628+ else throw(makeString(["amount asset amount to receive is less than ", toString(hY)], "")), if ((dK >= hN))
16291629 then true
1630- else throw(makeString(["price asset amount to receive is less than ", toString(hO)], ""))]
1631- if ((ib == ib))
1630+ else throw(makeString(["price asset amount to receive is less than ", toString(hN)], ""))]
1631+ if ((ia == ia))
16321632 then {
1633- let hP = invoke(aU, "burn", [hY], [AttachedPayment(bA, hY)])
1634- if ((hP == hP))
1633+ let hO = invoke(aT, "burn", [hX], [AttachedPayment(bz, hX)])
1634+ if ((hO == hO))
16351635 then {
1636- let ic = fc(-(dK), -(dL), 0)
1637- let gu = ic._1
1638- let eT = ic._2
1639- let gv = fg(fb, eT)
1640- if ((gv == gv))
1641- then (dM ++ gu)
1636+ let ib = fb(-(dJ), -(dK), 0)
1637+ let gt = ib._1
1638+ let eS = ib._2
1639+ let gu = ff(fa, eS)
1640+ if ((gu == gu))
1641+ then (dL ++ gt)
16421642 else throw("Strict value is not equal to itself.")
16431643 }
16441644 else throw("Strict value is not equal to itself.")
16451645 }
16461646 else throw("Strict value is not equal to itself.")
16471647 }
16481648 else throw("Strict value is not equal to itself.")
16491649 }
16501650 else throw("Strict value is not equal to itself.")
16511651 }
16521652 else throw("Strict value is not equal to itself.")
16531653 }
16541654
16551655
16561656
1657-@Callable(da)
1658-func unstakeAndGetOneTknV2 (hY,fX,fY) = {
1659- let hr = {
1660- let be = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1661- if ($isInstanceOf(be, "Boolean"))
1662- then be
1663- else throw(($getType(be) + " couldn't be cast to Boolean"))
1657+@Callable(cZ)
1658+func unstakeAndGetOneTknV2 (hX,fW,fX) = {
1659+ let hq = {
1660+ let bd = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1661+ if ($isInstanceOf(bd, "Boolean"))
1662+ then bd
1663+ else throw(($getType(bd) + " couldn't be cast to Boolean"))
16641664 }
1665- let fv = if (!(bi(da.caller)))
1666- then if (if (bk())
1665+ let fu = if (!(bh(cZ.caller)))
1666+ then if (if (bj())
16671667 then true
1668- else (bz == t))
1668+ else (by == t))
16691669 then true
1670- else hr
1670+ else hq
16711671 else false
1672- let gV = [if (if (!(fv))
1672+ let gU = [if (if (!(fu))
16731673 then true
1674- else gz(da))
1674+ else gy(cZ))
16751675 then true
1676- else ba("get operation is blocked by admin"), if ((size(da.payments) == 0))
1676+ else aZ("get operation is blocked by admin"), if ((size(cZ.payments) == 0))
16771677 then true
1678- else ba("no payments are expected")]
1679- if ((gV == gV))
1678+ else aZ("no payments are expected")]
1679+ if ((gU == gU))
16801680 then {
1681- let hS = bF()
1682- let hh = bA
1683- let hT = valueOrErrorMessage(addressFromString(hS[D]), "Wr st addr")
1684- let ds = da.caller
1685- let id = this
1686- let hU = invoke(hT, "unstakeINTERNAL", [hh, hY, ds.bytes, id.bytes], nil)
1687- if ((hU == hU))
1681+ let hR = bE()
1682+ let hg = bz
1683+ let hS = valueOrErrorMessage(addressFromString(hR[D]), "Wr st addr")
1684+ let dr = cZ.caller
1685+ let ic = this
1686+ let hT = invoke(hS, "unstakeINTERNAL", [hg, hX, dr.bytes, ic.bytes], nil)
1687+ if ((hT == hT))
16881688 then {
1689- let ie = fW(fX, fY, [AttachedPayment(hh, hY)], da.caller, da.originCaller, da.transactionId)
1690- let dM = ie._1
1691- let gh = ie._2
1692- $Tuple2(dM, gh)
1689+ let id = fV(fW, fX, [AttachedPayment(hg, hX)], cZ.caller, cZ.originCaller, cZ.transactionId)
1690+ let dL = id._1
1691+ let gg = id._2
1692+ $Tuple2(dL, gg)
16931693 }
16941694 else throw("Strict value is not equal to itself.")
16951695 }
16961696 else throw("Strict value is not equal to itself.")
16971697 }
16981698
16991699
17001700
1701-@Callable(da)
1702-func putOneTknV2WithBonusREADONLY (if,ig) = {
1703- let ih = fB(if, ig, "", "", true)
1704- let fQ = ih._1
1705- let dM = ih._2
1706- let cK = ih._3
1707- let fV = ih._4
1708- $Tuple2(nil, $Tuple3(fQ, cK, fV))
1701+@Callable(cZ)
1702+func putOneTknV2WithBonusREADONLY (ie,if) = {
1703+ let ig = fA(ie, if, "", "", true)
1704+ let fP = ig._1
1705+ let dL = ig._2
1706+ let cJ = ig._3
1707+ let fU = ig._4
1708+ $Tuple2(nil, $Tuple3(fP, cJ, fU))
17091709 }
17101710
17111711
17121712
1713-@Callable(da)
1714-func putOneTknV2WithoutTakeFeeREADONLY (if,ig) = {
1715- let ii = fB(if, ig, "", "", false)
1716- let fQ = ii._1
1717- let dM = ii._2
1718- let cK = ii._3
1719- let fV = ii._4
1720- $Tuple2(nil, $Tuple3(fQ, cK, fV))
1713+@Callable(cZ)
1714+func putOneTknV2WithoutTakeFeeREADONLY (ie,if) = {
1715+ let ih = fA(ie, if, "", "", false)
1716+ let fP = ih._1
1717+ let dL = ih._2
1718+ let cJ = ih._3
1719+ let fU = ih._4
1720+ $Tuple2(nil, $Tuple3(fP, cJ, fU))
17211721 }
17221722
17231723
17241724
1725-@Callable(da)
1726-func activate (ij,ik) = if ((toString(da.caller) != toString(aU)))
1725+@Callable(cZ)
1726+func activate (ii,ij) = if ((toString(cZ.caller) != toString(aT)))
17271727 then throw("denied")
1728- else $Tuple2([StringEntry(ak(), ij), StringEntry(al(), ik), StringEntry(am(), toString(l)), StringEntry(an(height), toString(l))], "success")
1728+ else $Tuple2([StringEntry(ak(), ii), StringEntry(al(), ij), StringEntry(am(), toString(l)), StringEntry(an(height), toString(l))], "success")
17291729
17301730
17311731
1732-@Callable(da)
1733-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bn())
1732+@Callable(cZ)
1733+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bm())
17341734
17351735
17361736
1737-@Callable(da)
1738-func getAccBalanceWrapperREADONLY (cb) = $Tuple2(nil, ca(cb))
1737+@Callable(cZ)
1738+func getAccBalanceWrapperREADONLY (ca) = $Tuple2(nil, bZ(ca))
17391739
17401740
17411741
1742-@Callable(da)
1743-func calcPricesWrapperREADONLY (cu,cv,cz) = {
1744- let il = cy(cu, cv, cz)
1745- $Tuple2(nil, [toString(il[0]), toString(il[1]), toString(il[2])])
1742+@Callable(cZ)
1743+func calcPricesWrapperREADONLY (ct,cu,cy) = {
1744+ let ik = cx(ct, cu, cy)
1745+ $Tuple2(nil, [toString(ik[0]), toString(ik[1]), toString(ik[2])])
17461746 }
17471747
17481748
17491749
1750-@Callable(da)
1751-func fromX18WrapperREADONLY (N,im) = $Tuple2(nil, M(parseBigIntValue(N), im))
1750+@Callable(cZ)
1751+func fromX18WrapperREADONLY (N,il) = $Tuple2(nil, M(parseBigIntValue(N), il))
17521752
17531753
17541754
1755-@Callable(da)
1755+@Callable(cZ)
17561756 func toX18WrapperREADONLY (J,K) = $Tuple2(nil, toString(I(J, K)))
17571757
17581758
17591759
1760-@Callable(da)
1761-func calcPriceBigIntWrapperREADONLY (cd,ce) = $Tuple2(nil, toString(cc(parseBigIntValue(cd), parseBigIntValue(ce))))
1760+@Callable(cZ)
1761+func calcPriceBigIntWrapperREADONLY (cc,cd) = $Tuple2(nil, toString(cb(parseBigIntValue(cc), parseBigIntValue(cd))))
17621762
17631763
17641764
1765-@Callable(da)
1766-func estimatePutOperationWrapperREADONLY (dp,cj,dO,dP,dQ,dR,in,dS,dT) = $Tuple2(nil, dN(dp, cj, dO, dP, dQ, dR, in, dS, dT, true, false, 0, ""))
1765+@Callable(cZ)
1766+func estimatePutOperationWrapperREADONLY (do,ci,dN,dO,dP,dQ,im,dR,dS) = $Tuple2(nil, dM(do, ci, dN, dO, dP, dQ, im, dR, dS, true, false, 0, ""))
17671767
17681768
17691769
1770-@Callable(da)
1771-func estimateGetOperationWrapperREADONLY (dp,io,dr,in) = {
1772- let eh = do(dp, io, dr, addressFromStringValue(in))
1773- $Tuple2(nil, $Tuple10(eh._1, eh._2, eh._3, eh._4, eh._5, eh._6, eh._7, toString(eh._8), eh._9, eh._10))
1770+@Callable(cZ)
1771+func estimateGetOperationWrapperREADONLY (do,in,dq,im) = {
1772+ let eg = dn(do, in, dq, addressFromStringValue(im))
1773+ $Tuple2(nil, $Tuple10(eg._1, eg._2, eg._3, eg._4, eg._5, eg._6, eg._7, toString(eg._8), eg._9, eg._10))
17741774 }
17751775
17761776
17771777
1778-@Callable(da)
1778+@Callable(cZ)
17791779 func changeAmp () = {
1780- let ip = invoke(aU, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1781- let iq = {
1782- let aQ = ip
1783- if ($isInstanceOf(aQ, "List[Any]"))
1780+ let io = invoke(aT, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1781+ let ip = {
1782+ let aP = io
1783+ if ($isInstanceOf(aP, "List[Any]"))
17841784 then {
1785- let ir = aQ
1785+ let iq = aP
17861786 $Tuple3({
1787- let be = ir[0]
1788- if ($isInstanceOf(be, "Int"))
1789- then be
1790- else throw(($getType(be) + " couldn't be cast to Int"))
1787+ let bd = iq[0]
1788+ if ($isInstanceOf(bd, "Int"))
1789+ then bd
1790+ else throw(($getType(bd) + " couldn't be cast to Int"))
17911791 }, {
1792- let be = ir[1]
1793- if ($isInstanceOf(be, "Int"))
1794- then be
1795- else throw(($getType(be) + " couldn't be cast to Int"))
1792+ let bd = iq[1]
1793+ if ($isInstanceOf(bd, "Int"))
1794+ then bd
1795+ else throw(($getType(bd) + " couldn't be cast to Int"))
17961796 }, {
1797- let be = ir[2]
1798- if ($isInstanceOf(be, "Int"))
1799- then be
1800- else throw(($getType(be) + " couldn't be cast to Int"))
1797+ let bd = iq[2]
1798+ if ($isInstanceOf(bd, "Int"))
1799+ then bd
1800+ else throw(($getType(bd) + " couldn't be cast to Int"))
18011801 })
18021802 }
1803- else ba("invalid entry type")
1803+ else aZ("invalid entry type")
18041804 }
1805- let is = iq._1
1806- let it = iq._2
1807- let iu = iq._3
1808- let iv = parseIntValue(getStringValue(am()))
1809- let iw = (iv + it)
1810- let ix = if ((0 > it))
1811- then if ((iu > iw))
1812- then iu
1813- else iw
1814- else if ((iw > iu))
1815- then iu
1816- else iw
1817- let iy = valueOrElse(getInteger(ap()), 0)
1818- let iz = (iy + is)
1819- let gV = [if ((height > iz))
1805+ let ir = ip._1
1806+ let is = ip._2
1807+ let it = ip._3
1808+ let iu = parseIntValue(getStringValue(am()))
1809+ let iv = (iu + is)
1810+ let iw = if ((0 > is))
1811+ then if ((it > iv))
1812+ then it
1813+ else iv
1814+ else if ((iv > it))
1815+ then it
1816+ else iv
1817+ let ix = valueOrElse(getInteger(ap()), 0)
1818+ let iy = (ix + ir)
1819+ let gU = [if ((height > iy))
18201820 then true
1821- else ba("try again in few blocks"), if ((iv != ix))
1821+ else aZ("try again in few blocks"), if ((iu != iw))
18221822 then true
1823- else ba("already reached target")]
1824- if ((gV == gV))
1825- then [IntegerEntry(ap(), height), StringEntry(am(), toString(ix)), StringEntry(an(height), toString(ix))]
1823+ else aZ("already reached target")]
1824+ if ((gU == gU))
1825+ then [IntegerEntry(ap(), height), StringEntry(am(), toString(iw)), StringEntry(an(height), toString(iw))]
18261826 else throw("Strict value is not equal to itself.")
18271827 }
18281828
18291829
1830-@Verifier(iA)
1831-func iB () = {
1832- let iC = {
1833- let aQ = gw()
1834- if ($isInstanceOf(aQ, "ByteVector"))
1830+@Verifier(iz)
1831+func iA () = {
1832+ let iB = {
1833+ let aP = gv()
1834+ if ($isInstanceOf(aP, "ByteVector"))
18351835 then {
1836- let gA = aQ
1837- gA
1836+ let gz = aP
1837+ gz
18381838 }
1839- else if ($isInstanceOf(aQ, "Unit"))
1840- then iA.senderPublicKey
1839+ else if ($isInstanceOf(aP, "Unit"))
1840+ then iz.senderPublicKey
18411841 else throw("Match error")
18421842 }
1843- let aQ = iA
1844- if ($isInstanceOf(aQ, "Order"))
1843+ let aP = iz
1844+ if ($isInstanceOf(aP, "Order"))
18451845 then {
1846- let fj = aQ
1847- let iD = bl()
1848- let iE = if (gH())
1846+ let fi = aP
1847+ let iC = bk()
1848+ let iD = if (gG())
18491849 then $Tuple2(true, "")
1850- else fi(fj)
1851- let aK = iE._1
1852- let aL = iE._2
1853- let aM = sigVerify(fj.bodyBytes, fj.proofs[0], fj.senderPublicKey)
1854- let aN = sigVerify(fj.bodyBytes, fj.proofs[1], iD)
1855- if (if (if (aK)
1850+ else fh(fi)
1851+ let aK = iD._1
1852+ let aL = iD._2
1853+ let aM = sigVerify(fi.bodyBytes, fi.proofs[1], iC)
1854+ if (if (aK)
18561855 then aM
18571856 else false)
1858- then aN
1859- else false)
18601857 then true
1861- else aJ(aK, aL, aM, aN)
1858+ else aJ(aK, aL, aM)
18621859 }
1863- else if ($isInstanceOf(aQ, "SetScriptTransaction"))
1860+ else if ($isInstanceOf(aP, "SetScriptTransaction"))
18641861 then {
1865- let aV = aQ
1866- if (sigVerify(iA.bodyBytes, iA.proofs[0], iC))
1862+ let aU = aP
1863+ if (sigVerify(iz.bodyBytes, iz.proofs[0], iB))
18671864 then true
18681865 else {
1869- let iF = blake2b256(value(aV.script))
1870- let iG = fromBase64String(value(getString(aU, aF())))
1871- let iH = scriptHash(this)
1872- if ((iG == iF))
1873- then (iH != iF)
1866+ let iE = blake2b256(value(aU.script))
1867+ let iF = fromBase64String(value(getString(aT, aF())))
1868+ let iG = scriptHash(this)
1869+ if ((iF == iE))
1870+ then (iG != iE)
18741871 else false
18751872 }
18761873 }
1877- else sigVerify(iA.bodyBytes, iA.proofs[0], iC)
1874+ else sigVerify(iz.bodyBytes, iz.proofs[0], iB)
18781875 }
18791876

github/deemru/w8io/026f985 
662.25 ms