60806040525f600c60146101000a81548160ff0219169083151502179055505f60115573f31b086459c2cdac006feedd9080223964a9cddb60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060800160405280733762ba161a7adba9ee84a8cafffe57aa2e13347f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001735ca6aae74e45bd7271aa9eede684a047c77cab5373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ab8483f64d9c6d1ecf9b849ae677dd3315835cb273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001734b20993bc481177ec7e8f571cecae8a9e22c02db73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525060149060046101a792919061048a565b5060405180604001604052807327a503629a5354982735d5706286fb4731418ada73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017378731d3ca6b7e34ac0f824c42a7cc18a495cabab73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250601590600261024d929190610511565b50610af060165534801561025f575f80fd5b50336040518060400160405280601381526020017f5265616c576f726c644173736574546f6b656e000000000000000000000000008152506040518060400160405280600481526020017f5257415400000000000000000000000000000000000000000000000000000000815250815f90816102db91906107ed565b5080600190816102eb91906107ed565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361035e575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161035591906108fb565b60405180910390fd5b61036d816103c760201b60201c565b5073a2f78ab2355fe2f984d808b5cee7fd0a93d5270e601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610914565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054828255905f5260205f20908101928215610500579160200282015b828111156104ff578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906104a8565b5b50905061050d9190610598565b5090565b828054828255905f5260205f20908101928215610587579160200282015b82811115610586578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061052f565b5b5090506105949190610598565b5090565b5b808211156105af575f815f905550600101610599565b5090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061062e57607f821691505b602082108103610641576106406105ea565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610668565b6106ad8683610668565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6106f16106ec6106e7846106c5565b6106ce565b6106c5565b9050919050565b5f819050919050565b61070a836106d7565b61071e610716826106f8565b848454610674565b825550505050565b5f90565b610732610726565b61073d818484610701565b505050565b5b81811015610760576107555f8261072a565b600181019050610743565b5050565b601f8211156107a55761077681610647565b61077f84610659565b8101602085101561078e578190505b6107a261079a85610659565b830182610742565b50505b505050565b5f82821c905092915050565b5f6107c55f19846008026107aa565b1980831691505092915050565b5f6107dd83836107b6565b9150826002028217905092915050565b6107f6826105b3565b67ffffffffffffffff81111561080f5761080e6105bd565b5b6108198254610617565b610824828285610764565b5f60209050601f831160018114610855575f8415610843578287015190505b61084d85826107d2565b8655506108b4565b601f19841661086386610647565b5f5b8281101561088a57848901518255600182019150602085019450602081019050610865565b868310156108a757848901516108a3601f8916826107b6565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6108e5826108bc565b9050919050565b6108f5816108db565b82525050565b5f60208201905061090e5f8301846108ec565b92915050565b615a28806109215f395ff3fe608060405234801561000f575f80fd5b5060043610610288575f3560e01c8063715018a61161015a578063b534b5b7116100cc578063d1b02ba711610085578063d1b02ba7146107dd578063d81bc271146107fc578063e985e9c51461081d578063f24133651461084d578063f2fde38b1461086b578063fe575a871461088757610288565b8063b534b5b714610709578063b88d4fde14610727578063ba4e5c4914610743578063c87b56dd14610773578063c9c2783f146107a3578063cee2a9cf146107ad57610288565b80638e15f4731161011e5780638e15f4731461064757806395d89b4114610651578063a22cb4651461066f578063a7a8c3591461068b578063ad9ab857146106bb578063b2f5a54c146106eb57610288565b8063715018a6146105c757806373abe18d146105d157806379d813b9146105ef5780637e1c0c091461060b5780638da5cb5b1461062957610288565b80633610724e116101fe57806354e35ba2116101b757806354e35ba2146104f35780636352211e1461050f57806364492e7d1461053f578063676c0d771461055d57806369bb4dc21461057957806370a082311461059757610288565b80633610724e1461040c5780633af32abf146104285780633feb5f2b14610458578063407fcc311461048957806342842e0e146104a7578063486fc7e8146104c357610288565b80631120fd03116102505780631120fd031461034457806311eac85514610375578063176fd3f014610393578063192ddae5146103b45780631f62f309146103d257806323b872dd146103f057610288565b806301ffc9a71461028c57806306a1c6a2146102bc57806306fdde03146102da578063081812fc146102f8578063095ea7b314610328575b5f80fd5b6102a660048036038101906102a19190613e55565b6108b7565b6040516102b39190613e9a565b60405180910390f35b6102c4610917565b6040516102d19190613ef2565b60405180910390f35b6102e261092f565b6040516102ef9190613f7b565b60405180910390f35b610312600480360381019061030d9190613fce565b6109be565b60405161031f9190613ef2565b60405180910390f35b610342600480360381019061033d9190614023565b6109d9565b005b61035e60048036038101906103599190613fce565b6109ef565b60405161036c929190614070565b60405180910390f35b61037d610a3d565b60405161038a91906140f2565b60405180910390f35b61039b610a62565b6040516103ab949392919061410b565b60405180910390f35b6103bc610b05565b6040516103c99190613e9a565b60405180910390f35b6103da610b18565b6040516103e79190614155565b60405180910390f35b61040a6004803603810190610405919061416e565b610b1e565b005b61042660048036038101906104219190613fce565b610c1d565b005b610442600480360381019061043d91906141be565b6114ff565b60405161044f9190613e9a565b60405180910390f35b610472600480360381019061046d9190613fce565b6115a1565b604051610480929190614070565b60405180910390f35b6104916115ef565b60405161049e9190614155565b60405180910390f35b6104c160048036038101906104bc919061416e565b6115f5565b005b6104dd60048036038101906104d891906141be565b611614565b6040516104ea9190614155565b60405180910390f35b61050d600480360381019061050891906141e9565b611629565b005b61052960048036038101906105249190613fce565b611762565b6040516105369190613ef2565b60405180910390f35b610547611773565b604051610554919061423f565b60405180910390f35b61057760048036038101906105729190613fce565b611779565b005b61058161180d565b60405161058e9190614155565b60405180910390f35b6105b160048036038101906105ac91906141be565b6118ab565b6040516105be9190614155565b60405180910390f35b6105cf611961565b005b6105d9611974565b6040516105e69190614278565b60405180910390f35b610609600480360381019061060491906141be565b611999565b005b610613611c6b565b6040516106209190614155565b60405180910390f35b610631611c71565b60405161063e9190613ef2565b60405180910390f35b61064f611c99565b005b610659611d38565b6040516106669190613f7b565b60405180910390f35b610689600480360381019061068491906142bb565b611dc8565b005b6106a560048036038101906106a09190613fce565b611dde565b6040516106b29190613ef2565b60405180910390f35b6106d560048036038101906106d09190613fce565b611e19565b6040516106e29190613e9a565b60405180910390f35b6106f3611e36565b60405161070091906143ec565b60405180910390f35b610711611ef0565b60405161071e9190614155565b60405180910390f35b610741600480360381019061073c9190614538565b611ef6565b005b61075d60048036038101906107589190613fce565b611f13565b60405161076a9190613ef2565b60405180910390f35b61078d60048036038101906107889190613fce565b611f4e565b60405161079a9190613f7b565b60405180910390f35b6107ab612059565b005b6107c760048036038101906107c291906141be565b6124b2565b6040516107d49190613e9a565b60405180910390f35b6107e561255a565b6040516107f3929190614708565b60405180910390f35b610804612834565b604051610814949392919061410b565b60405180910390f35b6108376004803603810190610832919061473d565b6128e7565b6040516108449190613e9a565b60405180910390f35b610855612975565b6040516108629190614155565b60405180910390f35b610885600480360381019061088091906141be565b61297b565b005b6108a1600480360381019061089c91906141be565b6129ff565b6040516108ae9190613e9a565b60405180910390f35b5f634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610910575061090f82612aa1565b5b9050919050565b7305b9e9514fce6b5d903c7e763429b1d497de6b3b81565b60605f805461093d906147a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610969906147a8565b80156109b45780601f1061098b576101008083540402835291602001916109b4565b820191905f5260205f20905b81548152906001019060200180831161099757829003601f168201915b5050505050905090565b5f6109c882612b82565b506109d282612c08565b9050919050565b6109eb82826109e6612c41565b612c48565b5050565b601781815481106109fe575f80fd5b905f5260205f2090600202015f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6008805f018054610a72906147a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9e906147a8565b8015610ae95780601f10610ac057610100808354040283529160200191610ae9565b820191905f5260205f20905b815481529060010190602001808311610acc57829003601f168201915b5050505050908060010154908060020154908060030154905084565b600c60149054906101000a900460ff1681565b60165481565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b8e575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610b859190613ef2565b60405180910390fd5b5f610ba18383610b9c612c41565b612c5a565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c17578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610c0e939291906147d8565b60405180910390fd5b50505050565b600c60149054906101000a900460ff16610c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6390614857565b60405180910390fd5b5f81118015610c7c575060088111155b610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb2906148e5565b60405180910390fd5b610cc361180d565b811115610d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfc9061494d565b60405180910390fd5b610d0e336114ff565b610d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d44906149b5565b60405180910390fd5b610d56336129ff565b15610d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8d90614a1d565b60405180910390fd5b5f600f5482610da59190614a68565b90508060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610e029190613ef2565b602060405180830381865afa158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190614abd565b1015610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7990614b32565b60405180910390fd5b8060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401610edf929190614b50565b602060405180830381865afa158015610efa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1e9190614abd565b1015610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690614bc1565b60405180910390fd5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610fbd93929190614bdf565b6020604051808303815f875af1158015610fd9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ffd9190614c28565b505f80600190505b601054811115801561101657508382105b156112c05760125f8281526020019081526020015f205f9054906101000a900460ff166112ad5761104f611048611c71565b3383612e65565b600160125f8381526020019081526020015f205f6101000a81548160ff021916908315150217905550600160185f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110c59190614c53565b925050819055505f805b6019805490508110156111a0573373ffffffffffffffffffffffffffffffffffffffff166019828154811061110757611106614c86565b5b905f5260205f2090600202015f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036111935760016019828154811061116657611165614c86565b5b905f5260205f2090600202016001015f8282546111839190614c53565b92505081905550600191506111a0565b80806001019150506110cf565b508061124b57601960405180604001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020016001815250908060018154018082558091505060019003905f5260205f2090600202015f909190919091505f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015550505b828061125690614cb3565b9350503373ffffffffffffffffffffffffffffffffffffffff167f3ceffd410054fdaed44f598ff5c1fb450658778e2241892da4aa646979dee61783600e546040516112a3929190614cfa565b60405180910390a2505b80806112b890614cb3565b915050611005565b505f60646002846112d19190614a68565b6112db9190614d4e565b90505f81846112ea9190614d7e565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7305b9e9514fce6b5d903c7e763429b1d497de6b3b846040518363ffffffff1660e01b815260040161135c929190614070565b6020604051808303815f875af1158015611378573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139c9190614c28565b507305b9e9514fce6b5d903c7e763429b1d497de6b3b73ffffffffffffffffffffffffffffffffffffffff167f885e6f6235626292940f78c947a331f4c7c1d7f50a48b38092cf546bc9c7907a836040516113f79190614155565b60405180910390a260135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611444611c71565b836040518363ffffffff1660e01b8152600401611462929190614070565b6020604051808303815f875af115801561147e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a29190614c28565b506114ab611c71565b73ffffffffffffffffffffffffffffffffffffffff167f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770826040516114f09190614155565b60405180910390a25050505050565b5f805f90505b601480549050811015611597578273ffffffffffffffffffffffffffffffffffffffff166014828154811061153d5761153c614c86565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361158a57600191505061159c565b8080600101915050611505565b505f90505b919050565b601981815481106115b0575f80fd5b905f5260205f2090600202015f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b600e5481565b61160f83838360405180602001604052805f815250611ef6565b505050565b6018602052805f5260405f205f915090505481565b611631612fcd565b600c60149054906101000a900460ff1615611681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167890614dfb565b60405180910390fd5b8160108190555080600e81905550620f42406305f5e100600d54600e546116a89190614a68565b6116b29190614d4e565b6116bc9190614a68565b600f819055506001600c60146101000a81548160ff0219169083151502179055505f6116e6613054565b90505f600190505b83811161171c576116ff33826130dc565b61170981836131cf565b808061171490614cb3565b9150506116ee565b50826011819055507f08a3ad1d54f9e72ce7885341976027e04c0c26bddba427e8768f04879f82dc6e8383604051611755929190614cfa565b60405180910390a1505050565b5f61176c82612b82565b9050919050565b600d5481565b611781612fcd565b600c60149054906101000a900460ff166117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c790614857565b60405180910390fd5b80600e81905550620f42406305f5e100600d54600e546117f09190614a68565b6117fa9190614d4e565b6118049190614a68565b600f8190555050565b5f805f90505f600190505b60105481116118a3575f73ffffffffffffffffffffffffffffffffffffffff1661184182611762565b73ffffffffffffffffffffffffffffffffffffffff16148061187d575060125f8281526020019081526020015f205f9054906101000a900460ff165b61189057818061188c90614cb3565b9250505b808061189b90614cb3565b915050611818565b508091505090565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361191c575f6040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016119139190613ef2565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611969612fcd565b6119725f613229565b565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060800160405280600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663516f279e6040518163ffffffff1660e01b81526004015f60405180830381865afa158015611a4d573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611a759190614eb7565b8152602001600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634942f65f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b089190614abd565b8152602001600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ab0d92dd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b9b9190614abd565b8152602001600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b252c8f26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c2e9190614abd565b81525060085f820151815f019081611c469190615092565b5060208201518160010155604082015181600201556060820151816003015590505050565b60105481565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611d04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d2891906151ca565b50505091505080600d8190555050565b606060018054611d47906147a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611d73906147a8565b8015611dbe5780601f10611d9557610100808354040283529160200191611dbe565b820191905f5260205f20905b815481529060010190602001808311611da157829003601f168201915b5050505050905090565b611dda611dd3612c41565b83836132ec565b5050565b60158181548110611ded575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6012602052805f5260405f205f915054906101000a900460ff1681565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015611ee7578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152505081526020019060010190611e59565b50505050905090565b60115481565b611f01848484610b1e565b611f0d84848484613455565b50505050565b60148181548110611f22575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060611f5982612b82565b505f60065f8481526020019081526020015f208054611f77906147a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611fa3906147a8565b8015611fee5780601f10611fc557610100808354040283529160200191611fee565b820191905f5260205f20905b815481529060010190602001808311611fd157829003601f168201915b505050505090505f611ffe613607565b90505f815103612012578192505050612054565b5f8251111561204657808260405160200161202e92919061527b565b60405160208183030381529060405292505050612054565b61204f8461361d565b925050505b919050565b612061612fcd565b600c60149054906101000a900460ff166120b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a790614857565b60405180910390fd5b5f6103e860056016546120c39190614a68565b6120cd9190614d4e565b90505f806120d9611e36565b90505f5b8151811015612134575f8282815181106120fa576120f9614c86565b5b60200260200101516020015190505f81866121159190614a68565b905080856121239190614c53565b9450505080806001019150506120dd565b508160135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401612192929190614b50565b602060405180830381865afa1580156121ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121d19190614abd565b1015612212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220990614bc1565b60405180910390fd5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b815260040161227093929190614bdf565b6020604051808303815f875af115801561228c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122b09190614c28565b505f5b81518110156124ac575f8282815181106122d0576122cf614c86565b5b60200260200101515f015190505f8383815181106122f1576122f0614c86565b5b60200260200101516020015190505f818761230c9190614a68565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b815260040161236a929190614070565b6020604051808303815f875af1158015612386573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123aa9190614c28565b50601760405180604001604052808573ffffffffffffffffffffffffffffffffffffffff16815260200183815250908060018154018082558091505060019003905f5260205f2090600202015f909190919091505f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015550508273ffffffffffffffffffffffffffffffffffffffff167ffbfb5c3838edba49f86bf92ac506367c2bb6d474fa7cbadfd4f5618c9c665a48826040516124949190614155565b60405180910390a250505080806001019150506122b3565b50505050565b5f805f90505b601980549050811015612550578273ffffffffffffffffffffffffffffffffffffffff16601982815481106124f0576124ef614c86565b5b905f5260205f2090600202015f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612543576001915050612555565b80806001019150506124b8565b505f90505b919050565b6060805f60105467ffffffffffffffff81111561257a57612579614414565b5b6040519080825280602002602001820160405280156125a85781602001602082028036833780820191505090505b5090505f60105467ffffffffffffffff8111156125c8576125c7614414565b5b6040519080825280602002602001820160405280156125f65781602001602082028036833780820191505090505b5090505f80600190505b60105481116126dc575f73ffffffffffffffffffffffffffffffffffffffff1661262982611762565b73ffffffffffffffffffffffffffffffffffffffff16146126c95761264d81611762565b8483815181106126605761265f614c86565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808383815181106126ae576126ad614c86565b5b60200260200101818152505081806126c590614cb3565b9250505b80806126d490614cb3565b915050612600565b508067ffffffffffffffff8111156126f7576126f6614414565b5b6040519080825280602002602001820160405280156127255781602001602082028036833780820191505090505b5094508067ffffffffffffffff81111561274257612741614414565b5b6040519080825280602002602001820160405280156127705781602001602082028036833780820191505090505b5093505f5b8181101561282c578381815181106127905761278f614c86565b5b60200260200101518682815181106127ab576127aa614c86565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508281815181106127f8576127f7614c86565b5b602002602001015185828151811061281357612812614c86565b5b6020026020010181815250508080600101915050612775565b505050509091565b60605f805f60085f0160086001015460086002015460086003015483805461285b906147a8565b80601f0160208091040260200160405190810160405280929190818152602001828054612887906147a8565b80156128d25780601f106128a9576101008083540402835291602001916128d2565b820191905f5260205f20905b8154815290600101906020018083116128b557829003601f168201915b50505050509350935093509350935090919293565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b600f5481565b612983612fcd565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036129f3575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016129ea9190613ef2565b60405180910390fd5b6129fc81613229565b50565b5f805f90505b601580549050811015612a97578273ffffffffffffffffffffffffffffffffffffffff1660158281548110612a3d57612a3c614c86565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612a8a576001915050612a9c565b8080600101915050612a05565b505f90505b919050565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612b6b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612b7b5750612b7a82613683565b5b9050919050565b5f80612b8d836136ec565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612bff57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612bf69190614155565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b612c558383836001613725565b505050565b5f80612c65846136ec565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612ca657612ca58184866138e4565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612d3157612ce55f855f80613725565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614612db057600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ed5575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612ecc9190613ef2565b60405180910390fd5b5f612ee183835f612c5a565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612f5357816040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612f4a9190614155565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612fc7578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401612fbe939291906147d8565b60405180910390fd5b50505050565b612fd5612c41565b73ffffffffffffffffffffffffffffffffffffffff16612ff3611c71565b73ffffffffffffffffffffffffffffffffffffffff161461305257613016612c41565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016130499190613ef2565b60405180910390fd5b565b60605f60085f016130696008600101546139a7565b6130776008600201546139a7565b6130856008600301546139a7565b60405160200161309894939291906157a0565b60405160208183030381529060405290505f6130b382613a71565b9050806040516020016130c691906158b6565b6040516020818303038152906040529250505090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361314c575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016131439190613ef2565b60405180910390fd5b5f61315883835f612c5a565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146131ca575f6040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016131c19190613ef2565b60405180910390fd5b505050565b8060065f8481526020019081526020015f2090816131ed9190615092565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce78260405161321d9190614155565b60405180910390a15050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361335c57816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016133539190613ef2565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516134489190613e9a565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115613601578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02613498612c41565b8685856040518563ffffffff1660e01b81526004016134ba9493929190615929565b6020604051808303815f875af19250505080156134f557506040513d601f19601f820116820180604052508101906134f29190615987565b60015b613576573d805f8114613523576040519150601f19603f3d011682016040523d82523d5f602084013e613528565b606091505b505f81510361356e57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016135659190613ef2565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146135ff57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016135f69190613ef2565b60405180910390fd5b505b50505050565b606060405180602001604052805f815250905090565b606061362882612b82565b505f613632613607565b90505f8151116136505760405180602001604052805f81525061367b565b8061365a846139a7565b60405160200161366b92919061527b565b6040516020818303038152906040525b915050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061375d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561388f575f61376c84612b82565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156137d657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156137e957506137e781846128e7565b155b1561382b57826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016138229190613ef2565b60405180910390fd5b811561388d57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6138ef838383613bde565b6139a2575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361396357806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161395a9190614155565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401613999929190614070565b60405180910390fd5b505050565b60605f60016139b584613c9e565b0190505f8167ffffffffffffffff8111156139d3576139d2614414565b5b6040519080825280601f01601f191660200182016040528015613a055781602001600182028036833780820191505090505b5090505f82602001820190505b600115613a66578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581613a5b57613a5a614d21565b5b0494505f8503613a12575b819350505050919050565b60605f825103613a915760405180602001604052805f8152509050613bd9565b5f6040518060600160405280604081526020016159b36040913990505f600360028551613abe9190614c53565b613ac89190614d4e565b6004613ad49190614a68565b67ffffffffffffffff811115613aed57613aec614414565b5b6040519080825280601f01601f191660200182016040528015613b1f5781602001600182028036833780820191505090505b509050600182016020820185865187016020810180515f82525b82841015613b94576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865360018601955050613b39565b80825260038a510660018114613bb15760028114613bc457613bcc565b603d6001870353603d6002870353613bcc565b603d60018703535b5050505050505080925050505b919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613c9557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480613c565750613c5584846128e7565b5b80613c9457508273ffffffffffffffffffffffffffffffffffffffff16613c7c83612c08565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613cfa577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381613cf057613cef614d21565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310613d37576d04ee2d6d415b85acef81000000008381613d2d57613d2c614d21565b5b0492506020810190505b662386f26fc100008310613d6657662386f26fc100008381613d5c57613d5b614d21565b5b0492506010810190505b6305f5e1008310613d8f576305f5e1008381613d8557613d84614d21565b5b0492506008810190505b6127108310613db4576127108381613daa57613da9614d21565b5b0492506004810190505b60648310613dd75760648381613dcd57613dcc614d21565b5b0492506002810190505b600a8310613de6576001810190505b80915050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613e3481613e00565b8114613e3e575f80fd5b50565b5f81359050613e4f81613e2b565b92915050565b5f60208284031215613e6a57613e69613df8565b5b5f613e7784828501613e41565b91505092915050565b5f8115159050919050565b613e9481613e80565b82525050565b5f602082019050613ead5f830184613e8b565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613edc82613eb3565b9050919050565b613eec81613ed2565b82525050565b5f602082019050613f055f830184613ee3565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613f4d82613f0b565b613f578185613f15565b9350613f67818560208601613f25565b613f7081613f33565b840191505092915050565b5f6020820190508181035f830152613f938184613f43565b905092915050565b5f819050919050565b613fad81613f9b565b8114613fb7575f80fd5b50565b5f81359050613fc881613fa4565b92915050565b5f60208284031215613fe357613fe2613df8565b5b5f613ff084828501613fba565b91505092915050565b61400281613ed2565b811461400c575f80fd5b50565b5f8135905061401d81613ff9565b92915050565b5f806040838503121561403957614038613df8565b5b5f6140468582860161400f565b925050602061405785828601613fba565b9150509250929050565b61406a81613f9b565b82525050565b5f6040820190506140835f830185613ee3565b6140906020830184614061565b9392505050565b5f819050919050565b5f6140ba6140b56140b084613eb3565b614097565b613eb3565b9050919050565b5f6140cb826140a0565b9050919050565b5f6140dc826140c1565b9050919050565b6140ec816140d2565b82525050565b5f6020820190506141055f8301846140e3565b92915050565b5f6080820190508181035f8301526141238187613f43565b90506141326020830186614061565b61413f6040830185614061565b61414c6060830184614061565b95945050505050565b5f6020820190506141685f830184614061565b92915050565b5f805f6060848603121561418557614184613df8565b5b5f6141928682870161400f565b93505060206141a38682870161400f565b92505060406141b486828701613fba565b9150509250925092565b5f602082840312156141d3576141d2613df8565b5b5f6141e08482850161400f565b91505092915050565b5f80604083850312156141ff576141fe613df8565b5b5f61420c85828601613fba565b925050602061421d85828601613fba565b9150509250929050565b5f819050919050565b61423981614227565b82525050565b5f6020820190506142525f830184614230565b92915050565b5f614262826140c1565b9050919050565b61427281614258565b82525050565b5f60208201905061428b5f830184614269565b92915050565b61429a81613e80565b81146142a4575f80fd5b50565b5f813590506142b581614291565b92915050565b5f80604083850312156142d1576142d0613df8565b5b5f6142de8582860161400f565b92505060206142ef858286016142a7565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61432b81613ed2565b82525050565b61433a81613f9b565b82525050565b604082015f8201516143545f850182614322565b5060208201516143676020850182614331565b50505050565b5f6143788383614340565b60408301905092915050565b5f602082019050919050565b5f61439a826142f9565b6143a48185614303565b93506143af83614313565b805f5b838110156143df5781516143c6888261436d565b97506143d183614384565b9250506001810190506143b2565b5085935050505092915050565b5f6020820190508181035f8301526144048184614390565b905092915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61444a82613f33565b810181811067ffffffffffffffff8211171561446957614468614414565b5b80604052505050565b5f61447b613def565b90506144878282614441565b919050565b5f67ffffffffffffffff8211156144a6576144a5614414565b5b6144af82613f33565b9050602081019050919050565b828183375f83830152505050565b5f6144dc6144d78461448c565b614472565b9050828152602081018484840111156144f8576144f7614410565b5b6145038482856144bc565b509392505050565b5f82601f83011261451f5761451e61440c565b5b813561452f8482602086016144ca565b91505092915050565b5f805f80608085870312156145505761454f613df8565b5b5f61455d8782880161400f565b945050602061456e8782880161400f565b935050604061457f87828801613fba565b925050606085013567ffffffffffffffff8111156145a05761459f613dfc565b5b6145ac8782880161450b565b91505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6145ec8383614322565b60208301905092915050565b5f602082019050919050565b5f61460e826145b8565b61461881856145c2565b9350614623836145d2565b805f5b8381101561465357815161463a88826145e1565b9750614645836145f8565b925050600181019050614626565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6146948383614331565b60208301905092915050565b5f602082019050919050565b5f6146b682614660565b6146c0818561466a565b93506146cb8361467a565b805f5b838110156146fb5781516146e28882614689565b97506146ed836146a0565b9250506001810190506146ce565b5085935050505092915050565b5f6040820190508181035f8301526147208185614604565b9050818103602083015261473481846146ac565b90509392505050565b5f806040838503121561475357614752613df8565b5b5f6147608582860161400f565b92505060206147718582860161400f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806147bf57607f821691505b6020821081036147d2576147d161477b565b5b50919050565b5f6060820190506147eb5f830186613ee3565b6147f86020830185614061565b6148056040830184613ee3565b949350505050565b7f546f6b656e732068617665206e6f74206265656e2069737375656400000000005f82015250565b5f614841601b83613f15565b915061484c8261480d565b602082019050919050565b5f6020820190508181035f83015261486e81614835565b9050919050565b7f4e756d626572206f6620746f6b656e73206d757374206265206265747765656e5f8201527f203120616e642038000000000000000000000000000000000000000000000000602082015250565b5f6148cf602883613f15565b91506148da82614875565b604082019050919050565b5f6020820190508181035f8301526148fc816148c3565b9050919050565b7f4e6f7420656e6f75676820746f6b656e7320617661696c61626c6500000000005f82015250565b5f614937601b83613f15565b915061494282614903565b602082019050919050565b5f6020820190508181035f8301526149648161492b565b9050919050565b7f41646472657373206e6f742077686974656c69737465640000000000000000005f82015250565b5f61499f601783613f15565b91506149aa8261496b565b602082019050919050565b5f6020820190508181035f8301526149cc81614993565b9050919050565b7f4164647265737320626c61636b6c6973746564000000000000000000000000005f82015250565b5f614a07601383613f15565b9150614a12826149d3565b602082019050919050565b5f6020820190508181035f830152614a34816149fb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614a7282613f9b565b9150614a7d83613f9b565b9250828202614a8b81613f9b565b91508282048414831517614aa257614aa1614a3b565b5b5092915050565b5f81519050614ab781613fa4565b92915050565b5f60208284031215614ad257614ad1613df8565b5b5f614adf84828501614aa9565b91505092915050565b7f496e73756666696369656e7420555344432062616c616e6365000000000000005f82015250565b5f614b1c601983613f15565b9150614b2782614ae8565b602082019050919050565b5f6020820190508181035f830152614b4981614b10565b9050919050565b5f604082019050614b635f830185613ee3565b614b706020830184613ee3565b9392505050565b7f5553444320616c6c6f77616e636520746f6f206c6f77000000000000000000005f82015250565b5f614bab601683613f15565b9150614bb682614b77565b602082019050919050565b5f6020820190508181035f830152614bd881614b9f565b9050919050565b5f606082019050614bf25f830186613ee3565b614bff6020830185613ee3565b614c0c6040830184614061565b949350505050565b5f81519050614c2281614291565b92915050565b5f60208284031215614c3d57614c3c613df8565b5b5f614c4a84828501614c14565b91505092915050565b5f614c5d82613f9b565b9150614c6883613f9b565b9250828201905080821115614c8057614c7f614a3b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f614cbd82613f9b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614cef57614cee614a3b565b5b600182019050919050565b5f604082019050614d0d5f830185614061565b614d1a6020830184614061565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614d5882613f9b565b9150614d6383613f9b565b925082614d7357614d72614d21565b5b828204905092915050565b5f614d8882613f9b565b9150614d9383613f9b565b9250828203905081811115614dab57614daa614a3b565b5b92915050565b7f546f6b656e73206861766520616c7265616479206265656e20697373756564005f82015250565b5f614de5601f83613f15565b9150614df082614db1565b602082019050919050565b5f6020820190508181035f830152614e1281614dd9565b9050919050565b5f67ffffffffffffffff821115614e3357614e32614414565b5b614e3c82613f33565b9050602081019050919050565b5f614e5b614e5684614e19565b614472565b905082815260208101848484011115614e7757614e76614410565b5b614e82848285613f25565b509392505050565b5f82601f830112614e9e57614e9d61440c565b5b8151614eae848260208601614e49565b91505092915050565b5f60208284031215614ecc57614ecb613df8565b5b5f82015167ffffffffffffffff811115614ee957614ee8613dfc565b5b614ef584828501614e8a565b91505092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302614f5a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614f1f565b614f648683614f1f565b95508019841693508086168417925050509392505050565b5f614f96614f91614f8c84613f9b565b614097565b613f9b565b9050919050565b5f819050919050565b614faf83614f7c565b614fc3614fbb82614f9d565b848454614f2b565b825550505050565b5f90565b614fd7614fcb565b614fe2818484614fa6565b505050565b5b8181101561500557614ffa5f82614fcf565b600181019050614fe8565b5050565b601f82111561504a5761501b81614efe565b61502484614f10565b81016020851015615033578190505b61504761503f85614f10565b830182614fe7565b50505b505050565b5f82821c905092915050565b5f61506a5f198460080261504f565b1980831691505092915050565b5f615082838361505b565b9150826002028217905092915050565b61509b82613f0b565b67ffffffffffffffff8111156150b4576150b3614414565b5b6150be82546147a8565b6150c9828285615009565b5f60209050601f8311600181146150fa575f84156150e8578287015190505b6150f28582615077565b865550615159565b601f19841661510886614efe565b5f5b8281101561512f5784890151825560018201915060208501945060208101905061510a565b8683101561514c5784890151615148601f89168261505b565b8355505b6001600288020188555050505b505050505050565b5f69ffffffffffffffffffff82169050919050565b61517f81615161565b8114615189575f80fd5b50565b5f8151905061519a81615176565b92915050565b6151a981614227565b81146151b3575f80fd5b50565b5f815190506151c4816151a0565b92915050565b5f805f805f60a086880312156151e3576151e2613df8565b5b5f6151f08882890161518c565b9550506020615201888289016151b6565b945050604061521288828901614aa9565b935050606061522388828901614aa9565b92505060806152348882890161518c565b9150509295509295909350565b5f81905092915050565b5f61525582613f0b565b61525f8185615241565b935061526f818560208601613f25565b80840191505092915050565b5f615286828561524b565b9150615292828461524b565b91508190509392505050565b7f7b226e616d65223a2022363239204861726c656d204c4c4d222c0000000000005f82015250565b5f6152d2601a83615241565b91506152dd8261529e565b601a82019050919050565b7f226465736372697074696f6e223a20225257415420666f7220363239204861725f8201527f6c656d204c4c4d222c0000000000000000000000000000000000000000000000602082015250565b5f615342602983615241565b915061534d826152e8565b602982019050919050565b7f22696d616765223a2022697066733a2f2f516d59584d4633364d34746e344c6d5f8201527f7554576a617965626f625450737945727762673934717a4c415871644d47792260208201527f2c00000000000000000000000000000000000000000000000000000000000000604082015250565b5f6153d8604183615241565b91506153e382615358565b604182019050919050565b7f2261747472696275746573223a205b00000000000000000000000000000000005f82015250565b5f615422600f83615241565b915061542d826153ee565b600f82019050919050565b7f7b2274726169745f74797065223a20224c6f636174696f6e222c2276616c75655f8201527f223a202200000000000000000000000000000000000000000000000000000000602082015250565b5f615492602483615241565b915061549d82615438565b602482019050919050565b5f81546154b4816147a8565b6154be8186615241565b9450600182165f81146154d857600181146154ed5761551f565b60ff198316865281151582028601935061551f565b6154f685614efe565b5f5b83811015615517578154818901526001820191506020810190506154f8565b838801955050505b50505092915050565b7f227d2c00000000000000000000000000000000000000000000000000000000005f82015250565b5f61555c600383615241565b915061556782615528565b600382019050919050565b7f7b2274726169745f74797065223a20224c6f742053697a65222c2276616c75655f8201527f223a200000000000000000000000000000000000000000000000000000000000602082015250565b5f6155cc602383615241565b91506155d782615572565b602382019050919050565b7f7d2c0000000000000000000000000000000000000000000000000000000000005f82015250565b5f615616600283615241565b9150615621826155e2565b600282019050919050565b7f7b2274726169745f74797065223a2022546f74616c205072696365222c2276615f8201527f6c7565223a200000000000000000000000000000000000000000000000000000602082015250565b5f615686602683615241565b91506156918261562c565b602682019050919050565b7f7b2274726169745f74797065223a20225461782041737365737365642056616c5f8201527f7565222c2276616c7565223a2000000000000000000000000000000000000000602082015250565b5f6156f6602d83615241565b91506157018261569c565b602d82019050919050565b7f7d000000000000000000000000000000000000000000000000000000000000005f82015250565b5f615740600183615241565b915061574b8261570c565b600182019050919050565b7f5d7d0000000000000000000000000000000000000000000000000000000000005f82015250565b5f61578a600283615241565b915061579582615756565b600282019050919050565b5f6157aa826152c6565b91506157b582615336565b91506157c0826153cc565b91506157cb82615416565b91506157d682615486565b91506157e282876154a8565b91506157ed82615550565b91506157f8826155c0565b9150615804828661524b565b915061580f8261560a565b915061581a8261567a565b9150615826828561524b565b91506158318261560a565b915061583c826156ea565b9150615848828461524b565b915061585382615734565b915061585e8261577e565b915081905095945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000005f82015250565b5f6158a0601d83615241565b91506158ab8261586c565b601d82019050919050565b5f6158c082615894565b91506158cc828461524b565b915081905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6158fb826158d7565b61590581856158e1565b9350615915818560208601613f25565b61591e81613f33565b840191505092915050565b5f60808201905061593c5f830187613ee3565b6159496020830186613ee3565b6159566040830185614061565b818103606083015261596881846158f1565b905095945050505050565b5f8151905061598181613e2b565b92915050565b5f6020828403121561599c5761599b613df8565b5b5f6159a984828501615973565b9150509291505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220f5a18b3e31596fd196affba24acddd964824648e19f76e12a07d7dd05e90caa364736f6c634300081a0033