60c06040527f45804880de22913dafe09f4980848ece6ecbaf780000000000000000000000006080523480156200003557600080fd5b5060408051808201825260158082527f4449504f5f4469766964656e645f547261636b6572000000000000000000000060208084018281528551808701909652928552840152815191929183918391620000929160039162000134565b508051620000a890600490602084019062000134565b50506005805460ff191660121790555060009150620000c8905062000130565b600b80546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610e1060135569021e19e0c9bab240000060a052620001e0565b3390565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200016c5760008555620001b7565b82601f106200018757805160ff1916838001178555620001b7565b82800160010185558215620001b7579182015b82811115620001b75782518255916020019190600101906200019a565b50620001c5929150620001c9565b5090565b5b80821115620001c55760008155600101620001ca565b60805160601c60a0516123a962000211600039806111b552806112b05250806112045280611d2b52506123a96000f3fe60806040526004361061021e5760003560e01c806385a6b3ae11610123578063be10b614116100ab578063e98030c71161006f578063e98030c71461080a578063f09326d414610834578063f2fde38b1461085e578063fbcbc0f114610891578063ffb2c479146108c457610225565b8063be10b61414610757578063dd62ed3e1461076c578063e18467f3146107a7578063e30443bc146107bc578063e7841ec0146107f557610225565b8063a457c2d7116100f2578063a457c2d714610644578063a8b9d2401461067d578063a9059cbb146106b0578063aafd847a146106e9578063bc4c4b371461071c57610225565b806385a6b3ae146105b65780638da5cb5b146105cb57806391b89fba146105fc57806395d89b411461062f57610225565b8063313ce567116101a65780635183d6fd116101755780635183d6fd146104cf5780636a474002146105445780636f2789ec1461055957806370a082311461056e578063715018a6146105a157610225565b8063313ce5671461040557806331e79db01461043057806339509351146104635780634e7b827f1461049c57610225565b806318160ddd116101ed57806318160ddd14610332578063226cfa3d1461034757806323b872dd1461037a57806327ce0147146103bd5780633009a609146103f057610225565b806303c833021461022a57806306fdde0314610234578063095ea7b3146102be57806309bbedde1461030b57610225565b3661022557005b600080fd5b61023261090c565b005b34801561024057600080fd5b5061024961099d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028357818101518382015260200161026b565b50505050905090810190601f1680156102b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102ca57600080fd5b506102f7600480360360408110156102e157600080fd5b506001600160a01b038135169060200135610a33565b604080519115158252519081900360200190f35b34801561031757600080fd5b50610320610a51565b60408051918252519081900360200190f35b34801561033e57600080fd5b50610320610a57565b34801561035357600080fd5b506103206004803603602081101561036a57600080fd5b50356001600160a01b0316610a5d565b34801561038657600080fd5b506102f76004803603606081101561039d57600080fd5b506001600160a01b03813581169160208101359091169060400135610a6f565b3480156103c957600080fd5b50610320600480360360208110156103e057600080fd5b50356001600160a01b0316610af6565b3480156103fc57600080fd5b50610320610b55565b34801561041157600080fd5b5061041a610b5b565b6040805160ff9092168252519081900360200190f35b34801561043c57600080fd5b506102326004803603602081101561045357600080fd5b50356001600160a01b0316610b64565b34801561046f57600080fd5b506102f76004803603604081101561048657600080fd5b506001600160a01b038135169060200135610cca565b3480156104a857600080fd5b506102f7600480360360208110156104bf57600080fd5b50356001600160a01b0316610d18565b3480156104db57600080fd5b506104f9600480360360208110156104f257600080fd5b5035610d2d565b604080516001600160a01b0390991689526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b34801561055057600080fd5b50610232610e8c565b34801561056557600080fd5b50610320610ec3565b34801561057a57600080fd5b506103206004803603602081101561059157600080fd5b50356001600160a01b0316610ec9565b3480156105ad57600080fd5b50610232610ee4565b3480156105c257600080fd5b50610320610f90565b3480156105d757600080fd5b506105e0610f96565b604080516001600160a01b039092168252519081900360200190f35b34801561060857600080fd5b506103206004803603602081101561061f57600080fd5b50356001600160a01b0316610fa5565b34801561063b57600080fd5b50610249610fb0565b34801561065057600080fd5b506102f76004803603604081101561066757600080fd5b506001600160a01b038135169060200135611011565b34801561068957600080fd5b50610320600480360360208110156106a057600080fd5b50356001600160a01b0316611079565b3480156106bc57600080fd5b506102f7600480360360408110156106d357600080fd5b506001600160a01b0381351690602001356110a5565b3480156106f557600080fd5b506103206004803603602081101561070c57600080fd5b50356001600160a01b03166110b9565b34801561072857600080fd5b506102f76004803603604081101561073f57600080fd5b506001600160a01b03813516906020013515156110d4565b34801561076357600080fd5b506103206111b3565b34801561077857600080fd5b506103206004803603604081101561078f57600080fd5b506001600160a01b03813581169160200135166111d7565b3480156107b357600080fd5b506105e0611202565b3480156107c857600080fd5b50610232600480360360408110156107df57600080fd5b506001600160a01b038135169060200135611226565b34801561080157600080fd5b506103206113fa565b34801561081657600080fd5b506102326004803603602081101561082d57600080fd5b5035611400565b34801561084057600080fd5b506102326004803603602081101561085757600080fd5b5035611526565b34801561086a57600080fd5b506102326004803603602081101561088157600080fd5b50356001600160a01b03166115a6565b34801561089d57600080fd5b506104f9600480360360208110156108b457600080fd5b50356001600160a01b03166116a9565b3480156108d057600080fd5b506108ee600480360360208110156108e757600080fd5b503561181c565b60408051938452602084019290925282820152519081900360600190f35b6000610916610a57565b1161092057600080fd5b341561099b57610951610931610a57565b61093f34600160801b61191a565b8161094657fe5b60065491900461197a565b60065560408051348152905133917fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d78454116511919081900360200190a2600a54610997903461197a565b600a555b565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a295780601f106109fe57610100808354040283529160200191610a29565b820191906000526020600020905b815481529060010190602001808311610a0c57829003601f168201915b5050505050905090565b6000610a47610a406119d4565b84846119d8565b5060015b92915050565b600c5490565b60025490565b60126020526000908152604090205481565b6000610a7c848484611ac4565b610aec84610a886119d4565b610ae7856040518060600160405280602881526020016121f2602891396001600160a01b038a16600090815260016020526040812090610ac66119d4565b6001600160a01b031681526020810191909152604001600020549190611afb565b6119d8565b5060019392505050565b6001600160a01b038116600090815260086020526040812054600160801b90610b4590610b4090610b3a610b35610b2c88610ec9565b6006549061191a565b611b92565b90611ba2565b611bd5565b81610b4c57fe5b0490505b919050565b60105481565b60055460ff1690565b610b6c6119d4565b6001600160a01b0316610b7d610f96565b6001600160a01b031614610bc6576040805162461bcd60e51b81526020600482018190526024820152600080516020612256833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526011602052604090205460ff1615610bec57600080fd5b6001600160a01b0381166000908152601160205260408120805460ff19166001179055610c1a908290611be8565b6040805163131836e760e21b8152600c60048201526001600160a01b03831660248201529051731e28ff98d6d43cdcb5b0ac49261372d2f8d7a94091634c60db9c916044808301926000929190829003018186803b158015610c7b57600080fd5b505af4158015610c8f573d6000803e3d6000fd5b50506040516001600160a01b03841692507fa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b259150600090a250565b6000610a47610cd76119d4565b84610ae78560016000610ce86119d4565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061197a565b60116020526000908152604090205460ff1681565b600080600080600080600080600c731e28ff98d6d43cdcb5b0ac49261372d2f8d7a94063deb3d89690916040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610d8b57600080fd5b505af4158015610d9f573d6000803e3d6000fd5b505050506040513d6020811015610db557600080fd5b50518910610ddc575060009650600019955085945086935083925082915081905080610e81565b6000600c731e28ff98d6d43cdcb5b0ac49261372d2f8d7a94063d1aa9e7e90918c6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015610e3857600080fd5b505af4158015610e4c573d6000803e3d6000fd5b505050506040513d6020811015610e6257600080fd5b50519050610e6f816116a9565b98509850985098509850985098509850505b919395975091939597565b60405162461bcd60e51b81526004018080602001828103825260698152602001806122766069913960800191505060405180910390fd5b60135481565b6001600160a01b031660009081526020819052604090205490565b610eec6119d4565b6001600160a01b0316610efd610f96565b6001600160a01b031614610f46576040805162461bcd60e51b81526020600482018190526024820152600080516020612256833981519152604482015290519081900360640190fd5b600b546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600b80546001600160a01b0319169055565b600a5481565b600b546001600160a01b031690565b6000610a4b82611079565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a295780601f106109fe57610100808354040283529160200191610a29565b6000610a4761101e6119d4565b84610ae78560405180606001604052806025815260200161232460259139600160006110486119d4565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611afb565b6001600160a01b038116600090815260096020526040812054610a4b9061109f84610af6565b90611c41565b6000610a476110b26119d4565b8484611ac4565b6001600160a01b031660009081526009602052604090205490565b60006110de6119d4565b6001600160a01b03166110ef610f96565b6001600160a01b031614611138576040805162461bcd60e51b81526020600482018190526024820152600080516020612256833981519152604482015290519081900360640190fd5b600061114384611c9e565b905080156111a9576001600160a01b0384166000818152601260209081526040918290204290558151848152915186151593927fa2c38e2d2fb7e3e1912d937fd1ca11ed6d51864dee4cfa7a7bf02becd7acf09292908290030190a36001915050610a4b565b5060009392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b7f000000000000000000000000000000000000000000000000000000000000000081565b61122e6119d4565b6001600160a01b031661123f610f96565b6001600160a01b031614611288576040805162461bcd60e51b81526020600482018190526024820152600080516020612256833981519152604482015290519081900360640190fd5b6001600160a01b03821660009081526011602052604090205460ff16156112ae576113f6565b7f00000000000000000000000000000000000000000000000000000000000000008110611364576112df8282611be8565b60408051632f0ad01760e21b8152600c60048201526001600160a01b0384166024820152604481018390529051731e28ff98d6d43cdcb5b0ac49261372d2f8d7a9409163bc2b405c916064808301926000929190829003018186803b15801561134757600080fd5b505af415801561135b573d6000803e3d6000fd5b505050506113e9565b61136f826000611be8565b6040805163131836e760e21b8152600c60048201526001600160a01b03841660248201529051731e28ff98d6d43cdcb5b0ac49261372d2f8d7a94091634c60db9c916044808301926000929190829003018186803b1580156113d057600080fd5b505af41580156113e4573d6000803e3d6000fd5b505050505b6113f48260016110d4565b505b5050565b60105490565b6114086119d4565b6001600160a01b0316611419610f96565b6001600160a01b031614611462576040805162461bcd60e51b81526020600482018190526024820152600080516020612256833981519152604482015290519081900360640190fd5b610e1081101580156114775750620151808111155b6114b25760405162461bcd60e51b815260040180806020018281038252604a81526020018061211d604a913960600191505060405180910390fd5b6013548114156114f35760405162461bcd60e51b815260040180806020018281038252603c81526020018061221a603c913960400191505060405180910390fd5b60135460405182907f474ea64804364a1e29a4487ddb63c3342a2dd826ccd8acf48825e680a0e6f20f90600090a3601355565b6000611530610a57565b1161153a57600080fd5b80156115a35761155961154b610a57565b61093f83600160801b61191a565b60065560408051828152905133917fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d78454116511919081900360200190a2600a5461159f908261197a565b600a555b50565b6115ae6119d4565b6001600160a01b03166115bf610f96565b6001600160a01b031614611608576040805162461bcd60e51b81526020600482018190526024820152600080516020612256833981519152604482015290519081900360640190fd5b6001600160a01b03811661164d5760405162461bcd60e51b81526004018080602001828103825260268152602001806121896026913960400191505060405180910390fd5b600b546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600080600080600080600080889750600c731e28ff98d6d43cdcb5b0ac49261372d2f8d7a9406317e142d190918a6040518363ffffffff1660e01b815260040180838152602001826001600160a01b031681526020019250505060206040518083038186803b15801561171b57600080fd5b505af415801561172f573d6000803e3d6000fd5b505050506040513d602081101561174557600080fd5b505196506000199550600087126117a9576010548711156117755760105461176e908890611e2d565b95506117a9565b601054600c546000911061178a576000611799565b601054600c5461179991611c41565b90506117a58882611ba2565b9650505b6117b288611079565b94506117bd88610af6565b6001600160a01b0389166000908152601260205260409020549094509250826117e75760006117f5565b6013546117f590849061197a565b915042821161180557600061180f565b61180f8242611c41565b9050919395975091939597565b600c54600090819081908061183c57505060105460009250829150611913565b6010546000805a90506000805b898410801561185757508582105b1561190257600c54600190950194851061187057600094505b6000600c600001868154811061188257fe5b60009182526020808320909101546001600160a01b031680835260129091526040909120549091506118b390611e61565b156118cf576118c38160016110d4565b156118cf576001909101905b60019092019160005a9050808511156118f9576118f66118ef8683611c41565b879061197a565b95505b93506118499050565b601085905590975095509193505050505b9193909250565b60008261192957506000610a4b565b8282028284828161193657fe5b04146119735760405162461bcd60e51b81526004018080602001828103825260218152602001806121d16021913960400191505060405180910390fd5b9392505050565b600082820183811015611973576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3390565b6001600160a01b038316611a1d5760405162461bcd60e51b81526004018080602001828103825260248152602001806123006024913960400191505060405180910390fd5b6001600160a01b038216611a625760405162461bcd60e51b81526004018080602001828103825260228152602001806121af6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60405162461bcd60e51b815260040180806020018281038252602b815260200180612349602b913960400191505060405180910390fd5b60008184841115611b8a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b4f578181015183820152602001611b37565b50505050905090810190601f168015611b7c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008181811215610a4b57600080fd5b6000828201818312801590611bb75750838112155b80611bcc5750600083128015611bcc57508381125b61197357600080fd5b600080821215611be457600080fd5b5090565b6000611bf383610ec9565b905080821115611c1b576000611c098383611c41565b9050611c158482611e88565b506113f4565b808210156113f4576000611c2f8284611c41565b9050611c3b8482611eec565b50505050565b600082821115611c98576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080611caa83611079565b90508015611e24576001600160a01b038316600090815260096020526040902054611cd5908261197a565b6001600160a01b038416600081815260096020908152604091829020939093558051848152905191927fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d92918290030190a260007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb85846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611da057600080fd5b505af1158015611db4573d6000803e3d6000fd5b505050506040513d6020811015611dca57600080fd5b5051905080611e1c576001600160a01b038416600090815260096020526040902054611df69083611c41565b6001600160a01b0385166000908152600960205260408120919091559250610b50915050565b509050610b50565b50600092915050565b6000808212158015611e4157508282840313155b80611e585750600082128015611e58575082828403135b611c9857600080fd5b600042821115611e7357506000610b50565b601354611e804284611c41565b101592915050565b611e928282611f30565b611ecc611ead610b358360065461191a90919063ffffffff16565b6001600160a01b03841660009081526008602052604090205490611e2d565b6001600160a01b0390921660009081526008602052604090209190915550565b611ef68282612020565b611ecc611f11610b358360065461191a90919063ffffffff16565b6001600160a01b03841660009081526008602052604090205490611ba2565b6001600160a01b038216611f8b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611f97600083836113f4565b600254611fa4908261197a565b6002556001600160a01b038216600090815260208190526040902054611fca908261197a565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b0382166120655760405162461bcd60e51b81526004018080602001828103825260218152602001806122df6021913960400191505060405180910390fd5b612071826000836113f4565b6120ae81604051806060016040528060228152602001612167602291396001600160a01b0385166000908152602081905260409020549190611afb565b6001600160a01b0383166000908152602081905260409020556002546120d49082611c41565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505056fe4449504f5f4469766964656e645f547261636b65723a20636c61696d57616974206d757374206265207570646174656420746f206265747765656e203120616e6420323420686f75727345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654449504f5f4469766964656e645f547261636b65723a2043616e6e6f742075706461746520636c61696d5761697420746f2073616d652076616c75654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724449504f5f4469766964656e645f547261636b65723a2077697468647261774469766964656e642064697361626c65642e20557365207468652027636c61696d272066756e6374696f6e206f6e20746865206d61696e205a6575735553445420636f6e74726163742e45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4449504f5f4469766964656e645f547261636b65723a204e6f207472616e736665727320616c6c6f776564a2646970667358221220c4f1afad6290f60625f98040c46b17684495ecdca5555113cf1a7fa2f8d4f38764736f6c63430007060033