UNPKG

@dolomite-exchange/dolomite-margin

Version:

Ethereum Smart Contracts and TypeScript library used for the DolomiteMargin trading protocol

8 lines 190 kB
{ "contractName": "DepositImpl", "abi": [], "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/DepositImpl.sol\":\"DepositImpl\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/DepositImpl.sol\":{\"keccak256\":\"0x07eaed8d56d7b57a9b0ee9a76918a087d08ae10c999ffc12c7368ab5e8551fb4\",\"urls\":[\"bzz-raw://19f5a6045092355b4a2eca6a67118a737b2ff66f95e8ba816535c719b0479407\",\"dweb:/ipfs/QmZQVZKSCuk6C437jwnx8PX51xcDEZeM1aTJ5YcaViNQw4\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IAccountRiskOverrideSetter.sol\":{\"keccak256\":\"0x5b9fde139ddfdaae7b650b3c3f6699e0e44605f0d9d3daadc1622eb06ad4c3f8\",\"urls\":[\"bzz-raw://2dfd5af24b6de63f94519c99fd8777a264d7cd11266fa2d525c7d72d96a9c7cf\",\"dweb:/ipfs/QmPg9fjhbnmBayZMh6yTG79xsK1PWSoAHA5pfwSXfnKKjF\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IExchangeWrapper.sol\":{\"keccak256\":\"0x74799c3fac16738be41e270a70d3f7ad4f75d1dc7e5d8c58f0fe4c6128345112\",\"urls\":[\"bzz-raw://d9602af1001189d199736d17266d5fb34a32f71cd05fbcf4c0f97c0b3a642eee\",\"dweb:/ipfs/QmPto2DkZ1nKqicBMdMkaek7kGSSXqSKnf697h5zuthvsy\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IOracleSentinel.sol\":{\"keccak256\":\"0xa94499fda55ef112640daed2cb1d06062e72c51c7b925c323b4e0ffa9b456ce5\",\"urls\":[\"bzz-raw://18b4a16acac577590a57f34f7ec6583e3cb35f575c948abb928b308d29cac1ab\",\"dweb:/ipfs/QmR1jLkzj6w7SjrdZ7GVW4V2vofSdMJwzjTqKpeUKABvxu\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x2059276ea5e478bd5ac7f2712e7b1b6c85d291c647a54b264909044844828e67\",\"urls\":[\"bzz-raw://f153777051d12131b13a57e5c3af10a2670927cfc7d22c9519ab20c9b4b9bc89\",\"dweb:/ipfs/QmQMP3qS5xDAVGYKDfNkbkSqBKozQGQsGqX4e8VyjRtxPS\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x7b2fcf441c034952dd042b6c8b20b148359db771e7c9ac07d06369560a9f0301\",\"urls\":[\"bzz-raw://84665ee4a780360fe6160d197ba98f0bf0ab0d7c6ad87bfed6226bf2f88d8d30\",\"dweb:/ipfs/QmRDfRdAd8hSXeu4SAeeYKkKoXBhStu7n4uReYBce2JD5Z\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x6d9a641163b2dd25e648c65f5d9e4949a57938e29ddc4c9dddefd74a9964aeef\",\"urls\":[\"bzz-raw://67e5a04ed4055faafbc100d6ccca9c54448ed378a1a8c71171562edda7bcbf7c\",\"dweb:/ipfs/QmYRikK3Xbgiq3UBJkgoo2zNUSSrShVabpRHmQj6iQHhrc\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0xe57c80a7621a77fcb2acb9f883fb5248e71a6dce03bc2db56df0db3fee332950\",\"urls\":[\"bzz-raw://28e221c04629674490b9a0041d4f9a5f15e669dc0cc192a5df6e2c701c36369f\",\"dweb:/ipfs/QmaL3oh8c7v9cx91pB175pyCEuzxnhNTab4UxmBMsDYfUx\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0xd9a348c2b1eec076609ba12bbec6b9c2e4ea135790a7ef4f5411feb050af2144\",\"urls\":[\"bzz-raw://d5bcff29e47d5cd02d7a9966e9f44c46ccbb4f0e4adfc4b0b86646880677db39\",\"dweb:/ipfs/QmRKfJD4FFM1AvTynSFNx1NcDg94o9SAcjz7dvMaJCfecp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/DolomiteMarginMath.sol\":{\"keccak256\":\"0x53f205f6a779d579be29faa9412c806a892b3e605fff092dfd9d14d936fa019f\",\"urls\":[\"bzz-raw://0ff936f89602a63b8e6a4eb4ce8f87673c0f45b7ce29694920905a3f0b5a6a69\",\"dweb:/ipfs/QmbYME9BeEvPC1ndV8EaUDX5fDMghLc3rocNUxFtgHmg8m\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x41a3460e34b7b8635d936e35e6568ceb5354b638f53b884530e0d4875fa0f151\",\"urls\":[\"bzz-raw://d1a5ba866ee95d455afe5075dadd91fc71c2806371f2c1b358a1f67c632bb0df\",\"dweb:/ipfs/QmW4qCjmsG8J3UJv97GwDLDM7wt1K4yLDKAwzWMY7TFYi5\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Events.sol\":{\"keccak256\":\"0x2345dcc1ebf53a3d5449dab083b1fb90b5362dae692f8ff3ad00078862894e9b\",\"urls\":[\"bzz-raw://ebd34c557c06caf0696774844f0ca9746412ecc452bdd978b3bca0fd71aefbde\",\"dweb:/ipfs/QmcwXXKgv77DqfhxABRg85WR6RBPTLmge5vJGp99o9kFf8\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Exchange.sol\":{\"keccak256\":\"0x5952f2f78aa0adb88980d9eeec5626fecbec79103038841c3ad9e4f2c4ac556b\",\"urls\":[\"bzz-raw://2a358a8370fa8abba24db2a3337f5b397e51a686d84facaf70ced9cc32d65235\",\"dweb:/ipfs/QmY4vPNq3SMu176LL4XRxFPtDQf8QEztQNxerWvmoEALsR\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x141a0ecb4a746f0e5767df4b99dbe33c6362df507ae9d5c02da1c1c17bc26df3\",\"urls\":[\"bzz-raw://9ff03e64a8ce5231acde07788624bf8c7a8ff55d90b157fa32f62fa887a0eff0\",\"dweb:/ipfs/QmUVxxWeE954RDXbmHJAYnHsXcit6rSXGqZUigu8t9oH2z\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0x05a2a90b41b6a5f42f0a72da63d015fb0b406a9ba2172823352e522e8bf3a606\",\"urls\":[\"bzz-raw://19883f0c6d33266f756ec5c3d17539524aa24b993c46c33f8400801d09373a6c\",\"dweb:/ipfs/QmYX2fwK3vQQDSZLMrc5wMfeb8RWrcC9CGX8XECLty8QDk\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0x9c27f3cd52af28c9b6bca18097b1793f114d08284d78417467d0d05f67e9e2a9\",\"urls\":[\"bzz-raw://d1ed0e7a7f76d59f30572996d4e164ab8fb5b2ec4bfca127983f9e936b904813\",\"dweb:/ipfs/QmePVYbgrY8Yw3Vf76pmEvE9pX916Jaa9we4kjM8tGM4J1\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x87ee8d3c1d6e315a116426d8c8fc6f083e220fd14dda27fad4e8d7cab3dc7305\",\"urls\":[\"bzz-raw://7c20f2c52da682c3b5917fb6a19e81f43699b1d13c62b569ed723f34da72e766\",\"dweb:/ipfs/QmbXWYXi67nHBVNDKYUpo2E9ZaEVcHLvmXQkpYLMm1d5Vm\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0x095b5f8eb3665f6e246200311efc8a654fa3e90f9a1a522e27a4d089e8ab3917\",\"urls\":[\"bzz-raw://5db812b752a03d601d424e6e21be38153477082af0acf51b5c98eefa5553ed18\",\"dweb:/ipfs/QmbE549QUXYTurpx8hSMLBJvuBpfYqyNE6FBCgHJDY8PLf\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xe1bab8c8799d83e86c7a49aaf815d8e3bc8d09562d46d44d921500db5e98de0e\",\"urls\":[\"bzz-raw://8ea3d0cc4fdab6dd9bba545a792170f939b342d8d1a7051c1c6365009af72658\",\"dweb:/ipfs/QmaLJgbavu88eEit6JPqfWnw6NmGBDZfveMXxumgWywBFG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}", "bytecode": "0x61226d610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063f3668ed01461003a575b600080fd5b81801561004657600080fd5b5061005a610055366004611d9e565b61005c565b005b60208201516100739084903363ffffffff6101ad16565b60608201516101229073ffffffffffffffffffffffffffffffffffffffff163314806100d6575082602001516000015173ffffffffffffffffffffffffffffffffffffffff16836060015173ffffffffffffffffffffffffffffffffffffffff16145b7f4465706f736974496d706c0000000000000000000000000000000000000000007f496e76616c6964206465706f73697420736f75726365000000000000000000008560600151610266565b61012a611b82565b610132611b82565b6020840151604085015185516101539288929091879063ffffffff61036516565b91509150610176846020015185604001518488610501909392919063ffffffff16565b61019b6101908560400151876109df90919063ffffffff16565b856060015183610a0d565b6101a6858583610a7b565b5050505050565b6000826000015173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806101f857506101f8848363ffffffff610af616565b80610212575082516102129085908463ffffffff610b2516565b9050610260817f53746f72616765000000000000000000000000000000000000000000000000007f556e7065726d697373696f6e6564206f70657261746f7200000000000000000085610266565b50505050565b836102605761027483610b65565b7f3a2000000000000000000000000000000000000000000000000000000000000061029e84610b65565b7f203c0000000000000000000000000000000000000000000000000000000000006102c885610c3f565b6040516102fe9594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001611fc7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261035c9160040161204d565b60405180910390fd5b61036d611b82565b610375611b82565b61037d611b82565b61038e88888863ffffffff610db616565b9050836060015160001480156103b357506000846040015160018111156103b157fe5b145b156103cb57806103c1610e36565b92509250506104f7565b6103d3611b82565b6103dd8287610e56565b90506103e7611b82565b6103ef611b82565b60008760200151600181111561040157fe5b141561046d5750604080518082019091528651151581526060870151602082015260018760400151600181111561043457fe5b141561044d5761044a818463ffffffff610f0b16565b90505b610466610460848363ffffffff610f2016565b89610fb2565b91506104ef565b60405180604001604052808860000151151581526020016104918960600151611079565b6fffffffffffffffffffffffffffffffff16905291506000876040015160018111156104b957fe5b14156104d2576104cf848363ffffffff6110dc16565b91505b6104ec836104e0848b610e56565b9063ffffffff610f0b16565b90505b909450925050505b9550959350505050565b610509611b82565b61051a85858563ffffffff610db616565b90506105268183611201565b156105315750610260565b610539611b82565b610549868563ffffffff61127316565b8251909150156105b65761059a61059583602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff166112d390919063ffffffff16565b611079565b6fffffffffffffffffffffffffffffffff1660208201526105fb565b602082015181516105e691610595916fffffffffffffffffffffffffffffffff908116911663ffffffff6112d316565b6fffffffffffffffffffffffffffffffff1681525b8251156106605761064461059584602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff1661131590919063ffffffff16565b6fffffffffffffffffffffffffffffffff1660208201526106a5565b6020830151815161069091610595916fffffffffffffffffffffffffffffffff908116911663ffffffff61131516565b6fffffffffffffffffffffffffffffffff1681525b6106ae82611354565b80156106be57506106be8361137e565b1561075b57845173ffffffffffffffffffffffffffffffffffffffff1660009081526003870160209081526040808320828901518452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff61010080840482169290920116027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff9091161790556107ed565b6107648261137e565b8015610774575061077483611354565b156107ed57845173ffffffffffffffffffffffffffffffffffffffff16600090815260038701602090815260408083208289015184529091529020805463ffffffff6101008083048216600101909116027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff9091161790555b6107f683611394565b8015610808575061080682611394565b155b1561085c57845173ffffffffffffffffffffffffffffffffffffffff16600090815260038701602090815260408083208289015184529091529020610856906001018563ffffffff6113ae16565b506108c6565b61086583611394565b158015610876575061087682611394565b156108c657845173ffffffffffffffffffffffffffffffffffffffff166000908152600387016020908152604080832082890151845290915290206108c4906001018563ffffffff61149416565b505b6000848152600180880160209081526040808420855193018054958301516fffffffffffffffffffffffffffffffff908116700100000000000000000000000000000000029481167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090971696909617861693909317909255875173ffffffffffffffffffffffffffffffffffffffff1683526003808a018252828420898301518552825282842088855201815291208451815492860151909316610100027fffffffffffffffffffffffffffffff00000000000000000000000000000000ff9315157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090931692909217929092161790555050505050565b600081815260018301602052604090205473ffffffffffffffffffffffffffffffffffffffff165b92915050565b610a66610a19826114de565b157f45786368616e67650000000000000000000000000000000000000000000000007f43616e6e6f74207472616e73666572496e206e6567617469766500000000000084602001516114f5565b610a768383308460200151611557565b505050565b602080830151805191810151604085015173ffffffffffffffffffffffffffffffffffffffff909316927f2bad8bc95088af2c247b30fa2b2e6a0886f88625e0945cd3051008e0e270198f92610ad4908890838861166e565b8660600151604051610ae9949392919061207e565b60405180910390a2505050565b73ffffffffffffffffffffffffffffffffffffffff166000908152600591909101602052604090205460011490565b73ffffffffffffffffffffffffffffffffffffffff80831660009081526004850160209081526040808320938516835292905220546001145b9392505050565b60608082604051602001610b799190611fa6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b8015610c225781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90910190829082908110610be557fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615610c1d5760010181529050610c3a565b610bac565b5060408051600080825260208201909252905b509150505b919050565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b81600081518110610c8b57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b81600181518110610ccc57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b6014811015610c355760028102610d17600f85166116a5565b838260290381518110610d2657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c9350610d68600f85166116a5565b838260280381518110610d7757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c91600101610cfe565b610dbe611b82565b50815173ffffffffffffffffffffffffffffffffffffffff1660009081526003938401602090815260408083209482015183529381528382209282529190930181529181902081518083019092525460ff81161515825261010090046fffffffffffffffffffffffffffffffff169181019190915290565b610e3e611b82565b50604080518082019091526000808252602082015290565b610e5e611b82565b602083015183516fffffffffffffffffffffffffffffffff9091169015610ecc57604080518082019091526001815260208481015190820190610ec19084906dffffffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6116c716565b815250915050610a07565b604080518082019091526000815283516020820190610ec19084906dffffffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6116c716565b610f13611b82565b610b5e83610f2084611770565b610f28611b82565b610f30611b82565b8251845115159015151415610f635783511515815260208085015190840151610f599190611315565b6020820152610b5e565b8260200151846020015110610f8c5783511515815260208085015190840151610f5991906112d3565b82511515815260208084015190850151610fa691906112d3565b60208201529392505050565b610fba611b82565b825115611032576040518060400160405280600115158152602001611017610595670de0b6b3a764000067ffffffffffffffff1686602001516dffffffffffffffffffffffffffff1688602001516116c79092919063ffffffff16565b6fffffffffffffffffffffffffffffffff1690529050610a07565b60408051808201909152600081528251602085810151908301916110179161059591670de0b6b3a7640000906dffffffffffffffffffffffffffff1663ffffffff6116c716565b600081610a076fffffffffffffffffffffffffffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e7431323800000000000000000000846114f5565b6110e4611b82565b6110ec611b82565b825184511515901515141561114a578351151581526020808501519084015161112e91610595916fffffffffffffffffffffffffffffffff9182169116611315565b6fffffffffffffffffffffffffffffffff166020820152610b5e565b82602001516fffffffffffffffffffffffffffffffff1684602001516fffffffffffffffffffffffffffffffff16106111b0578351151581526020808501519084015161112e91610595916fffffffffffffffffffffffffffffffff91821691166112d3565b825115158152602080840151908501516111e391610595916fffffffffffffffffffffffffffffffff91821691166112d3565b6fffffffffffffffffffffffffffffffff1660208201529392505050565b600081602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff16141561126a5760208301516fffffffffffffffffffffffffffffffff1661125a57506001610a07565b5080518251151590151514610a07565b50600092915050565b61127b611b82565b506000818152600180840160209081526040928390208351808501909452909101546fffffffffffffffffffffffffffffffff8082168452700100000000000000000000000000000000909104169082015292915050565b6000610b5e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611797565b600082820183811015610b5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c9061205e565b600081602001516fffffffffffffffffffffffffffffffff16600014158015610a07575050511590565b600061138982611394565b80610a075750505190565b602001516fffffffffffffffffffffffffffffffff161590565b6000818152600183016020526040812054801561148a5783547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808301910180821461144457600086600001828154811061140557fe5b906000526020600020015490508087600001848154811061142257fe5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061144f57fe5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610a07565b6000915050610a07565b60006114a083836117dd565b6114d657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a07565b506000610a07565b8051600090158015610a0757505060200151151590565b836102605761150383610b65565b7f3a2000000000000000000000000000000000000000000000000000000000000061152d84610b65565b7f203c0000000000000000000000000000000000000000000000000000000000006102c8856117f5565b80158061158f57508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561159957610260565b6040516102609085907f23b872dd00000000000000000000000000000000000000000000000000000000906115d690879087908790602401612025565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518060400160405280601a81526020017f546f6b656e3a207472616e7366657246726f6d206661696c6564000000000000815250611904565b611676611b99565b604080518082019091528281526020810161169887878763ffffffff610db616565b905290505b949350505050565b6000600a8210156116bd57506030810160f81b610c3a565b5060570160f81b90565b60008315806116d4575082155b156116eb576116e4600083611a0b565b9050610b5e565b60006116fd858563ffffffff611a4d16565b90506117676117346001611728600261171c888463ffffffff6112d316565b9063ffffffff611a0b16565b9063ffffffff61131516565b611744838663ffffffff611aa116565b1015611751576000611754565b60015b60ff16611728838663ffffffff611a0b16565b95945050505050565b611778611b82565b5060408051808201909152815115815260208083015190820152919050565b600081848411156117d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c919061204d565b505050900390565b60009081526001919091016020526040902054151590565b606081611836575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610c3a565b8160005b811561184e57600101600a8204915061183a565b6060816040519080825280601f01601f19166020018201604052801561187b576020820181803883390190505b508593509050815b80156118fb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b8282815181106118c157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611883565b50949350505050565b600060608473ffffffffffffffffffffffffffffffffffffffff168460405161192d9190611fbb565b6000604051808303816000865af19150503d806000811461196a576040519150601f19603f3d011682016040523d82523d6000602084013e61196f565b606091505b50915091508183906119ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c919061204d565b508051156101a657808060200190516119ca9190810190611d80565b8390611a03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c919061204d565b505050505050565b6000610b5e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ae3565b600082611a5c57506000610a07565b82820282848281611a6957fe5b0414610b5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c9061206e565b6000610b5e83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250611b34565b60008183611b1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c919061204d565b506000838581611b2a57fe5b0495945050505050565b60008183611b6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c919061204d565b50828481611b7957fe5b06949350505050565b604080518082019091526000808252602082015290565b6040518060400160405280611bac611b82565b8152602001611bb9611b82565b905290565b8035610a07816121e2565b8035610a07816121f9565b8051610a07816121f9565b8035610a0781612202565b600060808284031215611bfc57600080fd5b611c0660806120b3565b90506000611c148484611bc9565b8252506020611c2584848301611bdf565b6020830152506040611c3984828501611bdf565b6040830152506060611c4d84828501611d5f565b60608301525092915050565b60006101008284031215611c6c57600080fd5b611c7660806120b3565b90506000611c848484611bea565b8252506080611c9584848301611d18565b60208301525060c0611ca984828501611d5f565b60408301525060e0611c4d84828501611bbe565b600060608284031215611ccf57600080fd5b611cd960606120b3565b90506000611ce78484611d6a565b8252506020611cf884848301611d6a565b6020830152506040611d0c84828501611d75565b60408301525092915050565b600060408284031215611d2a57600080fd5b611d3460406120b3565b90506000611d428484611bbe565b8252506020611d5384848301611d5f565b60208301525092915050565b8035610a078161220f565b8035610a0781612218565b8035610a0781612221565b600060208284031215611d9257600080fd5b600061169d8484611bd4565b60008060006101808486031215611db457600080fd5b6000611dc08686611d5f565b9350506020611dd186828701611c59565b925050610120611de386828701611cbd565b9150509250925092565b611df6816120e7565b82525050565b611df6816120f2565b611df6611e11826120f7565b612141565b611df6611e118261211c565b611df6611e1182612141565b6000611e39826120da565b611e438185610c3a565b9350611e5381856020860161218e565b9290920192915050565b6000611e68826120da565b611e7281856120de565b9350611e8281856020860161218e565b611e8b816121ba565b9093019392505050565b6000611ea2601b836120de565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000611edb6021836120de565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b80516080830190611f3e8482611f70565b506020820151610260604085018280516040830190611f5d8482611dfc565b5060208201516102606020850182611f94565b80516040830190611f818482611dfc565b5060208201516102606020850182611f9d565b611df681612157565b611df681612141565b6000611fb28284611e22565b50602001919050565b6000610b5e8284611e2e565b6000611fd38289611e2e565b9150611fdf8288611e16565b600282019150611fef8287611e2e565b9150611ffb8286611e16565b60028201915061200b8285611e2e565b91506120178284611e05565b506001019695505050505050565b606081016120338286611ded565b6120406020830185611ded565b61169d6040830184611f9d565b60208082528101610b5e8184611e5d565b60208082528101610a0781611e95565b60208082528101610a0781611ece565b60e0810161208c8287611f9d565b6120996020830186611f9d565b6120a66040830185611f2d565b61176760c0830184611ded565b60405181810167ffffffffffffffff811182821017156120d257600080fd5b604052919050565b5190565b90815260200190565b6000610a078261216c565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b6dffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b60005b838110156121a9578181015183820152602001612191565b838111156102605750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b6121eb816120e7565b81146121f657600080fd5b50565b6121eb816120f2565b600281106121f657600080fd5b6121eb81612141565b6121eb81612144565b6121eb8161218556fea365627a7a72315820dc223c2afb7f43d6bf29af2d7308569ca2b5d20d23be66f512287bba53e62f806c6578706572696d656e74616cf564736f6c63430005100040", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063f3668ed01461003a575b600080fd5b81801561004657600080fd5b5061005a610055366004611d9e565b61005c565b005b60208201516100739084903363ffffffff6101ad16565b60608201516101229073ffffffffffffffffffffffffffffffffffffffff163314806100d6575082602001516000015173ffffffffffffffffffffffffffffffffffffffff16836060015173ffffffffffffffffffffffffffffffffffffffff16145b7f4465706f736974496d706c0000000000000000000000000000000000000000007f496e76616c6964206465706f73697420736f75726365000000000000000000008560600151610266565b61012a611b82565b610132611b82565b6020840151604085015185516101539288929091879063ffffffff61036516565b91509150610176846020015185604001518488610501909392919063ffffffff16565b61019b6101908560400151876109df90919063ffffffff16565b856060015183610a0d565b6101a6858583610a7b565b5050505050565b6000826000015173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806101f857506101f8848363ffffffff610af616565b80610212575082516102129085908463ffffffff610b2516565b9050610260817f53746f72616765000000000000000000000000000000000000000000000000007f556e7065726d697373696f6e6564206f70657261746f7200000000000000000085610266565b50505050565b836102605761027483610b65565b7f3a2000000000000000000000000000000000000000000000000000000000000061029e84610b65565b7f203c0000000000000000000000000000000000000000000000000000000000006102c885610c3f565b6040516102fe9594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001611fc7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261035c9160040161204d565b60405180910390fd5b61036d611b82565b610375611b82565b61037d611b82565b61038e88888863ffffffff610db616565b9050836060015160001480156103b357506000846040015160018111156103b157fe5b145b156103cb57806103c1610e36565b92509250506104f7565b6103d3611b82565b6103dd8287610e56565b90506103e7611b82565b6103ef611b82565b60008760200151600181111561040157fe5b141561046d5750604080518082019091528651151581526060870151602082015260018760400151600181111561043457fe5b141561044d5761044a818463ffffffff610f0b16565b90505b610466610460848363ffffffff610f2016565b89610fb2565b91506104ef565b60405180604001604052808860000151151581526020016104918960600151611079565b6fffffffffffffffffffffffffffffffff16905291506000876040015160018111156104b957fe5b14156104d2576104cf848363ffffffff6110dc16565b91505b6104ec836104e0848b610e56565b9063ffffffff610f0b16565b90505b909450925050505b9550959350505050565b610509611b82565b61051a85858563ffffffff610db616565b90506105268183611201565b156105315750610260565b610539611b82565b610549868563ffffffff61127316565b8251909150156105b65761059a61059583602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff166112d390919063ffffffff16565b611079565b6fffffffffffffffffffffffffffffffff1660208201526105fb565b602082015181516105e691610595916fffffffffffffffffffffffffffffffff908116911663ffffffff6112d316565b6fffffffffffffffffffffffffffffffff1681525b8251156106605761064461059584602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff1661131590919063ffffffff16565b6fffffffffffffffffffffffffffffffff1660208201526106a5565b6020830151815161069091610595916fffffffffffffffffffffffffffffffff908116911663ffffffff61131516565b6fffffffffffffffffffffffffffffffff1681525b6106ae82611354565b80156106be57506106be8361137e565b1561075b57845173ffffffffffffffffffffffffffffffffffffffff1660009081526003870160209081526040808320828901518452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff61010080840482169290920116027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff9091161790556107ed565b6107648261137e565b8015610774575061077483611354565b156107ed57845173ffffffffffffffffffffffffffffffffffffffff16600090815260038701602090815260408083208289015184529091529020805463ffffffff6101008083048216600101909116027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff9091161790555b6107f683611394565b8015610808575061080682611394565b155b1561085c57845173ffffffffffffffffffffffffffffffffffffffff16600090815260038701602090815260408083208289015184529091529020610856906001018563ffffffff6113ae16565b506108c6565b61086583611394565b158015610876575061087682611394565b156108c657845173ffffffffffffffffffffffffffffffffffffffff166000908152600387016020908152604080832082890151845290915290206108c4906001018563ffffffff61149416565b505b6000848152600180880160209081526040808420855193018054958301516fffffffffffffffffffffffffffffffff908116700100000000000000000000000000000000029481167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090971696909617861693909317909255875173ffffffffffffffffffffffffffffffffffffffff1683526003808a018252828420898301518552825282842088855201815291208451815492860151909316610100027fffffffffffffffffffffffffffffff00000000000000000000000000000000ff9315157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090931692909217929092161790555050505050565b600081815260018301602052604090205473ffffffffffffffffffffffffffffffffffffffff165b92915050565b610a66610a19826114de565b157f45786368616e67650000000000000000000000000000000000000000000000007f43616e6e6f74207472616e73666572496e206e6567617469766500000000000084602001516114f5565b610a768383308460200151611557565b505050565b602080830151805191810151604085015173ffffffffffffffffffffffffffffffffffffffff909316927f2bad8bc95088af2c247b30fa2b2e6a0886f88625e0945cd3051008e0e270198f92610ad4908890838861166e565b8660600151604051610ae9949392919061207e565b60405180910390a2505050565b73ffffffffffffffffffffffffffffffffffffffff166000908152600591909101602052604090205460011490565b73ffffffffffffffffffffffffffffffffffffffff80831660009081526004850160209081526040808320938516835292905220546001145b9392505050565b60608082604051602001610b799190611fa6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b8015610c225781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90910190829082908110610be557fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615610c1d5760010181529050610c3a565b610bac565b5060408051600080825260208201909252905b509150505b919050565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b81600081518110610c8b57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b81600181518110610ccc57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b6014811015610c355760028102610d17600f85166116a5565b838260290381518110610d2657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c9350610d68600f85166116a5565b838260280381518110610d7757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c91600101610cfe565b610dbe611b82565b50815173ffffffffffffffffffffffffffffffffffffffff1660009081526003938401602090815260408083209482015183529381528382209282529190930181529181902081518083019092525460ff81161515825261010090046fffffffffffffffffffffffffffffffff169181019190915290565b610e3e611b82565b50604080518082019091526000808252602082015290565b610e5e611b82565b602083015183516fffffffffffffffffffffffffffffffff9091169015610ecc57604080518082019091526001815260208481015190820190610ec19084906dffffffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6116c716565b815250915050610a07565b604080518082019091526000815283516020820190610ec19084906dffffffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6116c716565b610f13611b82565b610b5e83610f2084611770565b610f28611b82565b610f30611b82565b8251845115159015151415610f635783511515815260208085015190840151610f599190611315565b6020820152610b5e565b8260200151846020015110610f8c5783511515815260208085015190840151610f5991906112d3565b82511515815260208084015190850151610fa691906112d3565b60208201529392505050565b610fba611b82565b825115611032576040518060400160405280600115158152602001611017610595670de0b6b3a764000067ffffffffffffffff1686602001516dffffffffffffffffffffffffffff1688602001516116c79092919063ffffffff16565b6fffffffffffffffffffffffffffffffff1690529050610a07565b60408051808201909152600081528251602085810151908301916110179161059591670de0b6b3a7640000906dffffffffffffffffffffffffffff1663ffffffff6116c716565b600081610a076fffffffffffffffffffffffffffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e7431323800000000000000000000846114f5565b6110e4611b82565b6110ec611b82565b825184511515901515141561114a578351151581526020808501519084015161112e91610595916fffffffffffffffffffffffffffffffff9182169116611315565b6fffffffffffffffffffffffffffffffff166020820152610b5e565b82602001516fffffffffffffffffffffffffffffffff1684602001516fffffffffffffffffffffffffffffffff16106111b0578351151581526020808501519084015161112e91610595916fffffffffffffffffffffffffffffffff91821691166112d3565b825115158152602080840151908501516111e391610595916fffffffffffffffffffffffffffffffff91821691166112d3565b6fffffffffffffffffffffffffffffffff1660208201529392505050565b600081602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff16141561126a5760208301516fffffffffffffffffffffffffffffffff1661125a57506001610a07565b5080518251151590151514610a07565b50600092915050565b61127b611b82565b506000818152600180840160209081526040928390208351808501909452909101546fffffffffffffffffffffffffffffffff8082168452700100000000000000000000000000000000909104169082015292915050565b6000610b5e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611797565b600082820183811015610b5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c9061205e565b600081602001516fffffffffffffffffffffffffffffffff16600014158015610a07575050511590565b600061138982611394565b80610a075750505190565b602001516fffffffffffffffffffffffffffffffff161590565b6000818152600183016020526040812054801561148a5783547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808301910180821461144457600086600001828154811061140557fe5b906000526020600020015490508087600001848154811061142257fe5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061144f57fe5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610a07565b6000915050610a07565b60006114a083836117dd565b6114d657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a07565b506000610a07565b8051600090158015610a0757505060200151151590565b836102605761150383610b65565b7f3a2000000000000000000000000000000000000000000000000000000000000061152d84610b65565b7f203c0000000000000000000000000000000000000000000000000000000000006102c8856117f5565b80158061158f57508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561159957610260565b6040516102609085907f23b872dd00000000000000000000000000000000000000000000000000000000906115d690879087908790602401612025565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518060400160405280601a81526020017f546f6b656e3a207472616e7366657246726f6d206661696c6564000000000000815250611904565b611676611b99565b604080518082019091528281526020810161169887878763ffffffff610db616565b905290505b949350505050565b6000600a8210156116bd57506030810160f81b610c3a565b5060570160f81b90565b60008315806116d4575082155b156116eb576116e4600083611a0b565b9050610b5e565b60006116fd858563ffffffff611a4d16565b90506117676117346001611728600261171c888463ffffffff6112d316565b9063ffffffff611a0b16565b9063ffffffff61131516565b611744838663ffffffff611aa116565b1015611751576000611754565b60015b60ff16611728838663ffffffff611a0b16565b95945050505050565b611778611b82565b5060408051808201909152815115815260208083015190820152919050565b600081848411156117d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c919061204d565b505050900390565b60009081526001919091016020526040902054151590565b606081611836575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610c3a565b8160005b811561184e57600101600a8204915061183a565b6060816040519080825280601f01601f19166020018201604052801561187b576020820181803883390190505b508593509050815b80156118fb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b8282815181106118c157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611883565b50949350505050565b600060608473ffffffffffffffffffffffffffffffffffffffff168460405161192d9190611fbb565b6000604051808303816000865af19150503d806000811461196a576040519150601f19603f3d011682016040523d82523d6000602084013e61196f565b606091505b50915091508183906119ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c919061204d565b508051156101a657808060200190516119ca9190810190611d80565b8390611a03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c919061204d565b505050505050565b6000610b5e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ae3565b600082611a5c57506000610a07565b82820282848281611a6957fe5b0414610b5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c9061206e565b6000610b5e83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250611b34565b60008183611b1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c919061204d565b506000838581611b2a57fe5b0495945050505050565b60008183611b6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c919061204d565b50828481611b7957fe5b06949350505050565b604080518082019091526000808252602082015290565b6040518060400160405280611bac611b82565b8152602001611bb9611b82565b905290565b8035610a07816121e2565b8035610a07816121f9565b8051610a07816121f9565b8035610a0781612202565b600060808284031215611bfc57600080fd5b611c0660806120b3565b90506000611c148484611bc9565b8252506020611c2584848301611bdf565b6020830152506040611c3984828501611bdf565b6040830152506060611c4d84828501611d5f565b60608301525092915050565b60006101008284031215611c6c57600080fd5b611c7660806120b3565b90506000611c848484611bea565b8252506080611c9584848301611d18565b60208301525060c0611ca984828501611d5f565b60408301525060e0611c4d84828501611bbe565b600060608284031215611ccf57600080fd5b611cd960606120b3565b90506000611ce78484611d6a565b8252506020611cf884848301611d6a565b6020830152506040611d0c84828501611d75565b60408301525092915050565b600060408284031215611d2a57600080fd5b611d3460406120b3565b90506000611d428484611bbe565b8252506020611d5384848301611d5f565b60208301525092915050565b8035610a078161220f565b8035610a0781612218565b8035610a0781612221565b600060208284031215611d9257600080fd5b600061169d8484611bd4565b60008060006101808486031215611db457600080fd5b6000611dc08686611d5f565b9350506020611dd186828701611c59565b925050610120611de386828701611cbd565b9150509250925092565b611df6816120e7565b82525050565b611df6816120f2565b611df6611e11826120f7565b612141565b611df6611e118261211c565b611df6611e1182612141565b6000611e39826120da565b611e438185610c3a565b9350611e5381856020860161218e565b9290920192915050565b6000611e68826120da565b611e7281856120de565b9350611e8281856020860161218e565b611e8b816121ba565b9093019392505050565b6000611ea2601b836120de565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000611edb6021836120de565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b80516080830190611f3e8482611f70565b506020820151610260604085018280516040830190611f5d8482611dfc565b5060208201516102606020850182611f94565b80516040830190611f818482611dfc565b5060208201516102606020850182611f9d565b611df681612157565b611df681612141565b6000611fb28284611e22565b50602001919050565b6000610b5e8284611e2e565b6000611fd38289611e2e565b9150611fdf8288611e16565b600282019150611fef8287611e2e565b9150611ffb8286611e16565b60028201915061200b8285611e2e565b91506120178284611e05565b506001019695505050505050565b606081016120338286611ded565b6120406020830185611ded565b61169d6040830184611f9d565b60208082528101610b5e8184611e5d565b60208082528101610a0781611e95565b60208082528101610a0781611ece565b60e0810161208c8287611f9d565b6120996020830186611f9d565b6120a66040830185611f2d565b61176760c0830184611ded565b60405181810167ffffffffffffffff811182821017156120d257600080fd5b604052919050565b5190565b90815260200190565b6000610a078261216c565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b6dffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b60005b838110156121a9578181015183820152602001612191565b838111156102605750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b6121eb816120e7565b81146121f657600080fd5b50565b6121eb816120f2565b600281106121f657600080fd5b6121eb81612141565b6121eb81612144565b6121eb8161218556fea365627a7a72315820dc223c2afb7f43d6bf29af2d7308569ca2b5d20d23be66f512287bba53e62f806c6578706572696d656e74616cf564736f6c63430005100040", "sourceMap": "975:1217:70:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", "deployedSourceMap": "975:1217:70:-;;;;;;;;;;;;;;;;;;;;;;;;1185:1005;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1185:1005:70;;;;;;;;:::i;:::-;;;1376:12;;;;1352:49;;:5;;1390:10;1352:49;:23;:49;:::i;:::-;1438:9;;;;1412:173;;1438:23;;1451:10;1438:23;;:58;;;1478:4;:12;;;:18;;;1465:31;;:4;:9;;;:31;;;1438:58;1510:4;1412:173;1566:4;:9;;;1412:12;:173::i;:::-;1610:23;;:::i;:::-;1647:25;;:::i;:::-;1725:12;;;;1751:11;;;;1795;;1685:131;;:5;;1725:12;;1776:5;;1685:131;:26;:131;:::i;:::-;1596:220;;;;1827:93;1853:4;:12;;;1879:4;:11;;;1904:6;1827:5;:12;;:93;;;;;;:::i;:::-;1971:115;2004:27;2019:4;:11;;;2004:5;:14;;:27;;;;:::i;:::-;2045:4;:9;;;2068:8;1971:19;:115::i;:::-;2097:86;2128:5;2147:4;2165:8;2097:17;:86::i;:::-;1185:1005;;;;;:::o;20846:495:101:-;21023:20;21070:7;:13;;;21058:25;;:8;:25;;;:73;;;-1:-1:-1;21099:32:101;:5;21122:8;21099:32;:22;:32;:::i;:::-;21058:135;;;-1:-1:-1;21169:13:101;;21147:46;;:5;;21184:8;21147:46;:21;:46;:::i;:::-;21023:170;;21204:130;21230:15;21259:4;21204:130;21316:8;21204:12;:130::i;:::-;20846:495;;;;:::o;2962:561:99:-;3122:4;3117:400;;3236:24;3255:4;3236:18;:24::i;:::-;3286:5;3317:26;3336:6;3317:18;:26::i;:::-;3369:6;3401:19;3411:8;3401:9;:19::i;:::-;3194:280;;;;;;;;;3446:6;;3194:280;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;3194:280:99;;;;3142:364;;;;;;;;;;;;;;;;;22851:1432:101;23112:16;;:::i;:::-;23130;;:::i;:::-;23162:23;;:::i;:::-;23188:31;:5;23201:7;23210:8;23188:31;:12;:31;:::i;:::-;23162:57;;23234:6;:12;;;23250:1;23234:17;:61;;;;-1:-1:-1;23269:26:101;23255:6;:10;;;:40;;;;;;;;;23234:61;23230:124;;;23319:6;23327:15;:13;:15::i;:::-;23311:32;;;;;;;23230:124;23364:23;;:::i;:::-;23390:32;23408:6;23416:5;23390:17;:32::i;:::-;23364:58;;23432:23;;:::i;:::-;23465:25;;:::i;:::-;23528:27;23505:6;:19;;;:50;;;;;;;;;23501:740;;;-1:-1:-1;23582:97:101;;;;;;;;;23616:11;;23582:97;;;;23652:12;;;;23582:97;;;;23711:27;23697:6;:10;;;:41;;;;;;;;;23693:111;;;23769:20;:8;23782:6;23769:20;:12;:20;:::i;:::-;23758:31;;23693:111;23826:46;23844:20;:6;23855:8;23844:20;:10;:20;:::i;:::-;23866:5;23826:17;:46::i;:::-;23817:55;;23501:740;;;23937:105;;;;;;;;23971:6;:11;;;23937:105;;;;;;24007:20;:6;:12;;;:18;:20::i;:::-;23937:105;;;;23928:114;-1:-1:-1;24074:26:101;24060:6;:10;;;:40;;;;;;;;;24056:106;;;24129:18;:6;24140;24129:18;:10;:18;:::i;:::-;24120:27;;24056:106;24186:44;24223:6;24186:32;24204:6;24212:5;24186:17;:32::i;:::-;:36;:44;:36;:44;:::i;:::-;24175:55;;23501:740;24259:6;;-1:-1:-1;24267:8:101;-1:-1:-1;;;22851:1432:101;;;;;;;;;:::o;28148:2057::-;28334:23;;:::i;:::-;28360:31;:5;28373:7;28382:8;28360:31;:12;:31;:::i;:::-;28334:57;;28406:28;28419:6;28427;28406:12;:28::i;:::-;28402:96;;;28481:7;;;28402:96;28534:30;;:::i;:::-;28567:27;:5;28585:8;28567:27;:17;:27;:::i;:::-;28637:11;;28534:60;;-1:-1:-1;28633:209:101;;;28682:50;:42;28711:6;:12;;;28682:42;;28690:8;:15;;;28682:24;;:28;;:42;;;;:::i;:::-;:48;:50::i;:::-;28664:68;;:15;;;:68;28633:209;;;28810:12;;;;28789:15;;28781:50;;:42;;;:24;;;;:42;;:28;:42;:::i;:50::-;28763:68;;;;28633:209;28887:11;;28883:209;;;28932:50;:42;28961:6;:12;;;28932:42;;28940:8;:15;;;28932:24;;:28;;:42;;;;:::i;:50::-;28914:68;;:15;;;:68;28883:209;;;29060:12;;;;29039:15;;29031:50;;:42;;;:24;;;;:42;;:28;:42;:::i;:50::-;29013:68;;;;28883:209;29106:23;:6;:21;:23::i;:::-;:62;;;;;29133:35;:6;:33;:35::i;:::-;29102:464;;;29263:13;;29248:29;;;;;;:14;;;:29;;;;;;;;29278:14;;;;29248:45;;;;;;;:74;;;;;;;;;;;;;;;;;;;;;;;29102:464;;;29343:35;:6;:33;:35::i;:::-;:62;;;;;29382:23;:6;:21;:23::i;:::-;29339:227;;;29496:13;;29481:29;;;;;;:14;;;:29;;;;;;;;29511:14;;;;29481:45;;;;;;;:74;;;;;;;;;29554:1;29481:74;;;;;;;;;;;;29339:227;29580:15;:6;:13;:15::i;:::-;:37;;;;;29601:15;:6;:13;:15::i;:::-;29600:16;29580:37;29576:486;;;29738:13;;29723:29;;;;;;:14;;;:29;;;;;;;;29753:14;;;;29723:45;;;;;;;:91;;:74;;29805:8;29723:91;:81;:91;:::i;:::-;;29576:486;;;29837:15;:6;:13;:15::i;:::-;29836:16;29835:37;;;;;29857:15;:6;:13;:15::i;:::-;29831:231;;;29978:13;;29963:29;;;;;;:14;;;:29;;;;;;;;29993:14;;;;29963:45;;;;;;;:88;;:74;;30042:8;29963:88;:78;:88;:::i;:::-;;29831:231;30072:23;;;;:13;;;;:23;;;;;;;;:43;;:32;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30140:13;;30125:29;;;;:14;;;;:29;;;;;30155:14;;;;30125:45;;;;;;;:64;;;:54;:64;;;;:73;;;;;;;;;;;30072:43;30125:73;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28148:2057:101;;;;:::o;9848:200::-;9982:7;10012:23;;;:13;;;:23;;;;;:29;;;9848:200;;;;;:::o;1587:421:96:-;1724:146;1751:21;:8;:19;:21::i;:::-;1750:22;1786:4;1724:146;1846:8;:14;;;1724:12;:146::i;:::-;1881:120;1913:5;1932:4;1958;1977:8;:14;;;1881:18;:120::i;:::-;1587:421;;;:::o;4910:467:94:-;5109:12;;;;;:18;;5141:19;;;;5174:11;;;;5085:285;;;;;;;5199:138;;5233:5;;5174:11;5315:8;5199:16;:138::i;:::-;5351:4;:9;;;5085:285;;;;;;;;;;;;;;;;;;4910:467;;;:::o;19797:212:101:-;19966:31;;19939:4;19966:31;;;:21;;;;;:31;;;;;;20001:1;19966:36;;19797:212::o;20243:235::-;20434:22;;;;20407:4;20434:22;;;:15;;;:22;;;;;;;;:32;;;;;;;;;;20470:1;20434:37;20243:235;;;;;;:::o;6359:968:99:-;6463:12;6538:19;6577:5;6560:23;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;6560:23:99;;;;-1:-1:-1;49:4;6689:572:99;6710:6;;6689:572;;6962:9;;6864:3;;;;;6962:6;;6864:3;;6962:9;;;;;;;;;;;;:14;6958:293;;7017:1;7013:5;7143:22;;7150:6;-1:-1:-1;7223:13:99;;6958:293;6689:572;;;-1:-1:-1;7308:12:99;;;7318:1;7308:12;;;;;;;;;;;;7301:19;;;6359:968;;;;:::o;8252:958::-;8524:13;;;8534:2;8524:13;;;8346:12;8524:13;;;;;;8386:14;;;;8346:12;;8524:13;;;21:6:-1;;104:10;8524:13:99;87:34:-1;135:17;;-1:-1;8524:13:99;8502:35;;902:2;8601:23;;8589:6;8596:1;8589:9;;;;;;;;;;;:35;;;;;;;;;;;1010:3;8646:27;;8634:6;8641:1;8634:9;;;;;;;;;;;:39;;;;;;;;;;;8787:9;8782:398;8802:2;8798:1;:6;8782:398;;;8891:1;8887:5;;8984:23;1232:3;8989:17;;8984:4;:23::i;:::-;8963:6;8975:5;8970:2;:10;8963:18;;;;;;;;;;;:44;;;;;;;;;;;9030:1;9025;:6;;9021:10;;9122:23;1232:3;9127:1;:17;9122:4;:23::i;:::-;9101:6;9113:5;9108:2;:10;9101:18;;;;;;;;;;;:44;;;;;;;;;;-1:-1:-1;;9168:1:99;9163:6;;;;;8806:3;;8782:398;;12006:279:101;12