0x608060405234801561000f575f80fd5b50336040518060600160405280602c8152602001613696602c91396100398161014660201b60201c565b505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100aa575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100a19190610afe565b60405180910390fd5b6100b98161015960201b60201c565b506040518060600160405280602381526020016136c260239139600490816100e19190610d51565b506040518060600160405280602381526020016136c260239139600590816101099190610d51565b50610141737fc66500c84a76ad7e9c93437bfc5ac33e2ddae9600161106860405180602001604052805f81525061021c60201b60201c565b611197565b80600290816101559190610d51565b5050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361028c575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016102839190610afe565b60405180910390fd5b5f8061029e85856102bd60201b60201c565b915091506102b55f878484876102ed60201b60201c565b505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b6102ff858585856103b160201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146103aa575f61034161074760201b60201c565b90506001845103610393575f6103605f8661074e60201b90919060201c565b90505f6103765f8661074e60201b90919060201c565b905061038c83898985858961076160201b60201c565b50506103a8565b6103a781878787878761091060201b60201c565b5b505b5050505050565b80518251146103fb57815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016103f2929190610e2f565b60405180910390fd5b5f61040a61074760201b60201c565b90505f5b8351811015610606575f61042b828661074e60201b90919060201c565b90505f610441838661074e60201b90919060201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614610564575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561051057888183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016105079493929190610e56565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146105f957805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105f19190610ec6565b925050819055505b505080600101905061040e565b5060018351036106c1575f6106245f8561074e60201b90919060201c565b90505f61063a5f8561074e60201b90919060201c565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516106b2929190610e2f565b60405180910390a45050610740565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610737929190610fb0565b60405180910390a45b5050505050565b5f33905090565b5f60208202602084010151905092915050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115610908578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016107c1959493929190611055565b6020604051808303815f875af19250505080156107fc57506040513d601f19601f820116820180604052508101906107f99190611106565b60015b61087d573d805f811461082a576040519150601f19603f3d011682016040523d82523d5f602084013e61082f565b606091505b505f81510361087557846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161086c9190610afe565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461090657846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016108fd9190610afe565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115610ab7578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401610970959493929190611131565b6020604051808303815f875af19250505080156109ab57506040513d601f19601f820116820180604052508101906109a89190611106565b60015b610a2c573d805f81146109d9576040519150601f19603f3d011682016040523d82523d5f602084013e6109de565b606091505b505f815103610a2457846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610a1b9190610afe565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610ab557846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610aac9190610afe565b60405180910390fd5b505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ae882610abf565b9050919050565b610af881610ade565b82525050565b5f602082019050610b115f830184610aef565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610b9257607f821691505b602082108103610ba557610ba4610b4e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610c077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610bcc565b610c118683610bcc565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610c55610c50610c4b84610c29565b610c32565b610c29565b9050919050565b5f819050919050565b610c6e83610c3b565b610c82610c7a82610c5c565b848454610bd8565b825550505050565b5f90565b610c96610c8a565b610ca1818484610c65565b505050565b5b81811015610cc457610cb95f82610c8e565b600181019050610ca7565b5050565b601f821115610d0957610cda81610bab565b610ce384610bbd565b81016020851015610cf2578190505b610d06610cfe85610bbd565b830182610ca6565b50505b505050565b5f82821c905092915050565b5f610d295f1984600802610d0e565b1980831691505092915050565b5f610d418383610d1a565b9150826002028217905092915050565b610d5a82610b17565b67ffffffffffffffff811115610d7357610d72610b21565b5b610d7d8254610b7b565b610d88828285610cc8565b5f60209050601f831160018114610db9575f8415610da7578287015190505b610db18582610d36565b865550610e18565b601f198416610dc786610bab565b5f5b82811015610dee57848901518255600182019150602085019450602081019050610dc9565b86831015610e0b5784890151610e07601f891682610d1a565b8355505b6001600288020188555050505b505050505050565b610e2981610c29565b82525050565b5f604082019050610e425f830185610e20565b610e4f6020830184610e20565b9392505050565b5f608082019050610e695f830187610aef565b610e766020830186610e20565b610e836040830185610e20565b610e906060830184610e20565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610ed082610c29565b9150610edb83610c29565b9250828201905080821115610ef357610ef2610e99565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610f2b81610c29565b82525050565b5f610f3c8383610f22565b60208301905092915050565b5f602082019050919050565b5f610f5e82610ef9565b610f688185610f03565b9350610f7383610f13565b805f5b83811015610fa3578151610f8a8882610f31565b9750610f9583610f48565b925050600181019050610f76565b5085935050505092915050565b5f6040820190508181035f830152610fc88185610f54565b90508181036020830152610fdc8184610f54565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61102782610fe5565b6110318185610fef565b9350611041818560208601610fff565b61104a8161100d565b840191505092915050565b5f60a0820190506110685f830188610aef565b6110756020830187610aef565b6110826040830186610e20565b61108f6060830185610e20565b81810360808301526110a1818461101d565b90509695505050505050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6110e5816110b1565b81146110ef575f80fd5b50565b5f81519050611100816110dc565b92915050565b5f6020828403121561111b5761111a6110ad565b5b5f611128848285016110f2565b91505092915050565b5f60a0820190506111445f830188610aef565b6111516020830187610aef565b81810360408301526111638186610f54565b905081810360608301526111778185610f54565b9050818103608083015261118b818461101d565b90509695505050505050565b6124f2806111a45f395ff3fe608060405234801561000f575f80fd5b50600436106100fd575f3560e01c8063729ad39e11610095578063a22cb46511610064578063a22cb465146102ad578063e985e9c5146102c9578063f242432a146102f9578063f2fde38b14610315576100fd565b8063729ad39e146102235780637c0b8de2146102535780638da5cb5b1461027157806395d89b411461028f576100fd565b80632eb2c2d6116100d15780632eb2c2d6146101af5780634e1273f4146101cb5780636057d3ee146101fb578063715018a614610219576100fd565b8062fdd58e1461010157806301ffc9a71461013157806306fdde03146101615780630e89341c1461017f575b5f80fd5b61011b60048036038101906101169190611888565b610331565b60405161012891906118d5565b60405180910390f35b61014b60048036038101906101469190611943565b610386565b6040516101589190611988565b60405180910390f35b610169610467565b6040516101769190611a11565b60405180910390f35b61019960048036038101906101949190611a31565b6104f3565b6040516101a69190611a11565b60405180910390f35b6101c960048036038101906101c49190611c4c565b610585565b005b6101e560048036038101906101e09190611dd7565b61062c565b6040516101f29190611f04565b60405180910390f35b610203610733565b6040516102109190611f33565b60405180910390f35b61022161074b565b005b61023d60048036038101906102389190611fa5565b61075e565b60405161024a9190611988565b60405180910390f35b61025b610855565b60405161026891906118d5565b60405180910390f35b61027961085a565b6040516102869190611f33565b60405180910390f35b610297610882565b6040516102a49190611a11565b60405180910390f35b6102c760048036038101906102c2919061201a565b61090e565b005b6102e360048036038101906102de9190612058565b610924565b6040516102f09190611988565b60405180910390f35b610313600480360381019061030e9190612096565b6109b2565b005b61032f600480360381019061032a9190612129565b610a59565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061045057507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610460575061045f82610add565b5b9050919050565b6004805461047490612181565b80601f01602080910402602001604051908101604052809291908181526020018280546104a090612181565b80156104eb5780601f106104c2576101008083540402835291602001916104eb565b820191905f5260205f20905b8154815290600101906020018083116104ce57829003601f168201915b505050505081565b60606002805461050290612181565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90612181565b80156105795780601f1061055057610100808354040283529160200191610579565b820191905f5260205f20905b81548152906001019060200180831161055c57829003601f168201915b50505050509050919050565b5f61058e610b46565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156105d357506105d18682610924565b155b156106175780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161060e9291906121b1565b60405180910390fd5b6106248686868686610b4d565b505050505050565b6060815183511461067857815183516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161066f9291906121d8565b60405180910390fd5b5f835167ffffffffffffffff81111561069457610693611a60565b5b6040519080825280602002602001820160405280156106c25781602001602082028036833780820191505090505b5090505f5b8451811015610728576106fe6106e68287610c4190919063ffffffff16565b6106f98387610c5490919063ffffffff16565b610331565b828281518110610711576107106121ff565b5b6020026020010181815250508060010190506106c7565b508091505092915050565b737fc66500c84a76ad7e9c93437bfc5ac33e2ddae981565b610753610c67565b61075c5f610cee565b565b5f805f90505b8383905081101561084a57838382818110610782576107816121ff565b5b90506020020160208101906107979190612129565b73ffffffffffffffffffffffffffffffffffffffff16737fc66500c84a76ad7e9c93437bfc5ac33e2ddae973ffffffffffffffffffffffffffffffffffffffff16737fc66500c84a76ad7e9c93437bfc5ac33e2ddae973ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6260018060405161083592919061226e565b60405180910390a48080600101915050610764565b506001905092915050565b600181565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6005805461088f90612181565b80601f01602080910402602001604051908101604052809291908181526020018280546108bb90612181565b80156109065780601f106108dd57610100808354040283529160200191610906565b820191905f5260205f20905b8154815290600101906020018083116108e957829003601f168201915b505050505081565b610920610919610b46565b8383610db1565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f6109bb610b46565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610a0057506109fe8682610924565b155b15610a445780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610a3b9291906121b1565b60405180910390fd5b610a518686868686610f1a565b505050505050565b610a61610c67565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ad1575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ac89190611f33565b60405180910390fd5b610ada81610cee565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610bbd575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610bb49190611f33565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610c2d575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610c249190611f33565b60405180910390fd5b610c3a8585858585611020565b5050505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b610c6f610b46565b73ffffffffffffffffffffffffffffffffffffffff16610c8d61085a565b73ffffffffffffffffffffffffffffffffffffffff1614610cec57610cb0610b46565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610ce39190611f33565b60405180910390fd5b565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e21575f6040517fced3e100000000000000000000000000000000000000000000000000000000008152600401610e189190611f33565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f0d9190611988565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f8a575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610f819190611f33565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610ffa575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610ff19190611f33565b60405180910390fd5b5f8061100685856110cc565b915091506110178787848487611020565b50505050505050565b61102c858585856110fc565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146110c5575f611068610b46565b905060018451036110b4575f6110875f86610c5490919063ffffffff16565b90505f61109d5f86610c5490919063ffffffff16565b90506110ad83898985858961148c565b50506110c3565b6110c281878787878761163b565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b805182511461114657815181516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161113d9291906121d8565b60405180910390fd5b5f61114f610b46565b90505f5b835181101561134b575f6111708286610c5490919063ffffffff16565b90505f6111868386610c5490919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146112a9575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561125557888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161124c9493929190612295565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461133e57805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546113369190612305565b925050819055505b5050806001019050611153565b506001835103611406575f6113695f85610c5490919063ffffffff16565b90505f61137f5f85610c5490919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516113f79291906121d8565b60405180910390a45050611485565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161147c929190612338565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611633578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016114ec9594939291906123bf565b6020604051808303815f875af192505050801561152757506040513d601f19601f82011682018060405250810190611524919061242b565b60015b6115a8573d805f8114611555576040519150601f19603f3d011682016040523d82523d5f602084013e61155a565b606091505b505f8151036115a057846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016115979190611f33565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461163157846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016116289190611f33565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156117e2578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161169b959493929190612456565b6020604051808303815f875af19250505080156116d657506040513d601f19601f820116820180604052508101906116d3919061242b565b60015b611757573d805f8114611704576040519150601f19603f3d011682016040523d82523d5f602084013e611709565b606091505b505f81510361174f57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016117469190611f33565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146117e057846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016117d79190611f33565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611824826117fb565b9050919050565b6118348161181a565b811461183e575f80fd5b50565b5f8135905061184f8161182b565b92915050565b5f819050919050565b61186781611855565b8114611871575f80fd5b50565b5f813590506118828161185e565b92915050565b5f806040838503121561189e5761189d6117f3565b5b5f6118ab85828601611841565b92505060206118bc85828601611874565b9150509250929050565b6118cf81611855565b82525050565b5f6020820190506118e85f8301846118c6565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611922816118ee565b811461192c575f80fd5b50565b5f8135905061193d81611919565b92915050565b5f60208284031215611958576119576117f3565b5b5f6119658482850161192f565b91505092915050565b5f8115159050919050565b6119828161196e565b82525050565b5f60208201905061199b5f830184611979565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6119e3826119a1565b6119ed81856119ab565b93506119fd8185602086016119bb565b611a06816119c9565b840191505092915050565b5f6020820190508181035f830152611a2981846119d9565b905092915050565b5f60208284031215611a4657611a456117f3565b5b5f611a5384828501611874565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611a96826119c9565b810181811067ffffffffffffffff82111715611ab557611ab4611a60565b5b80604052505050565b5f611ac76117ea565b9050611ad38282611a8d565b919050565b5f67ffffffffffffffff821115611af257611af1611a60565b5b602082029050602081019050919050565b5f80fd5b5f611b19611b1484611ad8565b611abe565b90508083825260208201905060208402830185811115611b3c57611b3b611b03565b5b835b81811015611b655780611b518882611874565b845260208401935050602081019050611b3e565b5050509392505050565b5f82601f830112611b8357611b82611a5c565b5b8135611b93848260208601611b07565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115611bba57611bb9611a60565b5b611bc3826119c9565b9050602081019050919050565b828183375f83830152505050565b5f611bf0611beb84611ba0565b611abe565b905082815260208101848484011115611c0c57611c0b611b9c565b5b611c17848285611bd0565b509392505050565b5f82601f830112611c3357611c32611a5c565b5b8135611c43848260208601611bde565b91505092915050565b5f805f805f60a08688031215611c6557611c646117f3565b5b5f611c7288828901611841565b9550506020611c8388828901611841565b945050604086013567ffffffffffffffff811115611ca457611ca36117f7565b5b611cb088828901611b6f565b935050606086013567ffffffffffffffff811115611cd157611cd06117f7565b5b611cdd88828901611b6f565b925050608086013567ffffffffffffffff811115611cfe57611cfd6117f7565b5b611d0a88828901611c1f565b9150509295509295909350565b5f67ffffffffffffffff821115611d3157611d30611a60565b5b602082029050602081019050919050565b5f611d54611d4f84611d17565b611abe565b90508083825260208201905060208402830185811115611d7757611d76611b03565b5b835b81811015611da05780611d8c8882611841565b845260208401935050602081019050611d79565b5050509392505050565b5f82601f830112611dbe57611dbd611a5c565b5b8135611dce848260208601611d42565b91505092915050565b5f8060408385031215611ded57611dec6117f3565b5b5f83013567ffffffffffffffff811115611e0a57611e096117f7565b5b611e1685828601611daa565b925050602083013567ffffffffffffffff811115611e3757611e366117f7565b5b611e4385828601611b6f565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611e7f81611855565b82525050565b5f611e908383611e76565b60208301905092915050565b5f602082019050919050565b5f611eb282611e4d565b611ebc8185611e57565b9350611ec783611e67565b805f5b83811015611ef7578151611ede8882611e85565b9750611ee983611e9c565b925050600181019050611eca565b5085935050505092915050565b5f6020820190508181035f830152611f1c8184611ea8565b905092915050565b611f2d8161181a565b82525050565b5f602082019050611f465f830184611f24565b92915050565b5f80fd5b5f8083601f840112611f6557611f64611a5c565b5b8235905067ffffffffffffffff811115611f8257611f81611f4c565b5b602083019150836020820283011115611f9e57611f9d611b03565b5b9250929050565b5f8060208385031215611fbb57611fba6117f3565b5b5f83013567ffffffffffffffff811115611fd857611fd76117f7565b5b611fe485828601611f50565b92509250509250929050565b611ff98161196e565b8114612003575f80fd5b50565b5f8135905061201481611ff0565b92915050565b5f80604083850312156120305761202f6117f3565b5b5f61203d85828601611841565b925050602061204e85828601612006565b9150509250929050565b5f806040838503121561206e5761206d6117f3565b5b5f61207b85828601611841565b925050602061208c85828601611841565b9150509250929050565b5f805f805f60a086880312156120af576120ae6117f3565b5b5f6120bc88828901611841565b95505060206120cd88828901611841565b94505060406120de88828901611874565b93505060606120ef88828901611874565b925050608086013567ffffffffffffffff8111156121105761210f6117f7565b5b61211c88828901611c1f565b9150509295509295909350565b5f6020828403121561213e5761213d6117f3565b5b5f61214b84828501611841565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061219857607f821691505b6020821081036121ab576121aa612154565b5b50919050565b5f6040820190506121c45f830185611f24565b6121d16020830184611f24565b9392505050565b5f6040820190506121eb5f8301856118c6565b6121f860208301846118c6565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f61225861225361224e8461222c565b612235565b611855565b9050919050565b6122688161223e565b82525050565b5f6040820190506122815f8301856118c6565b61228e602083018461225f565b9392505050565b5f6080820190506122a85f830187611f24565b6122b560208301866118c6565b6122c260408301856118c6565b6122cf60608301846118c6565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61230f82611855565b915061231a83611855565b9250828201905080821115612332576123316122d8565b5b92915050565b5f6040820190508181035f8301526123508185611ea8565b905081810360208301526123648184611ea8565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f6123918261236d565b61239b8185612377565b93506123ab8185602086016119bb565b6123b4816119c9565b840191505092915050565b5f60a0820190506123d25f830188611f24565b6123df6020830187611f24565b6123ec60408301866118c6565b6123f960608301856118c6565b818103608083015261240b8184612387565b90509695505050505050565b5f8151905061242581611919565b92915050565b5f602082840312156124405761243f6117f3565b5b5f61244d84828501612417565b91505092915050565b5f60a0820190506124695f830188611f24565b6124766020830187611f24565b81810360408301526124888186611ea8565b9050818103606083015261249c8185611ea8565b905081810360808301526124b08184612387565b9050969550505050505056fea2646970667358221220f3b5b2f114044ffeb4e9d6617b35d62f57295d2bb341165e5d23c14ec3c029ea64736f6c634300081a003368747470733a2f2f6d6574613031383733393137333331332e636f6d2f616176652d626f782f312e6a736f6e566973697420416176652d426f782e636f6d20746f20636c61696d2072657761726473