0x60806040526200001d600060086200010860201b620010861760201c565b516002553480156200002e57600080fd5b50604051620047fc380380620047fc833981016040819052620000519162000387565b6000620000666001600160e01b036200020616565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b038116620000e25760405162461bcd60e51b8152600401620000d99062000489565b60405180910390fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055620004d1565b6200011262000374565b6200011c62000374565b601b8314156200015157604051806020016040528062000147866200020a60201b620011461760201c565b90529050620001fd565b601b831115620001c357600062000178601b856200023660201b6200116f1790919060201c565b90506040518060200160405280620001b7620001a684600a0a896200028060201b620011b11790919060201c565b6200020a60201b620011461760201c565b815250915050620001fd565b600083601b0390506040518060200160405280620001f7620001a684600a0a89620002ca60201b620011f31790919060201c565b90529150505b90505b92915050565b3390565b6000600160ff1b8210620002325760405162461bcd60e51b8152600401620000d99062000406565b5090565b6000620001fd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200030a60201b60201c565b6000620001fd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200033960201b60201c565b600082620002db5750600062000200565b82820282848281620002e957fe5b0414620001fd5760405162461bcd60e51b8152600401620000d99062000448565b60008184841115620003315760405162461bcd60e51b8152600401620000d99190620003b0565b505050900390565b600081836200035d5760405162461bcd60e51b8152600401620000d99190620003b0565b5060008385816200036a57fe5b0495945050505050565b6040518060200160405280600081525090565b60006020828403121562000399578081fd5b81516001600160a01b0381168114620001fd578182fd5b6000602080835283518082850152825b81811015620003de57858101830151858201604001528201620003c0565b81811115620003f05783604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f4669786564506f696e74496e743235363a206f7574206f6620696e742072616e604082015261676560f01b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526028908201527f4d617267696e43616c63756c61746f723a20696e76616c6964206f7261636c65604082015267206164647265737360c01b606082015260800190565b61431b80620004e16000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638aab8fa5116100ad578063c73547e311610071578063c73547e314610271578063cd43fbfb14610284578063dc1b3f00146102a5578063e592301a146102b8578063f2fde38b146102c05761012c565b80638aab8fa5146102195780638da5cb5b1461022c5780639a783d1114610234578063a6c5690714610247578063b29d5ee8146102695761012c565b80636ccb9506116100f45780636ccb9506146101c1578063715018a6146101d45780637ad7f800146101de5780637dc0d1d0146101f15780637f519b72146102065761012c565b8063053fe57c146101315780630b0509fb1461015b578063463459001461017b578063478409301461018e57806347d438a5146101a1575b600080fd5b61014461013f3660046134cc565b6102d3565b60405161015292919061422b565b60405180910390f35b61016e6101693660046133f7565b61030e565b604051610152919061423b565b61016e6101893660046131a2565b610389565b61016e61019c36600461316a565b6103b3565b6101b46101af3660046131a2565b6104ea565b6040516101529190613680565b61016e6101cf36600461316a565b610562565b6101dc61057d565b005b6101dc6101ec366004613317565b6105fc565b6101f96106fd565b6040516101529190613604565b6101dc6102143660046131fd565b61070c565b6101dc6102273660046132b4565b6109e3565b6101f9610a9c565b6101dc610242366004613485565b610aab565b61025a61025536600461350f565b610b57565b604051610152939291906136c4565b61016e610e00565b6101dc61027f366004613561565b610e06565b6102976102923660046134cc565b610e7b565b604051610152929190614244565b61016e6102b33660046132b4565b610f95565b61016e610fca565b6101dc6102ce36600461316a565b610fd0565b6102db612e40565b6102e3612e40565b6102eb612e53565b6102f5858561122d565b90506103018582611578565b92509250505b9250929050565b60008061031d8b8b8b86611a2d565b9050610327612e40565b610332896008611086565b905061033c612e40565b610347896008611086565b9050610351612e40565b61035c896008611086565b905061037761036f858584868d8c611a66565b886000611bec565b9e9d5050505050505050505050505050565b60008061039886868686611a2d565b6000908152600660205260409020549150505b949350505050565b60006001600160a01b0382166103e45760405162461bcd60e51b81526004016103db906137ea565b60405180910390fd5b6000806000806000806103f688611cbf565b955095509550955095509550814210156104225760405162461bcd60e51b81526004016103db90613831565b61042a612e40565b6104378686858786612011565b9050610441612e40565b61044d82878a87612072565b90506000886001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561048a57600080fd5b505afa15801561049e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c291906135e3565b60ff1690506104d98282600163ffffffff611bec16565b99505050505050505050505b919050565b606060006104fa86868686611a2d565b600081815260046020908152604091829020805483518184028101840190945280845293945091929083018282801561055257602002820191906000526020600020905b81548152602001906001019080831161053e575b5050505050915050949350505050565b6001600160a01b031660009081526003602052604090205490565b6105856121fe565b6000546001600160a01b039081169116146105b25760405162461bcd60e51b81526004016103db90613dda565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6106046121fe565b6000546001600160a01b039081169116146106315760405162461bcd60e51b81526004016103db90613dda565b600081116106515760405162461bcd60e51b81526004016103db90613be6565b600061065f87878787611a2d565b6000818152600560209081526040808320878452909152902054909150806106995760405162461bcd60e51b81526004016103db90613fb4565b6000828152600560209081526040808320878452909152908190208490555182907f39bab32d3b88604bdfbf6e8c3b1aaaf9bb6013da4fd5206dee9e3b00ee6f2cf9906106eb90879085908890614262565b60405180910390a25050505050505050565b6007546001600160a01b031681565b6107146121fe565b6000546001600160a01b039081169116146107415760405162461bcd60e51b81526004016103db90613dda565b8261075e5760405162461bcd60e51b81526004016103db906138cc565b82811461077d5760405162461bcd60e51b81526004016103db90613a37565b600061078b89898989611a2d565b600081815260046020526040902080549192509015806107e65750805481906107bb90600163ffffffff61116f16565b815481106107c557fe5b9060005260206000200154868660008181106107dd57fe5b90506020020135115b6108025760405162461bcd60e51b81526004016103db90614001565b60005b858110156109d6578561081f82600163ffffffff61220216565b101561087857868661083883600163ffffffff61220216565b81811061084157fe5b9050602002013587878381811061085457fe5b90506020020135106108785760405162461bcd60e51b81526004016103db90613ebd565b600085858381811061088657fe5b90506020020135116108aa5760405162461bcd60e51b81526004016103db90613879565b8484828181106108b657fe5b905060200201356005600085815260200190815260200160002060008989858181106108de57fe5b905060200201358152602001908152602001600020819055508187878381811061090457fe5b83546001810185556000948552602094859020919094029290920135919092015550827fcaae9881bd3ac6f531c9e6021f1f873b93a83648e348624eef8f9ba9757fcb6288888481811061095457fe5b90506020020135604051610968919061423b565b60405180910390a2827fcbb8d688de73727385afee9d53a2771ae5fe45293ff6de0ba46b201ab29df11588888481811061099e57fe5b905060200201358787858181106109b157fe5b905060200201356040516109c6929190614254565b60405180910390a2600101610805565b5050505050505050505050565b6109eb6121fe565b6000546001600160a01b03908116911614610a185760405162461bcd60e51b81526004016103db90613dda565b60008111610a385760405162461bcd60e51b81526004016103db906140e8565b6000610a4686868686611a2d565b600081815260066020526040908190208490555190915081907f78d22b4a9e4e0e1db30e7762696456ca380dc80efc59f416a299b97213b6d31690610a8c90859061423b565b60405180910390a2505050505050565b6000546001600160a01b031690565b610ab36121fe565b6000546001600160a01b03908116911614610ae05760405162461bcd60e51b81526004016103db90613dda565b60008111610b005760405162461bcd60e51b81526004016103db90613961565b6001600160a01b03821660008181526003602052604090819020839055517f8ef429e6cec4339c5f0187fb930764fb967114bf09bc8bb06a552ba32923fd8690610b4b90849061423b565b60405180910390a25050565b600080600085600114610b7c5760405162461bcd60e51b81526004016103db90613f06565b610b84612e53565b610b8e888861122d565b9050806102200151610baa575060009250829150819050610df6565b8060e001514210610bcd5760405162461bcd60e51b81526004016103db90613d45565b6007548151604051631b85462d60e01b815260009283926001600160a01b0390911691631b85462d91610c04918b9060040161365b565b604080518083038186803b158015610c1b57600080fd5b505afa158015610c2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5391906135c0565b91509150878111610c765760405162461bcd60e51b81526004016103db9061377e565b610c7e612eef565b6040518060600160405280610cac8d60600151600081518110610c9d57fe5b60200260200101516008611086565b8152602001610cc08660c001516008611086565b8152602001610cd0856008611086565b81525090506000610cf4856000015186602001518760400151886101c00151611a2d565b9050610cfe612e40565b610d258d60a00151600081518110610d1257fe5b6020026020010151876101800151611086565b9050610d2f612e40565b610d52838560000151866040015187602001518b60e001518c6101c00151611a66565b9050610d64818363ffffffff61222716565b15610d80575060009850889750879650610df695505050505050565b610d88612e40565b610da0856020015186604001518a6101c0015161222f565b90506000610dc58487600001518489604001518b8e61018001518f6101c001516122b6565b6040998a01516001600160a01b031660009081526003602052999099205460019c50989a5097985050505050505050505b9450945094915050565b60015490565b610e0e6121fe565b6000546001600160a01b03908116911614610e3b5760405162461bcd60e51b81526004016103db90613dda565b60018190556040517fe44c6dd1fc3826ad24b81f17cf04849cedd368e002a52e89a845d14d3474e20a90610e7090839061423b565b60405180910390a150565b600080610e86612e53565b610e90858561122d565b9050610e9c85826123fe565b806102200151158015610eb25750806102000151155b15610ef2576000816102400151610eca576000610ee4565b8560a00151600081518110610edb57fe5b60200260200101515b935060019250610307915050565b610efa612e40565b610f02612e40565b610f0c8784611578565b91509150610f18612e40565b610f28838363ffffffff61253516565b60408051602081019091526002548152909150600090610f4f90839063ffffffff61256716565b90506000856102000151610f6857856101000151610f6f565b8561016001515b90506000610f8484838563ffffffff611bec16565b9b929a509198505050505050505050565b600080610fa487878787611a2d565b600090815260056020908152604080832086845290915290205491505095945050505050565b610e1081565b610fd86121fe565b6000546001600160a01b039081169116146110055760405162461bcd60e51b81526004016103db90613dda565b6001600160a01b03811661102b5760405162461bcd60e51b81526004016103db9061391b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61108e612e40565b611096612e40565b601b8314156110bc5760405180602001604052806110b386611146565b9052905061113d565b601b83111561110e5760006110d884601b63ffffffff61116f16565b905060405180602001604052806111036110fe84600a0a896111b190919063ffffffff16565b611146565b81525091505061113d565b6040805160208101909152601b84900390806111376110fe88600a86900a63ffffffff6111f316565b90529150505b90505b92915050565b6000600160ff1b821061116b5760405162461bcd60e51b81526004016103db906139be565b5090565b600061113d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061256f565b600061113d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061259b565b60008261120257506000611140565b8282028284828161120f57fe5b041461113d5760405162461bcd60e51b81526004016103db90613d99565b611235612e53565b61123d612e53565b50604080516102608101825260008082526020808301829052928201819052606082018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082018190526101c082018190526101e0820181905261020082018190526102208201819052610240820152908401516112e2906125d2565b151561020082015283516112f5906125d2565b1515610220820152604084015161130b906125d2565b15156102408201526101a08101839052610200810151156113f9576000846020015160008151811061133957fe5b6020026020010151905061134c81611cbf565b15156101e08801526101408701526101208601526001600160a01b03908116608086015290811660608501521660a083018190526040805163313ce56760e01b8152905163313ce56791600480820192602092909190829003018186803b1580156113b657600080fd5b505afa1580156113ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ee91906135e3565b60ff16610160830152505b806102200151156114d4576000846000015160008151811061141757fe5b6020026020010151905061142a81611cbf565b15156101c088015260e087015260c08601526001600160a01b039081166020808701919091529181168552919091166040808501829052805163313ce56760e01b81529051919263313ce56792600480840193829003018186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c991906135e3565b60ff16610100830152505b8061024001511561113d5783604001516000815181106114f057fe5b60200260200101516001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561153057600080fd5b505afa158015611544573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156891906135e3565b60ff166101808201529392505050565b611580612e40565b611588612e40565b611590612e40565b8361022001516115af57604080516020810190915260025481526115c3565b6115c38560600151600081518110610c9d57fe5b90506115cd612e40565b8461020001516115ec5760408051602081019091526002548152611600565b6116008660800151600081518110610c9d57fe5b905061160a612e40565b856102400151611629576040805160208101909152600254815261163d565b61163d8760a00151600081518110610d1257fe5b9050611647612e40565b8661022001516116665760408051602081019091526002548152611675565b6116758760c001516008611086565b905061167f612f21565b6040518060a0016040528089610220015161169e5789606001516116a1565b89515b6001600160a01b031681526020018961022001516116c3578960a001516116c9565b89604001515b6001600160a01b031681526020018961022001516116eb5789608001516116f1565b89602001515b6001600160a01b031681526020018961022001516117145789610140015161171a565b8960e001515b815260200189610220015161173457896101e0015161173b565b896101c001515b15158152509050806060015142101561196857876101a00151600114156118c157611764612e40565b6040808a01516001600160a01b03166000908152600360205220546101808a015161178f9190611086565b604080516020810190915260025481529091506117b390859063ffffffff61261016565b156117e4576117c8848263ffffffff61261016565b6117e45760405162461bcd60e51b81526004016103db90613b63565b6117ec612e40565b6007548a516040516341976e0960e01b8152611876926001600160a01b0316916341976e099161181f9190600401613604565b60206040518083038186803b15801561183757600080fd5b505afa15801561184b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186f9190613579565b6008611086565b905060006118978b600001518c602001518d604001518e6101c00151611a2d565b9050856118b0828a858989606001518a60800151611a66565b995099505050505050505050610307565b6118c9612e40565b8861020001516118e857604080516020810190915260025481526118f8565b6118f88961012001516008611086565b905081608001511561193e5761190c612e40565b61191887878685612617565b90508461192e8285604001518660200151612664565b9850985050505050505050610307565b611946612e40565b611952878786856127c9565b90508461192e8285600001518660200151612664565b611970612e40565b88610220015161198f57604080516020810190915260025481526119b0565b6119b089600001518a602001518b60e001518c60c001518660800151612011565b90506119ba612e40565b8961020001516119d957604080516020810190915260025481526119fc565b6119fc8a606001518b608001518c61014001518d61012001518760800151612011565b9050611a06612e40565b611a1288888585612865565b9050856118b082866040015187602001518860600151612072565b600084848484604051602001611a469493929190613618565b604051602081830303815290604052805190602001209050949350505050565b611a6e612e40565b611a76612e40565b611a808885612890565b9050611a8a612e40565b50604080516020808201835260008b8152600690915291909120548152611aaf612e40565b611ab7612e40565b611abf612e40565b8615611b5157611ade89611ad9868d63ffffffff6129fb16565b612a42565b9250611b18611b03611af6868d63ffffffff6129fb16565b8b9063ffffffff61253516565b60408051602081019091526002548152612a60565b9150611b4a8b611b3e84611b32898863ffffffff6129fb16565b9063ffffffff612a7716565b9063ffffffff6129fb16565b9050611bdd565b611b59612e40565b611b706b033b2e3c9fd0803ce8000000601b611086565b9050611b9681611ad98d611b8a8e8a63ffffffff6129fb16565b9063ffffffff612aa016565b9350611bbf611b03611bb28d611b8a8e8a63ffffffff6129fb16565b839063ffffffff61253516565b9250611bd98c611b3e85611b328a8963ffffffff6129fb16565b9150505b9b9a5050505050505050505050565b600080601b841415611c0a578451611c0390612ad6565b9050611cb5565b601b841115611c43576000601b85039050611c3b81600a0a611c2f8860000151612ad6565b9063ffffffff6111f316565b915050611cb5565b601b849003600084611c80576000611c7183600a0a611c658a60000151612ad6565b9063ffffffff612af216565b90508015611c7e57600191505b505b611cb081611ca484600a0a611c988b60000151612ad6565b9063ffffffff6111b116565b9063ffffffff61220216565b925050505b90505b9392505050565b6000806000806000806000879050806001600160a01b031663af0968fc6040518163ffffffff1660e01b815260040160c06040518083038186803b158015611d0657600080fd5b505afa925050508015611d36575060408051601f3d908101601f19168201909252611d3391810190613384565b60015b611ff257806001600160a01b031663aabaecd66040518163ffffffff1660e01b815260040160206040518083038186803b158015611d7357600080fd5b505afa158015611d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dab9190613186565b816001600160a01b0316637158da7c6040518163ffffffff1660e01b815260040160206040518083038186803b158015611de457600080fd5b505afa158015611df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1c9190613186565b826001600160a01b03166317d69bc86040518163ffffffff1660e01b815260040160206040518083038186803b158015611e5557600080fd5b505afa158015611e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8d9190613186565b836001600160a01b031663c52987cf6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ec657600080fd5b505afa158015611eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611efe9190613579565b846001600160a01b031663ade6e2aa6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6f9190613579565b856001600160a01b031663f3c274a66040518163ffffffff1660e01b815260040160206040518083038186803b158015611fa857600080fd5b505afa158015611fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe091906134b0565b96509650965096509650965050612008565b949b509299509097509550935091506120089050565b91939550919395565b612019612e40565b612021612e40565b61202c846008611086565b9050612036612e40565b61204260016000611086565b905061204c612e40565b612058828a8a8a612072565b905061206583828761222f565b9998505050505050505050565b61207a612e40565b826001600160a01b0316846001600160a01b0316141561209b5750836103ab565b6007546040516301957f8160e01b815260009182916001600160a01b03909116906301957f81906120d29089908890600401613642565b604080518083038186803b1580156120e957600080fd5b505afa1580156120fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121219190613591565b6007546040516301957f8160e01b815292945090925060009182916001600160a01b0316906301957f819061215c908a908a90600401613642565b604080518083038186803b15801561217357600080fd5b505afa158015612187573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ab9190613591565b915091508280156121b95750805b6121d55760405162461bcd60e51b81526004016103db90613c95565b6120656121e3836008611086565b611b8a6121f1876008611086565b8c9063ffffffff6129fb16565b3390565b60008282018381101561113d5760405162461bcd60e51b81526004016103db90613a00565b519051131590565b612237612e40565b811561227d5761224d848463ffffffff61261016565b6122665760408051602081019091526002548152612276565b612276848463ffffffff61253516565b9050611cb8565b61228d838563ffffffff61261016565b6122a65760408051602081019091526002548152611cb5565b611cb5838563ffffffff61253516565b60006122c0612e40565b6122c8612e40565b6122d88a8a63ffffffff612aa016565b905060006122ec428863ffffffff61116f16565b9050610e1081106122ff578192506123ec565b612307612e40565b61230f612e40565b61231c600154601b611086565b9050861561234e57612347611b0361233a838d63ffffffff6129fb16565b8d9063ffffffff61253516565b9150612378565b6123758a611b8a611b03612368858463ffffffff6129fb16565b8f9063ffffffff61253516565b91505b50612381612e40565b61238c836012611086565b9050612396612e40565b6123a3610e106012611086565b90506123cd6123c082611b8a85611b3e8a8963ffffffff61253516565b849063ffffffff612a7716565b95506123df868663ffffffff61261016565b156123e8578495505b5050505b611bdd8387600163ffffffff611bec16565b815151600110156124215760405162461bcd60e51b81526004016103db9061404f565b600182602001515111156124475760405162461bcd60e51b81526004016103db90613a7d565b6001826040015151111561246d5760405162461bcd60e51b81526004016103db90613f57565b606082015151825151146124935760405162461bcd60e51b81526004016103db90613b12565b816080015151826020015151146124bc5760405162461bcd60e51b81526004016103db90614132565b8160a0015151826040015151146124e55760405162461bcd60e51b81526004016103db90614182565b6124ef8282612b34565b61250b5760405162461bcd60e51b81526004016103db90613ce8565b6125158282612c6e565b6125315760405162461bcd60e51b81526004016103db90613e56565b5050565b61253d612e40565b604080516020810190915282518451829161255e919063ffffffff612d0e16565b90529392505050565b519051121590565b600081848411156125935760405162461bcd60e51b81526004016103db91906136dc565b505050900390565b600081836125bc5760405162461bcd60e51b81526004016103db91906136dc565b5060008385816125c857fe5b0495945050505050565b6000808251118015611140575060006001600160a01b0316826000815181106125f757fe5b60200260200101516001600160a01b0316141592915050565b5190511390565b61261f612e40565b61265b611b0361263f6126328888612a42565b859063ffffffff6129fb16565b61264f888763ffffffff6129fb16565b9063ffffffff61253516565b95945050505050565b61266c612e40565b816001600160a01b0316836001600160a01b0316141561268d575082611cb8565b6007546040516341976e0960e01b81526000916001600160a01b0316906341976e09906126be908790600401613604565b60206040518083038186803b1580156126d657600080fd5b505afa1580156126ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270e9190613579565b6007546040516341976e0960e01b81529192506000916001600160a01b03909116906341976e0990612744908790600401613604565b60206040518083038186803b15801561275c57600080fd5b505afa158015612770573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127949190613579565b90506127bf6127a4826008611086565b611b8a6127b2856008611086565b899063ffffffff6129fb16565b9695505050505050565b6127d1612e40565b604080516020810190915260025481526127f290839063ffffffff612d5416565b156128115761280a611b03868663ffffffff61253516565b90506103ab565b612819612e40565b61283183611b8a88611b3e838963ffffffff61253516565b905061283b612e40565b61284e611b03888863ffffffff61253516565b905061285a8282612a60565b979650505050505050565b61286d612e40565b61265b612880838663ffffffff6129fb16565b61264f858863ffffffff6129fb16565b612898612e40565b6000838152600460209081526040918290208054835181840281018401909452808452606093928301828280156128ee57602002820191906000526020600020905b8154815260200190600101908083116128da575b505050505090508051600014156129175760405162461bcd60e51b81526004016103db9061372f565b6000612929844263ffffffff61116f16565b905080826129426001855161116f90919063ffffffff16565b8151811061294c57fe5b602002602001015110156129725760405162461bcd60e51b81526004016103db906141d8565b60005b82518160ff1610156129f25781838260ff168151811061299157fe5b6020026020010151106129ea57600086815260056020526040812084516129e09290869060ff86169081106129c257fe5b6020026020010151815260200190815260200160002054601b611086565b9350505050611140565b600101612975565b50505092915050565b612a03612e40565b60408051602081019091528251845182916b033b2e3c9fd0803ce800000091612a319163ffffffff612d5b16565b81612a3857fe5b0590529392505050565b612a4a612e40565b8151835112612a59578161113d565b5090919050565b612a68612e40565b8151835113612a59578161113d565b612a7f612e40565b604080516020810190915282518451829161255e919063ffffffff612dc616565b612aa8612e40565b604080516020810190915282518451829190612a31906b033b2e3c9fd0803ce800000063ffffffff612d5b16565b600080821215612aeb578160000390506104e5565b50806104e5565b600061113d83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250612e0c565b6000816101a0015160011415612b675781610200015115612b675760405162461bcd60e51b81526004016103db90613c38565b8161020001511580612b7c5750816102200151155b15612b8957506001611140565b82518051600090612b9657fe5b60200260200101516001600160a01b03168360200151600081518110612bb857fe5b60200260200101516001600160a01b031614158015612bf0575081600001516001600160a01b031682606001516001600160a01b0316145b8015612c15575081602001516001600160a01b031682608001516001600160a01b0316145b8015612c3a575081604001516001600160a01b03168260a001516001600160a01b0316145b8015612c4e57508160e00151826101400151145b801561113d5750816101c001511515826101e00151151514905092915050565b610240810151600090600190612c85579050611140565b82610220015115612cc8578360400151600081518110612ca157fe5b60200260200101516001600160a01b031683604001516001600160a01b031614905061113d565b8261020001511561113d578360400151600081518110612ce457fe5b60200260200101516001600160a01b03168360a001516001600160a01b0316149050905092915050565b6000818303818312801590612d235750838113155b80612d385750600083128015612d3857508381135b61113d5760405162461bcd60e51b81526004016103db906140a4565b5190511490565b600082612d6a57506000611140565b82600019148015612d7e5750600160ff1b82145b15612d9b5760405162461bcd60e51b81526004016103db90613e0f565b82820282848281612da857fe5b051461113d5760405162461bcd60e51b81526004016103db90613e0f565b6000828201818312801590612ddb5750838112155b80612df05750600083128015612df057508381125b61113d5760405162461bcd60e51b81526004016103db90613ad1565b60008183612e2d5760405162461bcd60e51b81526004016103db91906136dc565b50828481612e3757fe5b06949350505050565b6040518060200160405280600081525090565b6040805161026081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290526102008101829052610220810182905261024081019190915290565b6040518060600160405280612f02612e40565b8152602001612f0f612e40565b8152602001612f1c612e40565b905290565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b600082601f830112612f5f578081fd5b8135612f72612f6d8261429f565b614278565b818152915060208083019084810181840286018201871015612f9357600080fd5b60005b84811015612fbb578135612fa9816142bf565b84529282019290820190600101612f96565b505050505092915050565b60008083601f840112612fd7578081fd5b50813567ffffffffffffffff811115612fee578182fd5b602083019150836020808302850101111561030757600080fd5b600082601f830112613018578081fd5b8135613026612f6d8261429f565b81815291506020808301908481018184028601820187101561304757600080fd5b60005b84811015612fbb5781358452928201929082019060010161304a565b600060c08284031215613077578081fd5b61308160c0614278565b9050813567ffffffffffffffff8082111561309b57600080fd5b6130a785838601612f4f565b835260208401359150808211156130bd57600080fd5b6130c985838601612f4f565b602084015260408401359150808211156130e257600080fd5b6130ee85838601612f4f565b6040840152606084013591508082111561310757600080fd5b61311385838601613008565b6060840152608084013591508082111561312c57600080fd5b61313885838601613008565b608084015260a084013591508082111561315157600080fd5b5061315e84828501613008565b60a08301525092915050565b60006020828403121561317b578081fd5b813561113d816142bf565b600060208284031215613197578081fd5b815161113d816142bf565b600080600080608085870312156131b7578283fd5b84356131c2816142bf565b935060208501356131d2816142bf565b925060408501356131e2816142bf565b915060608501356131f2816142d7565b939692955090935050565b60008060008060008060008060c0898b031215613218578384fd5b8835613223816142bf565b97506020890135613233816142bf565b96506040890135613243816142bf565b95506060890135613253816142d7565b9450608089013567ffffffffffffffff8082111561326f578586fd5b61327b8c838d01612fc6565b909650945060a08b0135915080821115613293578384fd5b506132a08b828c01612fc6565b999c989b5096995094979396929594505050565b600080600080600060a086880312156132cb578081fd5b85356132d6816142bf565b945060208601356132e6816142bf565b935060408601356132f6816142bf565b92506060860135613306816142d7565b949793965091946080013592915050565b60008060008060008060c0878903121561332f578182fd5b863561333a816142bf565b9550602087013561334a816142bf565b9450604087013561335a816142bf565b9350606087013561336a816142d7565b9598949750929560808101359460a0909101359350915050565b60008060008060008060c0878903121561339c578182fd5b86516133a7816142bf565b60208801519096506133b8816142bf565b60408801519095506133c9816142bf565b80945050606087015192506080870151915060a08701516133e9816142d7565b809150509295509295509295565b60008060008060008060008060006101208a8c031215613415578283fd5b8935613420816142bf565b985060208a0135613430816142bf565b975060408a0135613440816142bf565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a013591506101008a0135613474816142d7565b809150509295985092959850929598565b60008060408385031215613497578182fd5b82356134a2816142bf565b946020939093013593505050565b6000602082840312156134c1578081fd5b815161113d816142d7565b600080604083850312156134de578182fd5b823567ffffffffffffffff8111156134f4578283fd5b61350085828601613066565b95602094909401359450505050565b60008060008060808587031215613524578182fd5b843567ffffffffffffffff81111561353a578283fd5b61354687828801613066565b97602087013597506040870135966060013595509350505050565b600060208284031215613572578081fd5b5035919050565b60006020828403121561358a578081fd5b5051919050565b600080604083850312156135a3578182fd5b8251915060208301516135b5816142d7565b809150509250929050565b600080604083850312156135d2578182fd5b505080516020909101519092909150565b6000602082840312156135f4578081fd5b815160ff8116811461113d578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b039485168152928416602084015292166040820152901515606082015260800190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392909216825269ffffffffffffffffffff16602082015260400190565b6020808252825182820181905260009190848201906040850190845b818110156136b85783518352928401929184019160010161369c565b50909695505050505050565b92151583526020830191909152604082015260600190565b6000602080835283518082850152825b81811015613708578581018301518582016040015282016136ec565b818111156137195783604083870101525b50601f01601f1916929092016040019392505050565b6020808252602f908201527f4d617267696e43616c63756c61746f723a2070726f647563742068617665206e60408201526e6f206578706972792076616c75657360881b606082015260800190565b60208082526046908201527f4d617267696e43616c63756c61746f723a2061756374696f6e2074696d65737460408201527f616d702073686f756c6420626520706f7374207661756c74206c61746573742060608201526575706461746560d01b608082015260a00190565b60208082526027908201527f4d617267696e43616c63756c61746f723a20496e76616c696420746f6b656e206040820152666164647265737360c81b606082015260800190565b60208082526028908201527f4d617267696e43616c63756c61746f723a204f746f6b656e206e6f74206578706040820152671a5c9959081e595d60c21b606082015260800190565b60208082526033908201527f4d617267696e43616c63756c61746f723a206e6f2065787069727920757070656040820152721c88189bdd5b99081d985b1d5948199bdd5b99606a1b606082015260800190565b6020808252602f908201527f4d617267696e43616c63756c61746f723a20696e76616c69642074696d65732060408201526e746f2065787069727920617272617960881b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526039908201527f4d617267696e43616c63756c61746f723a206475737420616d6f756e7420736860408201527f6f756c642062652067726561746572207468616e207a65726f00000000000000606082015260800190565b60208082526022908201527f4669786564506f696e74496e743235363a206f7574206f6620696e742072616e604082015261676560f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526026908201527f4d617267696e43616c63756c61746f723a20696e76616c69642076616c75657360408201526520617272617960d01b606082015260800190565b60208082526034908201527f4d617267696e43616c63756c61746f723a20546f6f206d616e79206c6f6e67206040820152731bdd1bdad95b9cc81a5b881d1a19481d985d5b1d60621b606082015260800190565b60208082526021908201527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526031908201527f4d617267696e43616c63756c61746f723a2053686f727420617373657420616e6040820152700c840c2dadeeadce840dad2e6dac2e8c6d607b1b606082015260800190565b6020808252605b908201527f4d617267696e43616c63756c61746f723a206e616b6564206d617267696e207660408201527f61756c742073686f756c64206861766520636f6c6c61746572616c20616d6f7560608201527f6e742067726561746572207468616e206475737420616d6f756e740000000000608082015260a00190565b60208082526032908201527f4d617267696e43616c63756c61746f723a20696e76616c6964206f7074696f6e60408201527120757070657220626f756e642076616c756560701b606082015260800190565b6020808252603c908201527f4d617267696e43616c63756c61746f723a206e616b6564206d617267696e207660408201527f61756c742063616e6e6f742068617665206c6f6e67206f746f6b656e00000000606082015260800190565b60208082526033908201527f4d617267696e43616c63756c61746f723a2070726963652061742065787069726040820152721e481b9bdd08199a5b985b1a5e9959081e595d606a1b606082015260800190565b6020808252603b908201527f4d617267696e43616c63756c61746f723a206c6f6e67206173736574206e6f7460408201527f206d617267696e61626c6520666f722073686f72742061737365740000000000606082015260800190565b60208082526034908201527f4d617267696e43616c63756c61746f723a2063616e206e6f74206c697175696460408201527330ba329032bc3834b932b2103837b9b4ba34b7b760611b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526027908201527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f604082015266766572666c6f7760c81b606082015260800190565b60208082526041908201527f4d617267696e43616c63756c61746f723a20636f6c6c61746572616c2061737360408201527f6574206e6f74206d617267696e61626c6520666f722073686f727420617373656060820152601d60fa1b608082015260a00190565b60208082526029908201527f4d617267696e43616c63756c61746f723a2074696d652073686f756c642062656040820152681034b71037b93232b960b91b606082015260800190565b60208082526031908201527f4d617267696e43616c63756c61746f723a20696e76616c6964207661756c74206040820152707479706520746f206c697175696461746560781b606082015260800190565b60208082526039908201527f4d617267696e43616c63756c61746f723a20546f6f206d616e7920636f6c6c6160408201527f746572616c2061737365747320696e20746865207661756c7400000000000000606082015260800190565b6020808252602d908201527f4d617267696e43616c63756c61746f723a20757070657220626f756e6420766160408201526c1b1d59481b9bdd08199bdd5b99609a1b606082015260800190565b6020808252602e908201527f4d617267696e43616c63756c61746f723a20657870697279206172726179206960408201526d39903737ba1034b71037b93232b960911b606082015260800190565b60208082526035908201527f4d617267696e43616c63756c61746f723a20546f6f206d616e792073686f7274604082015274081bdd1bdad95b9cc81a5b881d1a19481d985d5b1d605a1b606082015260800190565b60208082526024908201527f5369676e6564536166654d6174683a207375627472616374696f6e206f766572604082015263666c6f7760e01b606082015260800190565b6020808252602a908201527f4d617267696e43616c63756c61746f723a20696e76616c69642073706f742073604082015269686f636b2076616c756560b01b606082015260800190565b60208082526030908201527f4d617267696e43616c63756c61746f723a204c6f6e6720617373657420616e6460408201526f040c2dadeeadce840dad2e6dac2e8c6d60831b606082015260800190565b60208082526036908201527f4d617267696e43616c63756c61746f723a20436f6c6c61746572616c206173736040820152750cae840c2dcc840c2dadeeadce840dad2e6dac2e8c6d60531b606082015260800190565b60208082526033908201527f4d617267696e43616c63756c61746f723a2070726f647563742068617665206e6040820152726f20757070657220626f756e642076616c756560681b606082015260800190565b9151825251602082015260400190565b90815260200190565b9182521515602082015260400190565b918252602082015260400190565b9283526020830191909152604082015260600190565b60405181810167ffffffffffffffff8111828210171561429757600080fd5b604052919050565b600067ffffffffffffffff8211156142b5578081fd5b5060209081020190565b6001600160a01b03811681146142d457600080fd5b50565b80151581146142d457600080fdfea2646970667358221220e7a9a9c439407c4f961fbb9e3ccfbb3072a1b88a684d7fc445365679fb1d252a64736f6c634300060a00330000000000000000000000009e3ec146dff5277ba7e5fe4e25a9171bc2cc9d53