//
0x6080604052600e805460ff1916905534801561001a57600080fd5b50600480546001600160a01b031916339081179091556040516000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36145548061006a6000396000f3fe608060405234801561001057600080fd5b50600436106102cc5760003560e01c80637f7dde4a1161017d578063b9186f43116100d9578063d71f779111610092578063d71f7791146106b5578063d9f3a88114610397578063dd92690b146106bd578063e091d2fc146106c5578063f2fde38b1461073f578063f92d343314610765578063fe9d03231461076d576102cc565b8063b9186f4314610641578063c17bae2a14610649578063c4dfcaea14610669578063cab8b4fe14610671578063cda775f914610679578063d56d6bbe14610681576102cc565b80639284af2c116101365780639284af2c1461054e578063a20baee614610397578063a3f4df7e14610574578063aa53099d146105f1578063ae91875414610611578063b4fa3b9814610619578063b5cc996c14610639576102cc565b80637f7dde4a1461049e578063887105d3146104a657806389fdcb39146104ae5780638da5cb5b146104ea5780638f09162b146104f25780638f32d59b14610532576102cc565b8063434900561161022c5780636364a1b9116101e55780636364a1b91461038757806364c6711f146103975780636f0b0c1c1461047e57806372fe25aa14610397578063741bef1a14610486578063794e57241461048e578063795d26c314610496576102cc565b806343490056146103c75780634870dd9a146103cf5780634ff81443146103d75780635530273c146103f45780635733d58f146104285780635da8b1c314610430576102cc565b80631bf43555116102895780631bf435551461038f578063247aed96146103975780632e86bbd81461039f57806331b8c946146103a75780633cc74225146103af5780633d83908a146103b7578063434124e3146103bf576102cc565b806304491fa7146102d15780630b622ab2146103075780630e704d501461032b5780631184e5f814610333578063155d47651461036d57806318baf9a414610387575b600080fd5b610305600480360360608110156102e757600080fd5b508035906001600160a01b0360208201358116916040013516610775565b005b61030f61078d565b604080516001600160a01b039092168252519081900360200190f35b61030561079c565b6103056004803603608081101561034957600080fd5b508035906020810135906001600160a01b0360408201358116916060013516610b97565b610375610baf565b60408051918252519081900360200190f35b610375610bba565b610375610bc8565b610375610bd5565b610375610be1565b61030f610bee565b61030f610bfd565b61030f610c0c565b610375610c1b565b61030f610c20565b610375610c2f565b610375600480360360208110156103ed57600080fd5b5035610c34565b6103056004803603606081101561040a57600080fd5b508035906001600160a01b0360208201358116916040013516610c45565b610375610c58565b610305600480360360e081101561044657600080fd5b5080359060208101359060408101359060608101359060808101351515906001600160a01b0360a082013581169160c0013516610c64565b610305610d3e565b61030f610d9e565b610375610dad565b610375610db9565b61030f610eba565b610375610ec9565b610305600480360360808110156104c457600080fd5b506001600160a01b03813581169160208101359160408201358116916060013516610f85565b61030f611061565b610305600480360360a081101561050857600080fd5b508035906020810135906040810135906001600160a01b0360608201358116916080013516611070565b61053a61184b565b604080519115158252519081900360200190f35b6103056004803603602081101561056457600080fd5b50356001600160a01b031661185c565b61057c6119d6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105b657818101518382015260200161059e565b50505050905090810190601f1680156105e35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103056004803603602081101561060757600080fd5b503560ff16611a04565b61030f611a80565b6103056004803603602081101561062f57600080fd5b503560ff16611a8f565b61030f611ae8565b610375611af7565b6103756004803603602081101561065f57600080fd5b503560ff16611afc565b610375611b0e565b610375611b84565b61030f611bc9565b6103056004803603606081101561069757600080fd5b508035906001600160a01b0360208201358116916040013516611bd8565b610375611cac565b61030f611cb8565b61030560048036036101608110156106dc57600080fd5b506001600160a01b038135811691602081013582169160408201358116916060810135821691608082013581169160a081013582169160c082013581169160e0810135821691610100820135811691610120810135909116906101400135611cc7565b6103056004803603602081101561075557600080fd5b50356001600160a01b031661214a565b610375612237565b61030f612242565b6107883360008086600087876000612251565b505050565b6006546001600160a01b031681565b6005546000546009546001600160a01b039283169291821691166107c083336129b5565b60035460408051630fdb11cf60e01b815290516000926001600160a01b031691630fdb11cf91600480830192602092919082900301818787803b15801561080657600080fd5b505af115801561081a573d6000803e3d6000fd5b505050506040513d602081101561083057600080fd5b5051905061083d81612a7a565b60408051630b07655760e01b815233600482015290516001600160a01b03861691630b07655791602480830192600092919082900301818387803b15801561088457600080fd5b505af1158015610898573d6000803e3d6000fd5b5050604080516309019aaf60e31b81523360048201529051600093506001600160a01b038816925063480cd57891602480820192602092909190829003018186803b1580156108e657600080fd5b505afa1580156108fa573d6000803e3d6000fd5b505050506040513d602081101561091057600080fd5b50516040805163d66a255360e01b815233600482015290519192506000916001600160a01b0388169163d66a2553916024808301926020929190829003018186803b15801561095e57600080fd5b505afa158015610972573d6000803e3d6000fd5b505050506040513d602081101561098857600080fd5b505190506109af84336109aa846802b5e3af16b188000063ffffffff612ac516565b612b0e565b60006109c083600084600088612bce565b90506109cb81612c5c565b60408051631fc5750960e31b815233600482015290516001600160a01b0389169163fe2ba84891602480830192600092919082900301818387803b158015610a1257600080fd5b505af1158015610a26573d6000803e3d6000fd5b5050604080516365e89c5760e11b815233600482015290516001600160a01b038b16935063cbd138ae9250602480830192600092919082900301818387803b158015610a7157600080fd5b505af1158015610a85573d6000803e3d6000fd5b50505050336001600160a01b031660008051602061428e8339815191526000806000600160405180858152602001848152602001838152602001826002811115610acb57fe5b60ff16815260200194505050505060405180910390a2610b05868633610b00866802b5e3af16b188000063ffffffff612ac516565b612ca3565b600754610b2890879087906001600160a01b03166802b5e3af16b1880000612ca3565b604080516364a197f360e01b81523360048201526024810185905290516001600160a01b038816916364a197f391604480830192600092919082900301818387803b158015610b7657600080fd5b505af1158015610b8a573d6000803e3d6000fd5b5050505050505050505050565b610ba93360008086600187878b612251565b50505050565b662386f26fc1000081565b69021e19e0c9bab240000081565b6818650127cc3dc8000081565b670de0b6b3a764000081565b6802b5e3af16b188000081565b600a546001600160a01b031681565b6002546001600160a01b031681565b6005546001600160a01b031681565b606581565b6009546001600160a01b031681565b60c881565b6000610c3f82612d7f565b92915050565b6107883360008560008087876000612251565b6714d1120d7b16000081565b600a54604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610cbe57600080fd5b505af1158015610cd2573d6000803e3d6000fd5b505050506040513d6020811015610ce857600080fd5b5051610d255760405162461bcd60e51b8152600401808060200182810382526036815260200180613f606036913960400191505060405180910390fd5b610d35338787878787878e612251565b50505050505050565b6008546040805163b32beb5b60e01b815233600482015290516001600160a01b039092169163b32beb5b9160248082019260009290919082900301818387803b158015610d8a57600080fd5b505af1158015610ba9573d6000803e3d6000fd5b6003546001600160a01b031681565b670f43fc2c04ee000081565b6000805460408051632f5a97e560e11b8152905183926001600160a01b031691635eb52fca916004808301926020929190829003018186803b158015610dfe57600080fd5b505afa158015610e12573d6000803e3d6000fd5b505050506040513d6020811015610e2857600080fd5b505160025460408051632f5a97e560e11b815290519293506000926001600160a01b0390921691635eb52fca91600480820192602092909190829003018186803b158015610e7557600080fd5b505afa158015610e89573d6000803e3d6000fd5b505050506040513d6020811015610e9f57600080fd5b50519050610eb3828263ffffffff612d9a16565b9250505090565b6000546001600160a01b031681565b6000805460408051630a7b61df60e11b8152905183926001600160a01b0316916314f6c3be916004808301926020929190829003018186803b158015610f0e57600080fd5b505afa158015610f22573d6000803e3d6000fd5b505050506040513d6020811015610f3857600080fd5b505160025460408051630a7b61df60e11b815290519293506000926001600160a01b03909216916314f6c3be91600480820192602092909190829003018186803b158015610e7557600080fd5b610f8d612df4565b600a54604080516323b872dd60e01b81523360048201523060248201526044810186905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610fe757600080fd5b505af1158015610ffb573d6000803e3d6000fd5b505050506040513d602081101561101157600080fd5b505161104e5760405162461bcd60e51b815260040180806020018281038252603d815260200180614040603d913960400191505060405180910390fd5b610ba98484600080600087876000612251565b6004546001600160a01b031690565b600a54604080516323b872dd60e01b81523360048201523060248201526044810186905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b1580156110ca57600080fd5b505af11580156110de573d6000803e3d6000fd5b505050506040513d60208110156110f457600080fd5b50516111315760405162461bcd60e51b81526004018080602001828103825260348152602001806142ec6034913960400191505060405180910390fd5b611139613e82565b50604080516060810182526005546001600160a01b039081168252600054811660208301526009541691810191909152611171613ea2565b600360009054906101000a90046001600160a01b03166001600160a01b0316630fdb11cf6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c157600080fd5b505af11580156111d5573d6000803e3d6000fd5b505050506040513d60208110156111eb57600080fd5b5051808252600d546000916111ff91612e3f565b905061120b8882612e5e565b82516112179033612f0e565b6040808301889052835181516394cd4ba760e01b815291516001600160a01b03909116916394cd4ba7916004808301926020929190829003018186803b15801561126057600080fd5b505afa158015611274573d6000803e3d6000fd5b505050506040513d602081101561128a57600080fd5b5051610100830152806112cc576112ab83600001518460400151898b612fea565b6020830181905260408301516112c69163ffffffff612d9a16565b60408301525b6112d98260400151613137565b6112f482604001516112e9610db9565b84610100015161317f565b6113018260400151612d7f565b60608301819052611359576040805162461bcd60e51b815260206004820152601e60248201527f44656274206d757374206265206c6172676572207468616e207a65726f2e0000604482015290519081900360640190fd5b61136f8683606001518460000151600d546131cd565b60808301526060820151600d54611387918891613219565b60a083015280156113a45761139f8260800151613254565b6113d7565b6113b1826080015161329b565b60006113ca876001856060015160018760000151612bce565b90506113d581612c5c565b505b825160408051635d6b480f60e01b81523360048201526001602482015290516001600160a01b0390921691635d6b480f9160448082019260009290919082900301818387803b15801561142957600080fd5b505af115801561143d573d6000803e3d6000fd5b50508451604080516372423c1760e01b8152336004820152602481018b905290516001600160a01b0390921693506372423c1792506044808201926020929091908290030181600087803b15801561149457600080fd5b505af11580156114a8573d6000803e3d6000fd5b505050506040513d60208110156114be57600080fd5b50508251606083015160408051639976cf4560e01b81523360048201526024810192909252516001600160a01b0390921691639976cf45916044808201926020929091908290030181600087803b15801561151857600080fd5b505af115801561152c573d6000803e3d6000fd5b505050506040513d602081101561154257600080fd5b50508251604080516382fe3eb960e01b815233600482015290516001600160a01b03909216916382fe3eb99160248082019260009290919082900301818387803b15801561158f57600080fd5b505af11580156115a3573d6000803e3d6000fd5b5050845160408051630c7940bd60e11b815233600482015290516001600160a01b0390921693506318f2817a92506024808201926020929091908290030181600087803b1580156115f357600080fd5b505af1158015611607573d6000803e3d6000fd5b505050506040513d602081101561161d57600080fd5b505160c0830152600c5460a0830151604080516346f7cf8760e01b815233600482015260248101929092526001600160a01b038881166044840152878116606484015290519216916346f7cf879160848082019260009290919082900301818387803b15801561168c57600080fd5b505af11580156116a0573d6000803e3d6000fd5b50508451604080516315d549f160e01b815233600482015290516001600160a01b0390921693506315d549f192506024808201926020929091908290030181600087803b1580156116f057600080fd5b505af1158015611704573d6000803e3d6000fd5b505050506040513d602081101561171a57600080fd5b505160e08301819052604080519182525133917f59cfd0cd754bc5748b6770e94a4ffa5f678d885cb899dcfadc5734edb97c67ab919081900360200190a26117668360200151876132e2565b61177f83602001518460400151338a866040015161348f565b602083015160408401516007546117ab9291906001600160a01b03166802b5e3af16b18800008061348f565b336001600160a01b031660008051602061428e8339815191528360600151888560c001516000604051808581526020018481526020018381526020018260028111156117f357fe5b60ff16815260200194505050505060405180910390a2602080830151604080519182525133927fa55c5f48fd29482ad55f4b59bf070cd1ac1a7132a31f7a136ebe8877ae37e1ff928290030190a25050505050505050565b6004546001600160a01b0316331490565b61186461184b565b6118a3576040805162461bcd60e51b81526020600482018190526024820152600080516020614240833981519152604482015290519081900360640190fd5b60016000819052600f6020527f169f97de0d9a84d840042b17d3c6b9638b3d6fd9024c9eb0c7a306a17b49f88f548114801590611909575042600f60008360018111156118ec57fe5b60018111156118f757fe5b81526020019081526020016000205411155b611953576040805162461bcd60e51b8152602060048201526016602482015275119d5b98dd1a5bdb881a5cc81d1a5b595b1bd8dad95960521b604482015290519081900360640190fd5b600b80546001600160a01b0384166001600160a01b0319909116811790915560408051918252517f464b3fecfa0a372d7cb418a572e9fedd7e2a099c7a92f6ed351f47e5aa1802739181900360200190a1505060016000819052600f6020527f169f97de0d9a84d840042b17d3c6b9638b3d6fd9024c9eb0c7a306a17b49f88f55565b60405180604001604052806012815260200171426f72726f7765724f7065726174696f6e7360701b81525081565b611a0c61184b565b611a4b576040805162461bcd60e51b81526020600482018190526024820152600080516020614240833981519152604482015290519081900360640190fd5b6202a3004201600f6000836001811115611a6157fe5b6001811115611a6c57fe5b815260208101919091526040016000205550565b600c546001600160a01b031681565b611a9761184b565b611ad6576040805162461bcd60e51b81526020600482018190526024820152600080516020614240833981519152604482015290519081900360640190fd5b6001600f6000836001811115611a6157fe5b600b546001600160a01b031681565b606481565b600f6020526000908152604090205481565b60015460408051630a7b61df60e11b815290516000926001600160a01b0316916314f6c3be916004808301926020929190829003018186803b158015611b5357600080fd5b505afa158015611b67573d6000803e3d6000fd5b505050506040513d6020811015611b7d57600080fd5b5051905090565b60015460408051632f5a97e560e11b815290516000926001600160a01b031691635eb52fca916004808301926020929190829003018186803b158015611b5357600080fd5b6008546001600160a01b031681565b600a54604080516323b872dd60e01b81523360048201523060248201526044810186905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015611c3257600080fd5b505af1158015611c46573d6000803e3d6000fd5b505050506040513d6020811015611c5c57600080fd5b5051611c995760405162461bcd60e51b815260040180806020018281038252603281526020018061407d6032913960400191505060405180910390fd5b6107883384600080600087876000612251565b670e043da61725000081565b6001546001600160a01b031681565b611ccf61184b565b611d0e576040805162461bcd60e51b81526020600482018190526024820152600080516020614240833981519152604482015290519081900360640190fd5b6000808052600f6020527ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec37554600114801590611d73575042600f6000836001811115611d5657fe5b6001811115611d6157fe5b81526020019081526020016000205411155b611dbd576040805162461bcd60e51b8152602060048201526016602482015275119d5b98dd1a5bdb881a5cc81d1a5b595b1bd8dad95960521b604482015290519081900360640190fd5b600e5460ff1615611dff5760405162461bcd60e51b815260040180806020018281038252602e81526020018061435d602e913960400191505060405180910390fd5b600e805460ff19166001179055611e158c61356c565b611e1e8b61356c565b611e278a61356c565b611e308961356c565b611e398861356c565b611e428761356c565b611e4b8661356c565b611e548561356c565b611e5d8461356c565b611e668361356c565b600580546001600160a01b03199081166001600160a01b038f81169182179093556000805483168f85161790556002805483168e85161790556006805483168d85161790556007805483168c85161790556008805483168b85161790556003805483168a8516179055600c80548316898516179055600980548316888516179055600a8054909216928616929092179055600d83905560408051918252517f143219c9e69b09e07e095fcc889b43d8f46ca892bba65f08dc3a0050869a5678916020908290030190a1604080516001600160a01b038d16815290517f78f058b189175430c48dc02699e3a0031ea4ff781536dc2fab847de4babdd8829181900360200190a1604080516001600160a01b038c16815290517f5ee0cae2f063ed938bb55046f6a932fb6ae792bf43624806bb90abe68a50be9b9181900360200190a1604080516001600160a01b038b16815290517f82966d27eea39b038ee0fa30cd16532bb24f6e65d31cb58fb227aa5766cdcc7f9181900360200190a1604080516001600160a01b038a16815290517fcfb07d791fcafc032b35837b50eb84b74df518cf4cc287e8084f47630fa70fa09181900360200190a1604080516001600160a01b038916815290517fe67f36a6e961157d6eff83b91f3af5a62131ceb6f04954ef74f51c1c05e7f88d9181900360200190a1604080516001600160a01b038816815290517f8c537274438aa850a330284665d81a85dd38267d09e4050d416bfc94142db2649181900360200190a1604080516001600160a01b038716815290517f65f4cf077bc01e4742eb5ad98326f6e95b63548ea24b17f8d5e823111fe788009181900360200190a1604080516001600160a01b038516815290517f8adeca1d26ce63eb9fb5b9362155b69fbb631209bfc0dddb3d75d96735eae23b9181900360200190a15050600080525050600f602052505060017ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec37555505050505050565b61215261184b565b612191576040805162461bcd60e51b81526020600482018190526024820152600080516020614240833981519152604482015290519081900360640190fd5b6001600160a01b0381166121db576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b6004546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b660e35fa931a000081565b6007546001600160a01b031681565b612259613e82565b50604080516060810182526005546001600160a01b039081168252600054811660208301526009541691810191909152612291613eee565b600360009054906101000a90046001600160a01b03166001600160a01b0316630fdb11cf6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156122e157600080fd5b505af11580156122f5573d6000803e3d6000fd5b505050506040513d602081101561230b57600080fd5b5051808252600d5460009161231f91612e3f565b9050861561233a576123318482612e5e565b61233a8861361b565b6123448a8a61365a565b61234f8a8a8a6136a0565b825161235b908c6129b5565b336001600160a01b038c16148061239157506006546001600160a01b031633148015612387575060008a115b8015612391575087155b6123e2576040805162461bcd60e51b815260206004820152601a60248201527f41646a7573742074726f766520636865636b206661696c65642e000000000000604482015290519081900360640190fd5b82600001516001600160a01b0316630b0765578c6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561243e57600080fd5b505af1158015612452573d6000803e3d6000fd5b505050506124608a8a6136f2565b151560608401526020808401919091528351604080516394cd4ba760e01b815290516001600160a01b03909216926394cd4ba792600480840193829003018186803b1580156124ae57600080fd5b505afa1580156124c2573d6000803e3d6000fd5b505050506040513d60208110156124d857600080fd5b50516101a0830152604082018890528680156124f2575080155b156125455761250b836000015184604001518a87612fea565b610120830181905260408301516125279163ffffffff612d9a16565b604083018190526125459061253a610db9565b846101a0015161317f565b82600001516001600160a01b031663d66a25538c6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561259f57600080fd5b505afa1580156125b3573d6000803e3d6000fd5b505050506040513d60208110156125c957600080fd5b505160808301528251604080516309019aaf60e31b81526001600160a01b038e811660048301529151919092169163480cd578916024808301926020929190829003018186803b15801561261c57600080fd5b505afa158015612630573d6000803e3d6000fd5b505050506040513d602081101561264657600080fd5b505160a0830181905260808301518351600d54612665939291906131cd565b8260c00181815250506126958260a0015183608001518460200151856060015186604001518c8860000151613711565b60e083015260a08201518911156126dd5760405162461bcd60e51b815260040180806020018281038252603c81526020018061419a603c913960400191505060405180910390fd5b6126e9818a8985613747565b861580156126f75750600088115b1561274a57612725612720836040015161271485608001516137bb565b9063ffffffff612ac516565b613137565b612737826080015183604001516137d6565b61274a83604001518c8460400151612b0e565b61276883600001518c8460200151856060015186604001518c61382d565b610140840152610160830152825160408051630c7940bd60e11b81526001600160a01b038e81166004830152915191909216916318f2817a9160248083019260209291908290030181600087803b1580156127c257600080fd5b505af11580156127d6573d6000803e3d6000fd5b505050506040513d60208110156127ec57600080fd5b505161018083015260a08201516080830151602084015160608501516040860151600094612820949093909290918d613a8d565b9050600c60009054906101000a90046001600160a01b03166001600160a01b0316632be212608d838a8a6040518563ffffffff1660e01b815260040180856001600160a01b03166001600160a01b03168152602001848152602001836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b03168152602001945050505050600060405180830381600087803b1580156128cb57600080fd5b505af11580156128df573d6000803e3d6000fd5b505050508b6001600160a01b031660008051602061428e83398151915284610140015185610160015186610180015160026040518085815260200184815260200183815260200182600281111561293257fe5b60ff16815260200194505050505060405180910390a2610120830151604080519182525133917fa55c5f48fd29482ad55f4b59bf070cd1ac1a7132a31f7a136ebe8877ae37e1ff919081900360200190a26129a78460200151856040015133866020015187606001518e8e8a60400151613ac1565b505050505050505050505050565b6000826001600160a01b03166321e37801836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015612a0d57600080fd5b505afa158015612a21573d6000803e3d6000fd5b505050506040513d6020811015612a3757600080fd5b50519050600181146107885760405162461bcd60e51b815260040180806020018281038252602e815260200180614260602e913960400191505060405180910390fd5b612a8681600d54612e3f565b15612ac25760405162461bcd60e51b81526004018080602001828103825260398152602001806140076039913960400191505060405180910390fd5b50565b6000612b0783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b6e565b9392505050565b80836001600160a01b03166370a08231846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015612b6557600080fd5b505afa158015612b79573d6000803e3d6000fd5b505050506040513d6020811015612b8f57600080fd5b505110156107885760405162461bcd60e51b815260040180806020018281038252603d815260200180614320603d913960400191505060405180910390fd5b600080612bd9610ec9565b90506000612be5610db9565b905086612c0157612bfc828963ffffffff612ac516565b612c11565b612c11828963ffffffff612d9a16565b915084612c2d57612c28818763ffffffff612ac516565b612c3d565b612c3d818763ffffffff612d9a16565b90506000612c4f838387600d546131cd565b9998505050505050505050565b6714d1120d7b160000811015612ac25760405162461bcd60e51b81526004018080602001828103825260498152602001806141f76049913960600191505060405180910390fd5b836001600160a01b03166338d995a8826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612ce957600080fd5b505af1158015612cfd573d6000803e3d6000fd5b50505050826001600160a01b0316639dc29fac83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015612d6157600080fd5b505af1158015612d75573d6000803e3d6000fd5b5050505050505050565b6000610c3f826802b5e3af16b188000063ffffffff612d9a16565b600082820183811015612b07576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6006546001600160a01b03163314612e3d5760405162461bcd60e51b81526004018080602001828103825260298152602001806144516029913960400191505060405180910390fd5b565b600080612e4c8484613c05565b6714d1120d7b16000011949350505050565b8015612eb057670de0b6b3a7640000821115612eab5760405162461bcd60e51b81526004018080602001828103825260328152602001806141226032913960400191505060405180910390fd5b612f0a565b660e35fa931a00008210801590612ecf5750670de0b6b3a76400008211155b612f0a5760405162461bcd60e51b815260040180806020018281038252603081526020018061447a6030913960400191505060405180910390fd5b5050565b6000826001600160a01b03166321e37801836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015612f6657600080fd5b505afa158015612f7a573d6000803e3d6000fd5b505050506040513d6020811015612f9057600080fd5b505190506001811415610788576040805162461bcd60e51b815260206004820152601c60248201527f426f72726f7765724f70733a2054726f76652069732061637469766500000000604482015290519081900360640190fd5b6000846001600160a01b0316635dba4c4a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561302757600080fd5b505af115801561303b573d6000803e3d6000fd5b505050506000856001600160a01b031663631203b0856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561308557600080fd5b505afa158015613099573d6000803e3d6000fd5b505050506040513d60208110156130af57600080fd5b505190506130be818585613c36565b600b54604080516340c10f1960e01b81526001600160a01b039283166004820152602481018490529051918716916340c10f199160448082019260009290919082900301818387803b15801561311357600080fd5b505af1158015613127573d6000803e3d6000fd5b509293505050505b949350505050565b6818650127cc3dc80000811015612ac25760405162461bcd60e51b815260040180806020018281038252603a8152602001806143d4603a913960400191505060405180910390fd5b80613190848463ffffffff612d9a16565b11156107885760405162461bcd60e51b815260040180806020018281038252603c8152602001806140af603c913960400191505060405180910390fd5b60008315613210576000613207856131fb866131ef8a8863ffffffff613cab16565b9063ffffffff613cab16565b9063ffffffff613d0416565b915061312f9050565b5060001961312f565b6000821561324957613242836131fb68056bc75e2d631000006131ef888763ffffffff613cab16565b9050612b07565b506000199392505050565b6714d1120d7b160000811015612ac25760405162461bcd60e51b81526004018080602001828103825260378152602001806140eb6037913960400191505060405180910390fd5b670f43fc2c04ee0000811015612ac25760405162461bcd60e51b815260040180806020018281038252604981526020018061438b6049913960600191505060405180910390fd5b600a5460408051636eb1769f60e11b81523060048201526001600160a01b0385811660248301529151600093929092169163dd62ed3e91604480820192602092909190829003018186803b15801561333957600080fd5b505afa15801561334d573d6000803e3d6000fd5b505050506040513d602081101561336357600080fd5b505190508181101561343557600a546040805163095ea7b360e01b81526001600160a01b03868116600483015260001960248301529151600093929092169163095ea7b39160448082019260209290919082900301818787803b1580156133c957600080fd5b505af11580156133dd573d6000803e3d6000fd5b505050506040513d60208110156133f357600080fd5b50519050806134335760405162461bcd60e51b8152600401808060200182810382526041815260200180613f966041913960600191505060405180910390fd5b505b826001600160a01b031663c39bb11d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561347b57600080fd5b505af1158015610d35573d6000803e3d6000fd5b846001600160a01b031663cfb9329a826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156134d557600080fd5b505af11580156134e9573d6000803e3d6000fd5b50505050836001600160a01b03166340c10f1984846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561354d57600080fd5b505af1158015613561573d6000803e3d6000fd5b505050505050505050565b6001600160a01b0381166135c7576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e742063616e6e6f74206265207a65726f20616464726573730000604482015290519081900360640190fd5b803b80612f0a576040805162461bcd60e51b815260206004820181905260248201527f4163636f756e7420636f64652073697a652063616e6e6f74206265207a65726f604482015290519081900360640190fd5b60008111612ac25760405162461bcd60e51b81526004018080602001828103825260378152602001806144aa6037913960400191505060405180910390fd5b811580613665575080155b612f0a5760405162461bcd60e51b8152600401808060200182810382526030815260200180613fd76030913960400191505060405180910390fd5b821515806136ad57508115155b806136b757508015155b6107885760405162461bcd60e51b81526004018080602001828103825260468152602001806141546046913960600191505060405180910390fd5b60008083156137065750829050600161370a565b8291505b9250929050565b60008060006137248a8a8a8a8a8a613d46565b915091506000613738838387600d546131cd565b9b9a5050505050505050505050565b83156137805761375683613da1565b811561377b576137698160e00151613254565b61377b8160e001518260c00151613dde565b610ba9565b61378d8160e0015161329b565b6137aa816020015182606001518360400151858560000151612bce565b6101008201819052610ba990612c5c565b6000610c3f826802b5e3af16b188000063ffffffff612ac516565b6137ef826802b5e3af16b188000063ffffffff612ac516565b811115612f0a5760405162461bcd60e51b815260040180806020018281038252604381526020018061440e6043913960600191505060405180910390fd5b6000806000856138c857886001600160a01b031663d3d6f84389896040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561389757600080fd5b505af11580156138ab573d6000803e3d6000fd5b505050506040513d60208110156138c157600080fd5b5051613955565b886001600160a01b03166372423c1789896040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561392857600080fd5b505af115801561393c573d6000803e3d6000fd5b505050506040513d602081101561395257600080fd5b50515b90506000846139ef57896001600160a01b03166312610e928a886040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156139be57600080fd5b505af11580156139d2573d6000803e3d6000fd5b505050506040513d60208110156139e857600080fd5b5051613a7c565b896001600160a01b0316639976cf458a886040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015613a4f57600080fd5b505af1158015613a63573d6000803e3d6000fd5b505050506040513d6020811015613a7957600080fd5b50515b919a91995090975050505050505050565b6000806000613aa0898989898989613d46565b915091506000613ab38383600d54613219565b9a9950505050505050505050565b8115613ad957613ad4888888868561348f565b613ae5565b613ae588888886612ca3565b8315613afa57613af588866132e2565b612d75565b876001600160a01b03166364a197f387876040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015613b5a57600080fd5b505af11580156129a7573d6000803e3d6000fd5b60008184841115613bfd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613bc2578181015183820152602001613baa565b50505050905090810190601f168015613bef5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600080613c10610ec9565b90506000613c1c610db9565b90506000613c2c838388886131cd565b9695505050505050565b6000613c54836131fb86670de0b6b3a764000063ffffffff613cab16565b905081811115610ba9576040805162461bcd60e51b815260206004820152601d60248201527f4665652065786365656465642070726f7669646564206d6178696d756d000000604482015290519081900360640190fd5b600082613cba57506000610c3f565b82820282848281613cc757fe5b0414612b075760405162461bcd60e51b81526004018080602001828103825260218152602001806141d66021913960400191505060405180910390fd5b6000612b0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613e1d565b600080878786613d6557613d608a8963ffffffff612ac516565b613d75565b613d758a8963ffffffff612d9a16565b915084613d9157613d8c898763ffffffff612ac516565b613a7c565b613a7c898763ffffffff612d9a16565b8015612ac25760405162461bcd60e51b815260040180806020018281038252603e8152602001806142ae603e913960400191505060405180910390fd5b80821015612f0a5760405162461bcd60e51b815260040180806020018281038252603e8152602001806144e1603e913960400191505060405180910390fd5b60008183613e6c5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613bc2578181015183820152602001613baa565b506000838581613e7857fe5b0495945050505050565b604080516060810182526000808252602082018190529181019190915290565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806101c0016040528060008152602001600081526020016000815260200160001515815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056fe426f72726f7765724f70733a20436f6c6c61746572616c207472616e73666572206661696c6564206f6e2061646a75737454726f7665426f72726f7765724f7065726174696f6e733a2043616e6e6f7420617070726f766520416374697665506f6f6c20746f207370656e6420636f6c6c61746572616c426f72726f7765724f7065726174696f6e733a2043616e6e6f7420776974686472617720616e642061646420636f6c6c426f72726f7765724f70733a204f7065726174696f6e206e6f74207065726d697474656420647572696e67205265636f76657279204d6f6465426f72726f7765724f70733a20436f6c6c61746572616c207472616e73666572206661696c6564206f6e206d6f76654554484761696e546f54726f7665426f72726f7765724f70733a20436f6c6c61746572616c207472616e73666572206661696c6564206f6e20616464436f6c6c426f72726f7765724f70733a2054726f76652773206e65742064656274206d757374206265206c657373207468616e2064656274206365696c696e67426f72726f7765724f70733a204f7065726174696f6e206d757374206c656176652074726f7665207769746820494352203e3d204343524d6178206665652070657263656e74616765206d757374206c657373207468616e206f7220657175616c20746f2031303025426f72726f7765724f70733a205468657265206d75737420626520656974686572206120636f6c6c61746572616c206368616e6765206f7220612064656274206368616e6765436f6c6c61746572616c2077697468647261776e20616d6f756e74206d757374206265206c657373207468616e2074726f76652062616c616e63652e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77426f72726f7765724f70733a20416e206f7065726174696f6e207468617420776f756c6420726573756c7420696e20544352203c20434352206973206e6f74207065726d69747465644f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572426f72726f7765724f70733a2054726f766520646f6573206e6f74206578697374206f7220697320636c6f736564c3770d654ed33aeea6bf11ac8ef05d02a6a04ed4686dd2f624d853bbec43cc8b426f72726f7765724f70733a20436f6c6c61746572616c207769746864726177616c206e6f74207065726d6974746564205265636f76657279204d6f6465426f72726f7765724f70733a20436f6c6c61746572616c207472616e73666572206661696c6564206f6e206f70656e54726f7665426f72726f7765724f70733a2043616c6c657220646f65736e74206861766520656e6f756768204c55534420746f206d616b652072657061796d656e74426f72726f7765724f7065726174696f6e733a204164647265737365732061726520616c72656164792073657421426f72726f7765724f70733a20416e206f7065726174696f6e207468617420776f756c6420726573756c7420696e20494352203c204d4352206973206e6f74207065726d6974746564426f72726f7765724f70733a2054726f76652773206e65742064656274206d7573742062652067726561746572207468616e206d696e696d756d426f72726f7765724f70733a20416d6f756e7420726570616964206d757374206e6f74206265206c6172676572207468616e207468652054726f766527732064656274426f72726f7765724f70733a2043616c6c6572206973206e6f742053746162696c69747920506f6f6c4d6178206665652070657263656e74616765206d757374206265206265747765656e20302e352520616e642031303025426f72726f7765724f70733a204465627420696e637265617365207265717569726573206e6f6e2d7a65726f20646562744368616e6765426f72726f7765724f70733a2043616e6e6f7420646563726561736520796f75722054726f766527732049435220696e205265636f76657279204d6f6465a26469706673582212207a9d53ecd762155c84b24a0fc667f0efffd588792f98036ba92681f36b316a3f64736f6c634300060b0033