6101006040526001600b555f600f5f6101000a81548160ff0219169083151502179055503480156200002f575f80fd5b5060405180602001604052805f8152506040518060400160405280600681526020017f464c4f57455200000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f464c4f57455200000000000000000000000000000000000000000000000000008152506012620186a06001335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000127575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200011e919062000490565b60405180910390fd5b62000138816200036f60201b60201c565b506200014a866200043060201b60201c565b6200015a6200044560201b60201c565b60048190555084600890816200017191906200070f565b5083600990816200018391906200070f565b508260ff1660808160ff1681525050608051600a620001a391906200097c565b60c0818152505060c05181620001ba9190620009cc565b60e0818152505060c05182620001d19190620009cc565b60a081815250506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060a05160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60a051604051620002d2919062000a27565b60405180910390a35050505050506040518060400160405280601181526020017f68747470733a2f2f692e6962622e636f2f000000000000000000000000000000815250600c90816200032691906200070f565b50606460026012600a6200033b91906200097c565b620186a06200034b9190620009cc565b620003579190620009cc565b62000363919062000a6f565b600e8190555062000aa6565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600390816200044191906200070f565b5050565b5f6001905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000478826200044d565b9050919050565b6200048a816200046c565b82525050565b5f602082019050620004a55f8301846200047f565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200052757607f821691505b6020821081036200053d576200053c620004e2565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005a17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000564565b620005ad868362000564565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620005f7620005f1620005eb84620005c5565b620005ce565b620005c5565b9050919050565b5f819050919050565b6200061283620005d7565b6200062a6200062182620005fe565b84845462000570565b825550505050565b5f90565b6200064062000632565b6200064d81848462000607565b505050565b5b818110156200067457620006685f8262000636565b60018101905062000653565b5050565b601f821115620006c3576200068d8162000543565b620006988462000555565b81016020851015620006a8578190505b620006c0620006b78562000555565b83018262000652565b50505b505050565b5f82821c905092915050565b5f620006e55f1984600802620006c8565b1980831691505092915050565b5f620006ff8383620006d4565b9150826002028217905092915050565b6200071a82620004ab565b67ffffffffffffffff811115620007365762000735620004b5565b5b6200074282546200050f565b6200074f82828562000678565b5f60209050601f83116001811462000785575f841562000770578287015190505b6200077c8582620006f2565b865550620007eb565b601f198416620007958662000543565b5f5b82811015620007be5784890151825560018201915060208501945060208101905062000797565b86831015620007de5784890151620007da601f891682620006d4565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200087d57808604811115620008555762000854620007f3565b5b6001851615620008655780820291505b8081029050620008758562000820565b945062000835565b94509492505050565b5f8262000897576001905062000969565b81620008a6575f905062000969565b8160018114620008bf5760028114620008ca5762000900565b600191505062000969565b60ff841115620008df57620008de620007f3565b5b8360020a915084821115620008f957620008f8620007f3565b5b5062000969565b5060208310610133831016604e8410600b84101617156200093a5782820a905083811115620009345762000933620007f3565b5b62000969565b6200094984848460016200082c565b92509050818404811115620009635762000962620007f3565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200098882620005c5565b9150620009958362000970565b9250620009c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000886565b905092915050565b5f620009d882620005c5565b9150620009e583620005c5565b9250828202620009f581620005c5565b9150828204841483151762000a0f5762000a0e620007f3565b5b5092915050565b62000a2181620005c5565b82525050565b5f60208201905062000a3c5f83018462000a16565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000a7b82620005c5565b915062000a8883620005c5565b92508262000a9b5762000a9a62000a42565b5b828204905092915050565b60805160a05160c05160e051615f7c62000b125f395f8181610e68015281816111c4015281816120f0015281816125f301528181612f9501528181612fcc0152818161311c015261314801525f61123101525f8181610c9701526111f301525f6110060152615f7c5ff3fe608060405234801561000f575f80fd5b5060043610610245575f3560e01c806370a0823111610139578063c5b8f772116100b6578063e985e9c51161007a578063e985e9c51461074d578063f242432a1461077d578063f28ca1dd14610799578063f2fde38b146107b7578063f8b45b05146107d357610245565b8063c5b8f77214610683578063c87b56dd146106b3578063d547cfb7146106e3578063dd62ed3e14610701578063e0df5b6f1461073157610245565b806399a2557a116100fd57806399a2557a146105b95780639b19251a146105e9578063a014e6e214610619578063a22cb46514610637578063a9059cbb1461065357610245565b806370a0823114610513578063715018a6146105435780638462151c1461054d5780638da5cb5b1461057d57806395d89b411461059b57610245565b806323b872dd116101c75780634eabf2c61161018b5780634eabf2c61461049557806353d6fd591461049f5780635afcc2f5146104bb5780635d0044ca146104d95780636d6a6a4d146104f557610245565b806323b872dd146103cb5780632d760d57146103fb5780632eb2c2d61461042b578063313ce567146104475780634e1273f41461046557610245565b8063095ea7b31161020e578063095ea7b3146103135780630a702e8d146103435780630e89341c1461036157806318160ddd1461039157806318d217c3146103af57610245565b8062fdd58e1461024957806301ffc9a71461027957806302fe5305146102a957806306fdde03146102c5578063081812fc146102e3575b5f80fd5b610263600480360381019061025e9190614469565b6107f1565b60405161027091906144b6565b60405180910390f35b610293600480360381019061028e9190614524565b6108be565b6040516102a09190614569565b60405180910390f35b6102c360048036038101906102be91906146be565b610a67565b005b6102cd610a7b565b6040516102da919061477f565b60405180910390f35b6102fd60048036038101906102f8919061479f565b610b07565b60405161030a91906147d9565b60405180910390f35b61032d60048036038101906103289190614469565b610b37565b60405161033a9190614569565b60405180910390f35b61034b610c71565b6040516103589190614569565b60405180910390f35b61037b6004803603810190610376919061479f565b610c83565b604051610388919061477f565b60405180910390f35b610399610c95565b6040516103a691906144b6565b60405180910390f35b6103c960048036038101906103c491906146be565b610cb9565b005b6103e560048036038101906103e091906147f2565b610cd4565b6040516103f29190614569565b60405180910390f35b61041560048036038101906104109190614842565b610f06565b60405161042291906144b6565b60405180910390f35b610445600480360381019061044091906149f4565b610f6c565b005b61044f611004565b60405161045c9190614ada565b60405180910390f35b61047f600480360381019061047a9190614bb3565b611028565b60405161048c9190614ce0565b60405180910390f35b61049d611130565b005b6104b960048036038101906104b49190614d2a565b611162565b005b6104c36111c2565b6040516104d091906144b6565b60405180910390f35b6104f360048036038101906104ee919061479f565b6111e6565b005b6104fd61122f565b60405161050a91906144b6565b60405180910390f35b61052d60048036038101906105289190614d68565b611253565b60405161053a91906144b6565b60405180910390f35b61054b611299565b005b61056760048036038101906105629190614d68565b6112ac565b6040516105749190614ce0565b60405180910390f35b61058561132d565b60405161059291906147d9565b60405180910390f35b6105a3611354565b6040516105b0919061477f565b60405180910390f35b6105d360048036038101906105ce9190614842565b6113e0565b6040516105e09190614ce0565b60405180910390f35b61060360048036038101906105fe9190614d68565b611561565b6040516106109190614569565b60405180910390f35b61062161157e565b60405161062e91906144b6565b60405180910390f35b610651600480360381019061064c9190614d2a565b611584565b005b61066d60048036038101906106689190614469565b61159a565b60405161067a9190614569565b60405180910390f35b61069d60048036038101906106989190614469565b6115b7565b6040516106aa9190614569565b60405180910390f35b6106cd60048036038101906106c8919061479f565b61160f565b6040516106da919061477f565b60405180910390f35b6106eb6119b8565b6040516106f8919061477f565b60405180910390f35b61071b60048036038101906107169190614d93565b611a44565b60405161072891906144b6565b60405180910390f35b61074b600480360381019061074691906146be565b611ac6565b005b61076760048036038101906107629190614d93565b611ae1565b6040516107749190614569565b60405180910390f35b61079760048036038101906107929190614dd1565b611b6f565b005b6107a1611c0f565b6040516107ae919061477f565b60405180910390f35b6107d160048036038101906107cc9190614d68565b611c9b565b005b6107db611d1f565b6040516107e891906144b6565b60405180910390f35b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610857576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108a68260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20611d2590919063ffffffff16565b156108b457600190506108b8565b5f90505b92915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061098857507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806109f057507fc5b8f772000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a2057506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a505750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a605750610a5f82611d53565b5b9050919050565b610a6f611dbc565b610a7881611e43565b50565b60088054610a8890614e91565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab490614e91565b8015610aff5780601f10610ad657610100808354040283529160200191610aff565b820191905f5260205f20905b815481529060010190602001808311610ae257829003601f168201915b505050505081565b6005602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80339050610b44611e56565b83108015610b5157505f83115b15610c5a57610b6081846115b7565b610ba157806040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610b9891906147d9565b60405180910390fd5b8360055f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610c4d91906144b6565b60405180910390a3610c66565b610c65818585611e5f565b5b600191505092915050565b600f5f9054906101000a900460ff1681565b6060610c8e8261160f565b9050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610cc1611dbc565b80600c9081610cd0919061505e565b5050565b5f610cdd611e56565b821015610ee257610d338260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20611d2590919063ffffffff16565b610d7457836040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610d6b91906147d9565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610db75750610db58433611ae1565b155b8015610e1f575060055f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610e6157336040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610e5891906147d9565b60405180910390fd5b610e8d84847f00000000000000000000000000000000000000000000000000000000000000005f611e71565b60055f8381526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610edd848484600160405180602001604052805f8152505f611f63565b610efb565b610eed843384612252565b610efa8484846001611e71565b5b600190509392505050565b5f610f63838484610f17919061515a565b60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206122e49092919063ffffffff16565b90509392505050565b610f746123a2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610fba5750610fb985610fb46123a2565b611ae1565b5b610ff0576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ffd85858585856123a9565b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60608151835114611065576040517f7801f4e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f835167ffffffffffffffff8111156110815761108061459a565b5b6040519080825280602002602001820160405280156110af5781602001602082028036833780820191505090505b5090505f5b8451811015611125576110fb8582815181106110d3576110d261518d565b5b60200260200101518583815181106110ee576110ed61518d565b5b60200260200101516107f1565b82828151811061110e5761110d61518d565b5b6020026020010181815250508060010190506110b4565b508091505092915050565b611138611dbc565b600f5f9054906101000a900460ff1615600f5f6101000a81548160ff021916908315150217905550565b61116a611dbc565b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6111ee611dbc565b6064817f000000000000000000000000000000000000000000000000000000000000000061121c91906151ba565b6112269190615228565b600e8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6112a1611dbc565b6112aa5f612778565b565b60605f6112b7612839565b0361130c575f67ffffffffffffffff8111156112d6576112d561459a565b5b6040519080825280602002602001820160405280156113045781602001602082028036833780820191505090505b509050611328565b61132582611318612859565b611320611e56565b6113e0565b90505b919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6009805461136190614e91565b80601f016020809104026020016040519081016040528092919081815260200182805461138d90614e91565b80156113d85780601f106113af576101008083540402835291602001916113d8565b820191905f5260205f20905b8154815290600101906020018083116113bb57829003601f168201915b505050505081565b606081831061141b576040517f32c1995a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611423612859565b83101561143557611432612859565b92505b5f61143e611e56565b90508083111561144c578092505b5f8385101561146757611460868686610f06565b905061146b565b5f90505b5f8167ffffffffffffffff8111156114865761148561459a565b5b6040519080825280602002602001820160405280156114b45781602001602082028036833780820191505090505b5090505f60015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f80885f915091505b8481146115515761151a8284611d2590919063ffffffff16565b1561154657818482806001019350815181106115395761153861518d565b5b6020026020010181815250505b816001019150611500565b5050819450505050509392505050565b600a602052805f5260405f205f915054906101000a900460ff1681565b600b5481565b61159661158f6123a2565b8383612861565b5050565b5f803390506115ac8185856001611e71565b600191505092915050565b5f6116078260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20611d2590919063ffffffff16565b905092915050565b6060611619611e56565b8210611651576040517f7801f4e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61165b836129c8565b5111156116725761166b826129c8565b90506119b3565b5f600d805461168090614e91565b905011156116ba57600d61169383612a5a565b6040516020016116a4929190615312565b60405160208183030381529060405290506119b3565b5f826040516020016116cc9190615355565b6040516020818303038152906040528051906020012060f81c90506060806060603f8460ff1611611787576040518060400160405280601581526020017f70784d5a316a462f4e65786f706574616c2e676966000000000000000000000081525092506040518060400160405280600981526020017f4e65786f706574616c000000000000000000000000000000000000000000000081525091506040518060e0016040528060b18152602001615e9660b191399050611957565b607f8460ff1611611822576040518060400160405280601681526020017f6844344a4830542f41737472616c697269732e6769660000000000000000000081525092506040518060400160405280600a81526020017f41737472616c697269730000000000000000000000000000000000000000000081525091506040518060e0016040528060b28152602001615c8160b291399050611956565b60bf8460ff16116118bd576040518060400160405280601481526020017f56535852386e342f4e6562756c69756d2e67696600000000000000000000000081525092506040518060400160405280600881526020017f4e6562756c69756d00000000000000000000000000000000000000000000000081525091506040518060e0016040528060b08152602001615de660b091399050611955565b60ff8460ff1611611954576040518060400160405280601781526020017f434868703243432f4c756d696e61666c6f72612e67696600000000000000000081525092506040518060400160405280600b81526020017f4c756d696e61666c6f726100000000000000000000000000000000000000000081525091506040518060e0016040528060b38152602001615d3360b3913990505b5b5b5b5f61196187612a5a565b82600c866040516020016119789493929190615473565b6040516020818303038152906040529050808360405160200161199c9291906155d5565b604051602081830303815290604052955050505050505b919050565b600d80546119c590614e91565b80601f01602080910402602001604051908101604052809291908181526020018280546119f190614e91565b8015611a3c5780601f10611a1357610100808354040283529160200191611a3c565b820191905f5260205f20905b815481529060010190602001808311611a1f57829003601f168201915b505050505081565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611ace611dbc565b80600d9081611add919061505e565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b611b776123a2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611bbd5750611bbc85611bb76123a2565b611ae1565b5b15611bd657611bd185858585856001611f63565b611c08565b6040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b600c8054611c1c90614e91565b80601f0160208091040260200160405190810160405280929190818152602001828054611c4890614e91565b8015611c935780601f10611c6a57610100808354040283529160200191611c93565b820191905f5260205f20905b815481529060010190602001808311611c7657829003601f168201915b505050505081565b611ca3611dbc565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d13575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611d0a91906147d9565b60405180910390fd5b611d1c81612778565b50565b600e5481565b5f80600160ff8416855f015f600887901c81526020019081526020015f2054901c1690508091505092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611dc46123a2565b73ffffffffffffffffffffffffffffffffffffffff16611de261132d565b73ffffffffffffffffffffffffffffffffffffffff1614611e4157611e056123a2565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611e3891906147d9565b60405180910390fd5b565b8060039081611e52919061505e565b5050565b5f600454905090565b611e6c8383836001612bb3565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ee1575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611ed891906147d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f51575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611f4891906147d9565b60405180910390fd5b611f5d84848484612d82565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611fc8576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611fd16123a2565b90505f611fdd866131ab565b9050611feb8289898461321e565b60018514801561204657506120458660015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20611d2590919063ffffffff16565b5b1561211a5761209a8660015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2061322490919063ffffffff16565b6120e98660015f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2061325390919063ffffffff16565b61211588887f00000000000000000000000000000000000000000000000000000000000000005f611e71565b61214c565b6040517f37dbad3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff8916915073ffffffffffffffffffffffffffffffffffffffff8a1690508682827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a48873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628b8b60405161221d929190615619565b60405180910390a4612231848b8b86613281565b841561224657612245848b8b8b8b8b6134b5565b5b50505050505050505050565b5f61225d8484611a44565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146122de57818110156122cf578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016122c693929190615640565b60405180910390fd5b6122dd84848484035f612bb3565b5b50505050565b5f80600884901c90505f60ff85169050610101818501106123705761231d81875f015f8581526020019081526020015f2054901c6138b1565b92505f6008828601901c8301905060ff8286011694505f91508260010192505b80831461236e5761235f875f015f8581526020019081526020015f20546138b1565b8401935082600101925061233d565b505b612395846101000382885f015f8681526020019081526020015f2054901c901b6138b1565b8301925050509392505050565b5f33905090565b81518351146123e4576040517f7801f4e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612449576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6124526123a2565b90506124608187878761321e565b5f5b84518110156125e9575f85828151811061247f5761247e61518d565b5b602002602001015190505f85838151811061249d5761249c61518d565b5b6020026020010151905060018114801561250257506125018260015f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20611d2590919063ffffffff16565b5b156125aa576125568260015f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2061322490919063ffffffff16565b6125a58260015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2061325390919063ffffffff16565b6125dc565b6040517f37dbad3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050806001019050612462565b50612622868686517f000000000000000000000000000000000000000000000000000000000000000061261c91906151ba565b5f611e71565b5f805f600187516126339190615675565b905073ffffffffffffffffffffffffffffffffffffffff8916915073ffffffffffffffffffffffffffffffffffffffff88169250602087015183837fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a460025b8181146126d4578060200288015184847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4600181019050612695565b508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8a8a60405161274b9291906156a8565b60405180910390a461275f848a8a8a613281565b61276d848a8a8a8a8a6138fa565b505050505050505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f612842612859565b61284a611e56565b612854919061515a565b905090565b5f6001905090565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c69061574d565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516129bb9190614569565b60405180910390a3505050565b6060600380546129d790614e91565b80601f0160208091040260200160405190810160405280929190818152602001828054612a0390614e91565b8015612a4e5780601f10612a2557610100808354040283529160200191612a4e565b820191905f5260205f20905b815481529060010190602001808311612a3157829003601f168201915b50505050509050919050565b60605f8203612aa0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612bae565b5f8290505f5b5f8214612acf578080612ab89061576b565b915050600a82612ac89190615228565b9150612aa6565b5f8167ffffffffffffffff811115612aea57612ae961459a565b5b6040519080825280601f01601f191660200182016040528015612b1c5781602001600182028036833780820191505090505b5090505b5f8514612ba757600182612b34919061515a565b9150600a85612b4391906157b2565b6030612b4f9190615675565b60f81b818381518110612b6557612b6461518d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85612ba09190615228565b9450612b20565b8093505050505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612c23575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401612c1a91906147d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c93575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401612c8a91906147d9565b60405180910390fd5b8160075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015612d7c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051612d7391906144b6565b60405180910390a35b50505050565b5f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083821015612e4d578582856040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401612e4493929190615640565b60405180910390fd5b83820360065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555083810160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612f3291906144b6565b60405180910390a382156131a3575f600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905080613017575f7f00000000000000000000000000000000000000000000000000000000000000008685612fc0919061515a565b612fca9190615228565b7f000000000000000000000000000000000000000000000000000000000000000085612ff69190615228565b613000919061515a565b90505f811115613015576130148882613abe565b5b505b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166131a1576001600b541480156130745750805b80156130b2575061308361132d565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15613119576001600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506002600b819055506131a0565b5f7f0000000000000000000000000000000000000000000000000000000000000000836131469190615228565b7f000000000000000000000000000000000000000000000000000000000000000087856131739190615675565b61317d9190615228565b613187919061515a565b90505f81111561319e5761319b8782613eae565b50505b505b5b505b505050505050565b6060600167ffffffffffffffff8111156131c8576131c761459a565b5b6040519080825280602002602001820160405280156131f65781602001602082028036833780820191505090505b50905081815f8151811061320d5761320c61518d565b5b602002602001018181525050919050565b50505050565b60ff81166001901b19825f015f600884901c81526020019081526020015f205f82825416925050819055505050565b60ff81166001901b825f015f600884901c81526020019081526020015f205f82825417925050819055505050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166134a357600e5460065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115613351576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133489061582c565b60405180910390fd5b600f5f9054906101000a900460ff16156134a2574360105f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106133e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133db906158ba565b60405180910390fd5b4360105f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8273ffffffffffffffffffffffffffffffffffffffff163b14801561346257505f3273ffffffffffffffffffffffffffffffffffffffff163b145b6134a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161349890615948565b60405180910390fd5b5b5b6134af8484848461421d565b50505050565b6134d48473ffffffffffffffffffffffffffffffffffffffff16614223565b156138a9578373ffffffffffffffffffffffffffffffffffffffff166301ffc9a77fd9b67a26000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016135329190615975565b602060405180830381865afa15801561354d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061357191906159a2565b15613712578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016135b7959493929190615a1f565b6020604051808303815f875af19250505080156135f257506040513d601f19601f820116820180604052508101906135ef9190615a8b565b60015b61368e576135fe615ac2565b806308c379a00361365a5750613612615ae1565b8061361d575061365c565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613651919061477f565b60405180910390fd5b505b6040517f9c05499b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461370c576040517f9c05499b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506138a8565b8373ffffffffffffffffffffffffffffffffffffffff1663150b7a02878786856040518563ffffffff1660e01b81526004016137519493929190615b70565b6020604051808303815f875af192505050801561378c57506040513d601f19601f820116820180604052508101906137899190615a8b565b60015b61382857613798615ac2565b806308c379a0036137f457506137ac615ae1565b806137b757506137f6565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137eb919061477f565b60405180910390fd5b505b6040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146138a6576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b5b505050505050565b5f8019808314600382048460011c1684039350600582048460021c16600583048516019350601182048460041c850116935060ff8204840260f81c8160081b1792505050919050565b6139198473ffffffffffffffffffffffffffffffffffffffff16614223565b15613ab6578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161395f959493929190615bba565b6020604051808303815f875af192505050801561399a57506040513d601f19601f820116820180604052508101906139979190615a8b565b60015b613a36576139a6615ac2565b806308c379a003613a0257506139ba615ae1565b806139c55750613a04565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139f9919061477f565b60405180910390fd5b505b6040517f9c05499b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614613ab4576040517f9c05499b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613b23576040517fb817eee700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613b2c6123a2565b90505f613b37611e56565b90505f8367ffffffffffffffff811115613b5457613b5361459a565b5b604051908082528060200260200182016040528015613b825781602001602082028036833780820191505090505b5090505f8467ffffffffffffffff811115613ba057613b9f61459a565b5b604051908082528060200260200182016040528015613bce5781602001602082028036833780820191505090505b5090505f5b85811015613cce576001838281518110613bf057613bef61518d565b5b6020026020010181815250505f613c4c8560015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2061423490919063ffffffff16565b905080838381518110613c6257613c6161518d565b5b602002602001018181525050613cbd8160015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2061322490919063ffffffff16565b809450508080600101915050613bd3565b50613cdb84875f8461321e565b5f80600187613cea9190615675565b905073ffffffffffffffffffffffffffffffffffffffff8816915060208301515f837fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a460025b818114613d7257806020028401515f847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4600181019050613d33565b5060018703613e19575f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62865f81518110613df457613df361518d565b5b60200260200101516001604051613e0c929190615c59565b60405180910390a4613e98565b5f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8688604051613e8f9291906156a8565b60405180910390a45b613ea486895f86613281565b5050505050505050565b6060805f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603613f16576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8303613f4f576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613f586123a2565b90508367ffffffffffffffff811115613f7457613f7361459a565b5b604051908082528060200260200182016040528015613fa25781602001602082028036833780820191505090505b5092508367ffffffffffffffff811115613fbf57613fbe61459a565b5b604051908082528060200260200182016040528015613fed5781602001602082028036833780820191505090505b5091505f613ff9611e56565b905080857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff031015614029575f80fd5b5f5b85811015614083578082018582815181106140495761404861518d565b5b602002602001018181525050600184828151811061406a5761406961518d565b5b602002602001018181525050808060010191505061402b565b50614090825f888761321e565b6140e1818660015f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206142ad9092919063ffffffff16565b8460045f8282546140f29190615675565b925050819055505f8086836141079190615675565b905073ffffffffffffffffffffffffffffffffffffffff8816915082825f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4600183015b8181146141875780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a460018101905061414e565b508773ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb89896040516141fe9291906156a8565b60405180910390a4614212845f8a89613281565b505050509250929050565b50505050565b5f80823b90505f8111915050919050565b5f805f801992508360081c9150815f5284602052831960ff1660405f2054811b811c915082158217614282575b600115614281578383019250825f5260405f205491508215821715614261575b5b505f81146142a5576142938161432a565b600883901b1792508383115f03831792505b505092915050565b5f1960ff8316846020528360081c5f52610101838201106143105760405f2082821b815417815560015f510182850160081c5f510160ff8487011695505f93505b80821461430957815f528460405f20556001820191506142ee565b815f525050505b60405f208284610100031c821b8154178155505050505050565b5f816fffffffffffffffffffffffffffffffff1060071b821560081b17905081811c67ffffffffffffffff1060061b8117905081811c63ffffffff1060051b8117905081811c61ffff1060041b8117905081811c60ff1060031b811790507f07060605060205040602030205040301060502050303040105050304000000006f8421084210842108cc6318c6db6d54be83831c1c601f161a81179050919050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f614405826143dc565b9050919050565b614415816143fb565b811461441f575f80fd5b50565b5f813590506144308161440c565b92915050565b5f819050919050565b61444881614436565b8114614452575f80fd5b50565b5f813590506144638161443f565b92915050565b5f806040838503121561447f5761447e6143d4565b5b5f61448c85828601614422565b925050602061449d85828601614455565b9150509250929050565b6144b081614436565b82525050565b5f6020820190506144c95f8301846144a7565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b614503816144cf565b811461450d575f80fd5b50565b5f8135905061451e816144fa565b92915050565b5f60208284031215614539576145386143d4565b5b5f61454684828501614510565b91505092915050565b5f8115159050919050565b6145638161454f565b82525050565b5f60208201905061457c5f83018461455a565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6145d08261458a565b810181811067ffffffffffffffff821117156145ef576145ee61459a565b5b80604052505050565b5f6146016143cb565b905061460d82826145c7565b919050565b5f67ffffffffffffffff82111561462c5761462b61459a565b5b6146358261458a565b9050602081019050919050565b828183375f83830152505050565b5f61466261465d84614612565b6145f8565b90508281526020810184848401111561467e5761467d614586565b5b614689848285614642565b509392505050565b5f82601f8301126146a5576146a4614582565b5b81356146b5848260208601614650565b91505092915050565b5f602082840312156146d3576146d26143d4565b5b5f82013567ffffffffffffffff8111156146f0576146ef6143d8565b5b6146fc84828501614691565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561473c578082015181840152602081019050614721565b5f8484015250505050565b5f61475182614705565b61475b818561470f565b935061476b81856020860161471f565b6147748161458a565b840191505092915050565b5f6020820190508181035f8301526147978184614747565b905092915050565b5f602082840312156147b4576147b36143d4565b5b5f6147c184828501614455565b91505092915050565b6147d3816143fb565b82525050565b5f6020820190506147ec5f8301846147ca565b92915050565b5f805f60608486031215614809576148086143d4565b5b5f61481686828701614422565b935050602061482786828701614422565b925050604061483886828701614455565b9150509250925092565b5f805f60608486031215614859576148586143d4565b5b5f61486686828701614422565b935050602061487786828701614455565b925050604061488886828701614455565b9150509250925092565b5f67ffffffffffffffff8211156148ac576148ab61459a565b5b602082029050602081019050919050565b5f80fd5b5f6148d36148ce84614892565b6145f8565b905080838252602082019050602084028301858111156148f6576148f56148bd565b5b835b8181101561491f578061490b8882614455565b8452602084019350506020810190506148f8565b5050509392505050565b5f82601f83011261493d5761493c614582565b5b813561494d8482602086016148c1565b91505092915050565b5f67ffffffffffffffff8211156149705761496f61459a565b5b6149798261458a565b9050602081019050919050565b5f61499861499384614956565b6145f8565b9050828152602081018484840111156149b4576149b3614586565b5b6149bf848285614642565b509392505050565b5f82601f8301126149db576149da614582565b5b81356149eb848260208601614986565b91505092915050565b5f805f805f60a08688031215614a0d57614a0c6143d4565b5b5f614a1a88828901614422565b9550506020614a2b88828901614422565b945050604086013567ffffffffffffffff811115614a4c57614a4b6143d8565b5b614a5888828901614929565b935050606086013567ffffffffffffffff811115614a7957614a786143d8565b5b614a8588828901614929565b925050608086013567ffffffffffffffff811115614aa657614aa56143d8565b5b614ab2888289016149c7565b9150509295509295909350565b5f60ff82169050919050565b614ad481614abf565b82525050565b5f602082019050614aed5f830184614acb565b92915050565b5f67ffffffffffffffff821115614b0d57614b0c61459a565b5b602082029050602081019050919050565b5f614b30614b2b84614af3565b6145f8565b90508083825260208201905060208402830185811115614b5357614b526148bd565b5b835b81811015614b7c5780614b688882614422565b845260208401935050602081019050614b55565b5050509392505050565b5f82601f830112614b9a57614b99614582565b5b8135614baa848260208601614b1e565b91505092915050565b5f8060408385031215614bc957614bc86143d4565b5b5f83013567ffffffffffffffff811115614be657614be56143d8565b5b614bf285828601614b86565b925050602083013567ffffffffffffffff811115614c1357614c126143d8565b5b614c1f85828601614929565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614c5b81614436565b82525050565b5f614c6c8383614c52565b60208301905092915050565b5f602082019050919050565b5f614c8e82614c29565b614c988185614c33565b9350614ca383614c43565b805f5b83811015614cd3578151614cba8882614c61565b9750614cc583614c78565b925050600181019050614ca6565b5085935050505092915050565b5f6020820190508181035f830152614cf88184614c84565b905092915050565b614d098161454f565b8114614d13575f80fd5b50565b5f81359050614d2481614d00565b92915050565b5f8060408385031215614d4057614d3f6143d4565b5b5f614d4d85828601614422565b9250506020614d5e85828601614d16565b9150509250929050565b5f60208284031215614d7d57614d7c6143d4565b5b5f614d8a84828501614422565b91505092915050565b5f8060408385031215614da957614da86143d4565b5b5f614db685828601614422565b9250506020614dc785828601614422565b9150509250929050565b5f805f805f60a08688031215614dea57614de96143d4565b5b5f614df788828901614422565b9550506020614e0888828901614422565b9450506040614e1988828901614455565b9350506060614e2a88828901614455565b925050608086013567ffffffffffffffff811115614e4b57614e4a6143d8565b5b614e57888289016149c7565b9150509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680614ea857607f821691505b602082108103614ebb57614eba614e64565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302614f1d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614ee2565b614f278683614ee2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f614f62614f5d614f5884614436565b614f3f565b614436565b9050919050565b5f819050919050565b614f7b83614f48565b614f8f614f8782614f69565b848454614eee565b825550505050565b5f90565b614fa3614f97565b614fae818484614f72565b505050565b5b81811015614fd157614fc65f82614f9b565b600181019050614fb4565b5050565b601f82111561501657614fe781614ec1565b614ff084614ed3565b81016020851015614fff578190505b61501361500b85614ed3565b830182614fb3565b50505b505050565b5f82821c905092915050565b5f6150365f198460080261501b565b1980831691505092915050565b5f61504e8383615027565b9150826002028217905092915050565b61506782614705565b67ffffffffffffffff8111156150805761507f61459a565b5b61508a8254614e91565b615095828285614fd5565b5f60209050601f8311600181146150c6575f84156150b4578287015190505b6150be8582615043565b865550615125565b601f1984166150d486614ec1565b5f5b828110156150fb578489015182556001820191506020850194506020810190506150d6565b868310156151185784890151615114601f891682615027565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61516482614436565b915061516f83614436565b92508282039050818111156151875761518661512d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6151c482614436565b91506151cf83614436565b92508282026151dd81614436565b915082820484148315176151f4576151f361512d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61523282614436565b915061523d83614436565b92508261524d5761524c6151fb565b5b828204905092915050565b5f81905092915050565b5f815461526e81614e91565b6152788186615258565b9450600182165f811461529257600181146152a7576152d9565b60ff19831686528115158202860193506152d9565b6152b085614ec1565b5f5b838110156152d1578154818901526001820191506020810190506152b2565b838801955050505b50505092915050565b5f6152ec82614705565b6152f68185615258565b935061530681856020860161471f565b80840191505092915050565b5f61531d8285615262565b915061532982846152e2565b91508190509392505050565b5f819050919050565b61534f61534a82614436565b615335565b82525050565b5f615360828461533e565b60208201915081905092915050565b7f7b226e616d65223a2022464c4f574552202300000000000000000000000000005f82015250565b5f6153a3601283615258565b91506153ae8261536f565b601282019050919050565b7f222c226465736372697074696f6e223a220000000000000000000000000000005f82015250565b5f6153ed601183615258565b91506153f8826153b9565b601182019050919050565b7f222c2265787465726e616c5f75726c223a2268747470733a2f2f742e6d652f465f8201527f6c6f77657245524358222c22696d616765223a22000000000000000000000000602082015250565b5f61545d603483615258565b915061546882615403565b603482019050919050565b5f61547d82615397565b915061548982876152e2565b9150615494826153e1565b91506154a082866152e2565b91506154ab82615451565b91506154b78285615262565b91506154c382846152e2565b915081905095945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c00000000005f82015250565b5f615505601b83615258565b9150615510826154d1565b601b82019050919050565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a22435f8201527f6f6c6f72222c2276616c7565223a220000000000000000000000000000000000602082015250565b5f615575602f83615258565b91506155808261551b565b602f82019050919050565b7f227d5d7d000000000000000000000000000000000000000000000000000000005f82015250565b5f6155bf600483615258565b91506155ca8261558b565b600482019050919050565b5f6155df826154f9565b91506155eb82856152e2565b91506155f682615569565b915061560282846152e2565b915061560d826155b3565b91508190509392505050565b5f60408201905061562c5f8301856144a7565b61563960208301846144a7565b9392505050565b5f6060820190506156535f8301866147ca565b61566060208301856144a7565b61566d60408301846144a7565b949350505050565b5f61567f82614436565b915061568a83614436565b92508282019050808211156156a2576156a161512d565b5b92915050565b5f6040820190508181035f8301526156c08185614c84565b905081810360208301526156d48184614c84565b90509392505050565b7f455243313135353a2073657474696e6720617070726f76616c207374617475735f8201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b5f61573760298361470f565b9150615742826156dd565b604082019050919050565b5f6020820190508181035f8301526157648161572b565b9050919050565b5f61577582614436565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036157a7576157a661512d565b5b600182019050919050565b5f6157bc82614436565b91506157c783614436565b9250826157d7576157d66151fb565b5b828206905092915050565b7f5472616e736665722065786365656473206d6178696d756d2077616c6c6574005f82015250565b5f615816601f8361470f565b9150615821826157e2565b602082019050919050565b5f6020820190508181035f8301526158438161580a565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f6158a460248361470f565b91506158af8261584a565b604082019050919050565b5f6020820190508181035f8301526158d181615898565b9050919050565b7f436f6e74726163742074726164696e672072657374726963746564206174206c5f8201527f61756e6368000000000000000000000000000000000000000000000000000000602082015250565b5f61593260258361470f565b915061593d826158d8565b604082019050919050565b5f6020820190508181035f83015261595f81615926565b9050919050565b61596f816144cf565b82525050565b5f6020820190506159885f830184615966565b92915050565b5f8151905061599c81614d00565b92915050565b5f602082840312156159b7576159b66143d4565b5b5f6159c48482850161598e565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6159f1826159cd565b6159fb81856159d7565b9350615a0b81856020860161471f565b615a148161458a565b840191505092915050565b5f60a082019050615a325f8301886147ca565b615a3f60208301876147ca565b615a4c60408301866144a7565b615a5960608301856144a7565b8181036080830152615a6b81846159e7565b90509695505050505050565b5f81519050615a85816144fa565b92915050565b5f60208284031215615aa057615a9f6143d4565b5b5f615aad84828501615a77565b91505092915050565b5f8160e01c9050919050565b5f60033d1115615ade5760045f803e615adb5f51615ab6565b90505b90565b5f60443d10615b6d57615af26143cb565b60043d036004823e80513d602482011167ffffffffffffffff82111715615b1a575050615b6d565b808201805167ffffffffffffffff811115615b385750505050615b6d565b80602083010160043d038501811115615b55575050505050615b6d565b615b64826020018501866145c7565b82955050505050505b90565b5f608082019050615b835f8301876147ca565b615b9060208301866147ca565b615b9d60408301856144a7565b8181036060830152615baf81846159e7565b905095945050505050565b5f60a082019050615bcd5f8301886147ca565b615bda60208301876147ca565b8181036040830152615bec8186614c84565b90508181036060830152615c008185614c84565b90508181036080830152615c1481846159e7565b90509695505050505050565b5f819050919050565b5f615c43615c3e615c3984615c20565b614f3f565b614436565b9050919050565b615c5381615c29565b82525050565b5f604082019050615c6c5f8301856144a7565b615c796020830184615c4a565b939250505056fe41737472616c69726973204e46547320627920466c6f776572732034303420436f6c6c656374696f6e2e20464c4f574552206973206120636f6c6c656374696f6e206f66203130302e303030204e465473206c6976696e67206f6e20657468657265756d207468616e6b7320746f20616e20696d706c656d656e746174696f6e206f66206d756c7469706c6520746f6b656e207374616e64617264733a2045524332302c204552433732312c20313135352e4c756d696e61666c6f7261204e46547320627920466c6f776572732034303420436f6c6c656374696f6e2e20464c4f574552206973206120636f6c6c656374696f6e206f66203130302e303030204e465473206c6976696e67206f6e20657468657265756d207468616e6b7320746f20616e20696d706c656d656e746174696f6e206f66206d756c7469706c6520746f6b656e207374616e64617264733a2045524332302c204552433732312c20313135352e4e6562756c69756d204e46547320627920466c6f776572732034303420436f6c6c656374696f6e2e20464c4f574552206973206120636f6c6c656374696f6e206f66203130302e303030204e465473206c6976696e67206f6e20657468657265756d207468616e6b7320746f20616e20696d706c656d656e746174696f6e206f66206d756c7469706c6520746f6b656e207374616e64617264733a2045524332302c204552433732312c20313135352e4e65786f706574616c204e46547320627920466c6f776572732034303420436f6c6c656374696f6e2e20464c4f574552206973206120636f6c6c656374696f6e206f66203130302e303030204e465473206c6976696e67206f6e20657468657265756d207468616e6b7320746f20616e20696d706c656d656e746174696f6e206f66206d756c7469706c6520746f6b656e207374616e64617264733a2045524332302c204552433732312c20313135352ea2646970667358221220ab4bb69dc98f1f1acd8c8a8e75e75d5c0b704ed12dc63492f992ecc5763522a464736f6c63430008180033