0x60806040526003805464ffffffffff19166178001790556103f26004556103e8600555606460065534801561003357600080fd5b506001600081905580546001600160a01b031916331790556135f18061005a6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806392e2507811610104578063d0645c51116100a2578063e1fd632e11610071578063e1fd632e146103c9578063f2fde38b146103dc578063f5474d84146103ef578063f7ad504314610402576101cf565b8063d0645c5114610388578063d26e1dff1461039b578063d3ad656b146103a3578063d3e703cf146103b6576101cf565b8063b2fb13c2116100de578063b2fb13c214610352578063b30075fc1461035a578063b9c947611461036d578063cc2f609314610380576101cf565b806392e2507814610319578063937084851461032c578063a6b6be8c1461033f576101cf565b8063686f38f0116101715780636b4049551161014b5780636b404955146102d6578063757c4e1c146102eb578063802fb940146102fe5780638da5cb5b14610311576101cf565b8063686f38f01461029b5780636a9dc0da146102b05780636aa29881146102c3576101cf565b806347628f60116101ad57806347628f601461021a5780634fb52c701461023a57806355f575101461024d5780635ccfb71d1461027a576101cf565b80631d27050f146101d457806331c14ac6146101e95780633c1d5df0146101fc575b600080fd5b6101e76101e2366004612fc3565b610415565b005b6101e76101f73660046129ed565b61049d565b610204610572565b60405161021191906134b5565b60405180910390f35b61022d610228366004612c57565b610583565b6040516102119190612ff4565b6101e7610248366004612ecb565b610836565b61026061025b3660046129ed565b610895565b6040516102119e9d9c9b9a99989796959493929190613162565b61028d610288366004612a41565b61091d565b6040516102119291906134a7565b6102a3610d90565b6040516102119190613157565b6101e76102be366004612ac6565b610d99565b6101e76102d1366004612cc8565b610ebe565b6102de61106f565b604051610211919061349e565b61028d6102f9366004612a81565b611075565b6101e761030c366004612b74565b611323565b61022d61144d565b6102a3610327366004612a09565b61145c565b6102de61033a366004612c8b565b61148e565b6102a361034d366004612bf2565b6115b5565b6101e76116dc565b6101e7610368366004612ecb565b611743565b6101e761037b366004612ba4565b6117a2565b6102de611898565b6101e7610396366004612a09565b61189e565b6102de61196f565b6101e76103b13660046129ed565b611975565b6101e76103c4366004612c1d565b611a3b565b6101e76103d7366004612ecb565b611b0c565b6101e76103ea3660046129ed565b611b6b565b6102a36103fd366004612f1e565b611bdd565b6101e76104103660046129ed565b611f11565b6001546001600160a01b031633146104485760405162461bcd60e51b815260040161043f90613389565b60405180910390fd5b6003805464ffffffff00191661010063ffffffff8416021790556040517fa715e512c9ea089998019d7ece21b384bb7161dc3caf500058fdcb05bc4232f8906104929083906134b5565b60405180910390a150565b6001546001600160a01b031633146104c75760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03811660009081526002602052604090208054829190600160301b900460ff1661050a5760405162461bcd60e51b815260040161043f90613427565b6001600160a01b03831660009081526002602052604090819020805463ff0000001916630100000017815590517f3ab598f022d1ad649eef5db68128f85debd6a7bf6a29ae11d4b01dd110ef15b790610564908690612ff4565b60405180910390a150505050565b600354610100900463ffffffff1681565b6000826001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105be57600080fd5b505afa1580156105d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f69190612e04565b6001600160a01b031663e76c01e46040518163ffffffff1660e01b815260040160e06040518083038186803b15801561062e57600080fd5b505afa158015610642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106669190612e3a565b50949550505063ffffffff85161592506108309150505760408051600280825260608201835260009260208301908036833701905050905082816000815181106106ac57fe5b602002602001019063ffffffff16908163ffffffff16815250506000816001815181106106d557fe5b602002602001019063ffffffff16908163ffffffff16815250506000846001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561072a57600080fd5b505afa15801561073e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107629190612e04565b6001600160a01b0316639d3a5241836040518263ffffffff1660e01b815260040161078d919061310d565b60006040518083038186803b1580156107a557600080fd5b505afa1580156107b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107e19190810190612cf5565b505050905061082b8463ffffffff16826000815181106107fd57fe5b60200260200101518360018151811061081257fe5b60200260200101510360060b8161082557fe5b05611fe6565b925050505b92915050565b6001546001600160a01b031633146108605760405162461bcd60e51b815260040161043f90613389565b60068190556040517fa1e8a7779c35eb2e6161f5b0a5dbf6bcaf16f317d166788bfae1ea33eb210fc09061049290839061349e565b6002602081905260009182526040909120805460018201549282015460038301546004840154600585015460069095015460ff808616976101008704821697620100008804831697630100000081048416976401000000008204851697600160281b8304861697600160301b840490961696600160381b90930463ffffffff1695919390928e565b600080846001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561095957600080fd5b505afa15801561096d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109919190612e04565b6001600160a01b0316846001600160a01b03161480610a315750846001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156109e457600080fd5b505afa1580156109f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1c9190612e04565b6001600160a01b0316846001600160a01b0316145b610a4d5760405162461bcd60e51b815260040161043f90613227565b60008311610a6d5760405162461bcd60e51b815260040161043f9061327f565b600080866001600160a01b031663c4a7761e6040518163ffffffff1660e01b8152600401604080518083038186803b158015610aa857600080fd5b505afa158015610abc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae09190612efb565b91509150866001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1d57600080fd5b505afa158015610b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b559190612ee3565b1580610b5f575081155b80610b68575080155b15610cec5760009350866001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610baa57600080fd5b505afa158015610bbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be29190612e04565b6001600160a01b0316866001600160a01b03161415610c7357866001600160a01b0316634d461fbb6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3457600080fd5b505afa158015610c48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6c9190612ee3565b9250610ce7565b866001600160a01b031663648cab856040518163ffffffff1660e01b815260040160206040518083038186803b158015610cac57600080fd5b505afa158015610cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce49190612ee3565b92505b610d86565b6001600160a01b0387166000908152600260205260408120548190610100900460ff16610d2457610d1f89898686611075565b610d55565b6001600160a01b03891660009081526002602052604090206005810154600690910154610d55918b918b9190611075565b91509150610d6c87670de0b6b3a764000084612318565b9550610d8187670de0b6b3a764000083612318565b945050505b5050935093915050565b60035460ff1681565b6001546001600160a01b03163314610dc35760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03821660009081526002602052604090208054839190600160301b900460ff16610e065760405162461bcd60e51b815260040161043f90613427565b6001600160a01b0384166000908152600260205260408120905b84518160ff161015610e7d576001826007016000878460ff1681518110610e4357fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610e20565b507f587820c8cbf51b999284b47677716a04cf5da2568b643ec21ef498bd201baea98585604051610eaf929190613022565b60405180910390a15050505050565b6001546001600160a01b03163314610ee85760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03821660009081526002602052604090208054600160301b900460ff1615610f295760405162461bcd60e51b815260040161043f906132e6565b60008260ff1611610f4c5760405162461bcd60e51b815260040161043f9061344a565b818160000160066101000a81548160ff021916908360ff160217905550610ff183600019856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610fa957600080fd5b505afa158015610fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe19190612e04565b6001600160a01b031691906123c8565b61103183600019856001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610fa957600080fd5b7f0ffbdaa00809b1cda17f454a21810d6fb0be19db2adc1be661c5ec0a86a2894c83836040516110629291906130f1565b60405180910390a1505050565b60045481565b600080856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156110b157600080fd5b505afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190612e04565b6001600160a01b0316856001600160a01b031614806111895750856001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561113c57600080fd5b505afa158015611150573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111749190612e04565b6001600160a01b0316856001600160a01b0316145b6111a55760405162461bcd60e51b815260040161043f90613227565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156111de57600080fd5b505afa1580156111f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112169190612e04565b6001600160a01b0316856001600160a01b031614156112a95761126a611247600454866124e090919063ffffffff16565b670de0b6b3a7640000611265600554876124e090919063ffffffff16565b612318565b91506112a2611284600554866124e090919063ffffffff16565b670de0b6b3a7640000611265600454876124e090919063ffffffff16565b905061131a565b6112df6112c1600454856124e090919063ffffffff16565b670de0b6b3a7640000611265600554886124e090919063ffffffff16565b91506113176112f9600554856124e090919063ffffffff16565b670de0b6b3a7640000611265600454886124e090919063ffffffff16565b90505b94509492505050565b6001546001600160a01b0316331461134d5760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03841660009081526002602052604090208054859190600160301b900460ff166113905760405162461bcd60e51b815260040161043f90613427565b6001600160a01b0386166000908152600260205260409020546301000000900460ff16156113d05760405162461bcd60e51b815260040161043f906133e4565b6001600160a01b03861660009081526002602052604090819020805461ff00191661010088151502178155600581018690556006810185905590517f2b7e1c8a9a30964a7ada38c5149564ba064d3cb46ff06d7ff182775ad7a4713d9061143c908990889088906130aa565b60405180910390a150505050505050565b6001546001600160a01b031681565b6001600160a01b0391821660009081526002602090815260408083209390941682526007909201909152205460ff1690565b60008061150a856001600160a01b031663065e53606040518163ffffffff1660e01b815260040160206040518083038186803b1580156114cd57600080fd5b505afa1580156114e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115059190612e20565b611fe6565b90506115356115226001600160a01b038316806124e0565b670de0b6b3a7640000600160c01b612318565b915060006115438686610583565b9050600061155d6115226001600160a01b038416806124e0565b9050846115758261156f8760646124e0565b90612539565b118061158e57508461158c8561156f8460646124e0565b115b156115ab5760405162461bcd60e51b815260040161043f9061346f565b5050509392505050565b6001600160a01b03821660009081526002602052604081208054849190600160301b900460ff166115f85760405162461bcd60e51b815260040161043f90613427565b6001600160a01b038516600090815260026020526040902060040154156116d15760026000866001600160a01b03166001600160a01b0316815260200190815260200160002060040154856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561167b57600080fd5b505afa15801561168f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b39190612ee3565b11156116d15760405162461bcd60e51b815260040161043f9061330d565b506001949350505050565b6001546001600160a01b031633146117065760405162461bcd60e51b815260040161043f90613389565b6003805460ff19811660ff909116151790556040517f31d2b42be69698b73ed0afb43a71872d1c2fa75bf4910edc3d5cf929ce11fb2d90600090a1565b6001546001600160a01b0316331461176d5760405162461bcd60e51b815260040161043f90613389565b60048190556040517f7173676a243594886893526e7121ae1217b9c8f1bf37d7182cf351c7243c33349061049290839061349e565b6001546001600160a01b031633146117cc5760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03841660009081526002602052604090208054859190600160301b900460ff1661180f5760405162461bcd60e51b815260040161043f90613427565b6001600160a01b03861660009081526002602052604090819020805465ff00000000001916600160281b88151502176affffffff000000000000001916600160381b63ffffffff8816021781556001810185905590517f12588f80b3d955932fa6495825fce3e5a86e65babbb64fb0f03843c81948c6079061143c90899089908990899061307e565b60065481565b6001546001600160a01b031633146118c85760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03821660009081526002602052604090208054839190600160301b900460ff1661190b5760405162461bcd60e51b815260040161043f90613427565b6001600160a01b03808516600090815260026020908152604080832093871683526007840190915290819020805460ff19169055517f327ebead4bc995c77eca4e68adf4a8709ea36622e0732ecd0e23dee6bcfb886990610eaf9087908790613008565b60055481565b6001546001600160a01b0316331461199f5760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03811660009081526002602052604090208054829190600160301b900460ff166119e25760405162461bcd60e51b815260040161043f90613427565b6001600160a01b03831660009081526002602052604090819020805460ff19811660ff9091161517815590517fbd7dd9863bd3d126a99c32ad6b1f31c1fd44cdbf6cafca60e4f508228ee0a4d290610564908690612ff4565b6001546001600160a01b03163314611a655760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03841660009081526002602052604090208054859190600160301b900460ff16611aa85760405162461bcd60e51b815260040161043f90613427565b6001600160a01b038616600090815260026020819052604091829020908101879055600381018690556004810185905590517e43da711fca65981e4da1c2b18c362abff88d1aea1f55992a7beeb5e1ae17bb9061143c9089908990899089906130cb565b6001546001600160a01b03163314611b365760405162461bcd60e51b815260040161043f90613389565b60058190556040517f8cf1b5e61ca322007d7f7f14643afd8df1240cc40ddcf5e1cdf544f2bb0acae49061049290839061349e565b6001546001600160a01b03163314611b955760405162461bcd60e51b815260040161043f90613389565b6001600160a01b038116611bbb5760405162461bcd60e51b815260040161043f906132af565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03821660009081526002602052604081208054849190600160301b900460ff16611c205760405162461bcd60e51b815260040161043f90613427565b6001600160a01b038616611c465760405162461bcd60e51b815260040161043f90613250565b6001600160a01b0385166000908152600260209081526040808320338452600781019092529091205460ff16611e1957805460ff16611cab57600089118015611c8f5750600088115b611cab5760405162461bcd60e51b815260040161043f906133ad565b8815611d6257600080611d2f88896001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611cf157600080fd5b505afa158015611d05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d299190612e04565b8d61091d565b91509150818a10158015611d435750808a11155b611d5f5760405162461bcd60e51b815260040161043f906131ff565b50505b8715611e1957600080611de688896001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015611da857600080fd5b505afa158015611dbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de09190612e04565b8c61091d565b91509150818b10158015611dfa5750808b11155b611e165760405162461bcd60e51b815260040161043f906131ff565b50505b60035460ff1680611e3257508054600160281b900460ff165b15611e94578054611e92908790600160281b900460ff16611e6057600354610100900463ffffffff16611e70565b8254600160381b900463ffffffff165b8354600160281b900460ff16611e885760065461033a565b836001015461148e565b505b8054640100000000900460ff1615611f0257600281015415611ed4578060020154891115611ed45760405162461bcd60e51b815260040161043f90613361565b600381015415611f02578060030154881115611f025760405162461bcd60e51b815260040161043f90613339565b50600198975050505050505050565b6001546001600160a01b03163314611f3b5760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03811660009081526002602052604090208054829190600160301b900460ff16611f7e5760405162461bcd60e51b815260040161043f90613427565b6001600160a01b03831660009081526002602052604090819020805464ff000000001981166401000000009182900460ff161590910217815590517f4681eb28f57cf4cc50d03460a4926f257ddd329f9e73b134ea189b3d757dd21090610564908690612ff4565b60008060008360020b12611ffd578260020b612005565b8260020b6000035b9050620d89e8811115612043576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b60006001821661205757600160801b612069565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561209d576ffff97272373d413259a46990580e213a0260801c5b60048216156120bc576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156120db576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156120fa576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612119576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612138576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612157576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612177576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612197576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156121b7576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156121d7576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156121f7576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612217576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612237576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612257576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612278576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615612298576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156122b7576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156122d4576b048a170391f7dc42444e8fa20260801c5b60008460020b13156122ef5780600019816122eb57fe5b0490505b640100000000810615612303576001612306565b60005b60ff16602082901c0192505050919050565b600080806000198587098686029250828110908390030390508061234e576000841161234357600080fd5b5082900490506123c1565b80841161235a57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b80158061244e575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561242057600080fd5b505afa158015612434573d6000803e3d6000fd5b505050506040513d602081101561244a57600080fd5b5051155b6124895760405162461bcd60e51b81526004018080602001828103825260368152602001806135af6036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526124db9084906125a0565b505050565b6000826124ef57506000610830565b828202828482816124fc57fe5b04146123c15760405162461bcd60e51b81526004018080602001828103825260218152602001806135646021913960400191505060405180910390fd5b600080821161258f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161259857fe5b049392505050565b60006125f5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126519092919063ffffffff16565b8051909150156124db5780806020019051602081101561261457600080fd5b50516124db5760405162461bcd60e51b815260040180806020018281038252602a815260200180613585602a913960400191505060405180910390fd5b60606126608484600085612668565b949350505050565b6060824710156126a95760405162461bcd60e51b815260040180806020018281038252602681526020018061353e6026913960400191505060405180910390fd5b6126b2856127c3565b612703576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b602083106127415780518252601f199092019160209182019101612722565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146127a3576040519150601f19603f3d011682016040523d82523d6000602084013e6127a8565b606091505b50915091506127b88282866127cd565b979650505050505050565b803b15155b919050565b606083156127dc5750816123c1565b8251156127ec5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561283657818101518382015260200161281e565b50505050905090810190601f1680156128635780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600082601f830112612881578081fd5b81516020612896612891836134ea565b6134c6565b82815281810190858301838502870184018810156128b2578586fd5b855b858110156128eb5781516dffffffffffffffffffffffffffff811681146128d9578788fd5b845292840192908401906001016128b4565b5090979650505050505050565b600082601f830112612908578081fd5b81516020612918612891836134ea565b8281528181019085830183850287018401881015612934578586fd5b855b858110156128eb57815161294981613508565b84529284019290840190600101612936565b600082601f83011261296b578081fd5b8151602061297b612891836134ea565b8281528181019085830183850287018401881015612997578586fd5b855b858110156128eb57815184529284019290840190600101612999565b8051600281900b81146127c857600080fd5b805161ffff811681146127c857600080fd5b803563ffffffff811681146127c857600080fd5b6000602082840312156129fe578081fd5b81356123c181613508565b60008060408385031215612a1b578081fd5b8235612a2681613508565b91506020830135612a3681613508565b809150509250929050565b600080600060608486031215612a55578081fd5b8335612a6081613508565b92506020840135612a7081613508565b929592945050506040919091013590565b60008060008060808587031215612a96578182fd5b8435612aa181613508565b93506020850135612ab181613508565b93969395505050506040820135916060013590565b60008060408385031215612ad8578182fd5b8235612ae381613508565b915060208381013567ffffffffffffffff811115612aff578283fd5b8401601f81018613612b0f578283fd5b8035612b1d612891826134ea565b81815283810190838501858402850186018a1015612b39578687fd5b8694505b83851015612b64578035612b5081613508565b835260019490940193918501918501612b3d565b5080955050505050509250929050565b60008060008060808587031215612b89578182fd5b8435612b9481613508565b93506020850135612ab181613520565b60008060008060808587031215612bb9578182fd5b8435612bc481613508565b93506020850135612bd481613520565b9250612be2604086016129d9565b9396929550929360600135925050565b60008060408385031215612c04578182fd5b8235612c0f81613508565b946020939093013593505050565b60008060008060808587031215612c32578182fd5b8435612c3d81613508565b966020860135965060408601359560600135945092505050565b60008060408385031215612c69578182fd5b8235612c7481613508565b9150612c82602084016129d9565b90509250929050565b600080600060608486031215612c9f578081fd5b8335612caa81613508565b9250612cb8602085016129d9565b9150604084013590509250925092565b60008060408385031215612cda578182fd5b8235612ce581613508565b91506020830135612a368161352e565b60008060008060808587031215612d0a578182fd5b845167ffffffffffffffff80821115612d21578384fd5b818701915087601f830112612d34578384fd5b81516020612d44612891836134ea565b82815281810190858301838502870184018d1015612d60578889fd5b8896505b84871015612d905780518060060b8114612d7c57898afd5b835260019690960195918301918301612d64565b50918a0151919850909350505080821115612da9578384fd5b612db5888389016128f8565b94506040870151915080821115612dca578384fd5b612dd688838901612871565b93506060870151915080821115612deb578283fd5b50612df88782880161295b565b91505092959194509250565b600060208284031215612e15578081fd5b81516123c181613508565b600060208284031215612e31578081fd5b6123c1826129b5565b600080600080600080600060e0888a031215612e54578485fd5b8751612e5f81613508565b9650612e6d602089016129b5565b9550612e7b604089016129c7565b9450612e89606089016129c7565b93506080880151612e998161352e565b60a0890151909350612eaa8161352e565b60c0890151909250612ebb81613520565b8091505092959891949750929550565b600060208284031215612edc578081fd5b5035919050565b600060208284031215612ef4578081fd5b5051919050565b60008060408385031215612f0d578182fd5b505080516020909101519092909150565b6000806000806000610100808789031215612f37578384fd5b8635955060208088013595506040880135612f5181613508565b94506060880135612f6181613508565b9350609f88018913612f71578283fd5b612f7b60806134c6565b8060808a018b858c011115612f8e578586fd5b8594505b6004851015612fb1578035835260019490940193918301918301612f92565b50809450505050509295509295909350565b600060208284031215612fd4578081fd5b6123c1826129d9565b15159052565b63ffffffff169052565b60ff169052565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b81811015613070578551851683529483019491830191600101613052565b509098975050505050505050565b6001600160a01b03949094168452911515602084015263ffffffff166040830152606082015260800190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6001600160a01b0392909216825260ff16602082015260400190565b6020808252825182820181905260009190848201906040850190845b8181101561314b57835163ffffffff1683529284019291840191600101613129565b50909695505050505050565b901515815260200190565b8e151581528d151560208201526101c08101613181604083018f612fdd565b61318e606083018e612fdd565b61319b608083018d612fdd565b6131a860a083018c612fdd565b6131b560c083018b612fed565b6131c260e083018a612fe3565b8761010083015286610120830152856101408301528461016083015283610180830152826101a08301529f9e505050505050505050505050505050565b6020808252600e908201526d496d70726f70657220726174696f60901b604082015260600190565b6020808252600f908201526e0e8ded6cadc40dad2e6e8dac2e8c6d608b1b604082015260600190565b602080825260159082015274746f2073686f756c64206265206e6f6e2d7a65726f60581b604082015260600190565b6020808252601690820152756465706f736974732063616e2774206265207a65726f60501b604082015260600190565b6020808252601b908201527f6e65774f776e65722073686f756c64206265206e6f6e2d7a65726f0000000000604082015260600190565b6020808252600d908201526c185b1c9958591e481859191959609a1b604082015260600190565b60208082526012908201527165786365656473206d617820737570706c7960701b604082015260600190565b6020808252600e908201526d746f6b656e31206578636565647360901b604082015260600190565b6020808252600e908201526d746f6b656e30206578636565647360901b604082015260600190565b6020808252600a908201526937b7363c9037bbb732b960b11b604082015260600190565b6020808252601a908201527f6d757374206465706f73697420746f20626f7468207369646573000000000000604082015260600190565b60208082526023908201527f637573746f6d20726174696f206973206e6f206c6f6e67657220617661696c61604082015262626c6560e81b606082015260800190565b6020808252600990820152681b9bdd08185919195960ba1b604082015260600190565b6020808252600b908201526a76657273696f6e203c203160a81b604082015260600190565b6020808252601590820152745072696365206368616e6765204f766572666c6f7760581b604082015260600190565b90815260200190565b918252602082015260400190565b63ffffffff91909116815260200190565b60405181810167ffffffffffffffff811182821017156134e257fe5b604052919050565b600067ffffffffffffffff8211156134fe57fe5b5060209081020190565b6001600160a01b038116811461351d57600080fd5b50565b801515811461351d57600080fd5b60ff8116811461351d57600080fdfe416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a164736f6c6343000706000a