60e060405234801562000010575f80fd5b5060405162003ee538038062003ee58339818101604052810190620000369190620003c2565b6040518060400160405280600c81526020017f416c69656e2052656c69637300000000000000000000000000000000000000008152506040518060400160405280600681526020017f52454c494353000000000000000000000000000000000000000000000000000081525060126103e884805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200010f576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508460019081620001ba919062000656565b508360029081620001cc919062000656565b508260ff1660808160ff1681525050608051600a620001ec9190620008c3565b82620001f9919062000913565b60a08181525050735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b8152600401620002659291906200096e565b6020604051808303815f875af115801562000282573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a89190620003c2565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250505050505050683635c9adc5dea0000060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060405180608001604052806044815260200162003ea160449139600c908162000355919062000656565b505062000999565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200038c8262000361565b9050919050565b6200039e8162000380565b8114620003a9575f80fd5b50565b5f81519050620003bc8162000393565b92915050565b5f60208284031215620003da57620003d96200035d565b5b5f620003e984828501620003ac565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200046e57607f821691505b60208210810362000484576200048362000429565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004ab565b620004f48683620004ab565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200053e6200053862000532846200050c565b62000515565b6200050c565b9050919050565b5f819050919050565b62000559836200051e565b62000571620005688262000545565b848454620004b7565b825550505050565b5f90565b6200058762000579565b620005948184846200054e565b505050565b5b81811015620005bb57620005af5f826200057d565b6001810190506200059a565b5050565b601f8211156200060a57620005d4816200048a565b620005df846200049c565b81016020851015620005ef578190505b62000607620005fe856200049c565b83018262000599565b50505b505050565b5f82821c905092915050565b5f6200062c5f19846008026200060f565b1980831691505092915050565b5f6200064683836200061b565b9150826002028217905092915050565b6200066182620003f2565b67ffffffffffffffff8111156200067d576200067c620003fc565b5b62000689825462000456565b62000696828285620005bf565b5f60209050601f831160018114620006cc575f8415620006b7578287015190505b620006c3858262000639565b86555062000732565b601f198416620006dc866200048a565b5f5b828110156200070557848901518255600182019150602085019450602081019050620006de565b8683101562000725578489015162000721601f8916826200061b565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620007c4578086048111156200079c576200079b6200073a565b5b6001851615620007ac5780820291505b8081029050620007bc8562000767565b94506200077c565b94509492505050565b5f82620007de5760019050620008b0565b81620007ed575f9050620008b0565b8160018114620008065760028114620008115762000847565b6001915050620008b0565b60ff8411156200082657620008256200073a565b5b8360020a91508482111562000840576200083f6200073a565b5b50620008b0565b5060208310610133831016604e8410600b8410161715620008815782820a9050838111156200087b576200087a6200073a565b5b620008b0565b62000890848484600162000773565b92509050818404811115620008aa57620008a96200073a565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620008cf826200050c565b9150620008dc83620008b7565b92506200090b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007cd565b905092915050565b5f6200091f826200050c565b91506200092c836200050c565b92508282026200093c816200050c565b915082820484148315176200095657620009556200073a565b5b5092915050565b620009688162000380565b82525050565b5f604082019050620009835f8301856200095d565b6200099260208301846200095d565b9392505050565b60805160a05160c0516134d6620009cb5f395f61134c01525f6108bf01525f81816111f90152611bf501526134d65ff3fe608060405234801561000f575f80fd5b506004361061018c575f3560e01c806370a08231116100dc578063b88d4fde11610095578063dd62ed3e1161006f578063dd62ed3e14610482578063e0df5b6f146104b2578063e985e9c5146104ce578063f2fde38b146104fe5761018c565b8063b88d4fde14610418578063c87b56dd14610434578063d547cfb7146104645761018c565b806370a08231146103305780638da5cb5b1461036057806395d89b411461037e5780639b19251a1461039c578063a22cb465146103cc578063a9059cbb146103e85761018c565b8063313ce567116101495780634f02c420116101235780634f02c420146102aa578063504334c2146102c857806353d6fd59146102e45780636352211e146103005761018c565b8063313ce5671461025257806342842e0e1461027057806349bd5a5e1461028c5761018c565b806306fdde0314610190578063081812fc146101ae578063095ea7b3146101de57806318160ddd1461020e57806323b872dd1461022c5780632b96895814610248575b5f80fd5b61019861051a565b6040516101a591906126f9565b60405180910390f35b6101c860048036038101906101c3919061275d565b6105a6565b6040516101d591906127c7565b60405180910390f35b6101f860048036038101906101f3919061280a565b6105d6565b6040516102059190612862565b60405180910390f35b6102166108bd565b604051610223919061288a565b60405180910390f35b610246600480360381019061024191906128a3565b6108e1565b005b6102506110d8565b005b61025a6111f7565b604051610267919061290e565b60405180910390f35b61028a600480360381019061028591906128a3565b61121b565b005b61029461134a565b6040516102a191906127c7565b60405180910390f35b6102b261136e565b6040516102bf919061288a565b60405180910390f35b6102e260048036038101906102dd9190612a53565b611374565b005b6102fe60048036038101906102f99190612af3565b611406565b005b61031a6004803603810190610315919061275d565b6114e2565b60405161032791906127c7565b60405180910390f35b61034a60048036038101906103459190612b31565b611580565b604051610357919061288a565b60405180910390f35b610368611595565b60405161037591906127c7565b60405180910390f35b6103866115b8565b60405161039391906126f9565b60405180910390f35b6103b660048036038101906103b19190612b31565b611644565b6040516103c39190612862565b60405180910390f35b6103e660048036038101906103e19190612af3565b611661565b005b61040260048036038101906103fd919061280a565b611759565b60405161040f9190612862565b60405180910390f35b610432600480360381019061042d9190612bb9565b61176d565b005b61044e6004803603810190610449919061275d565b6118a2565b60405161045b91906126f9565b60405180910390f35b61046c611900565b60405161047991906126f9565b60405180910390f35b61049c60048036038101906104979190612c3d565b61198c565b6040516104a9919061288a565b60405180910390f35b6104cc60048036038101906104c79190612c7b565b6119ac565b005b6104e860048036038101906104e39190612c3d565b611a43565b6040516104f59190612862565b60405180910390f35b61051860048036038101906105139190612b31565b611a6d565b005b6001805461052790612cef565b80601f016020809104026020016040519081016040528092919081815260200182805461055390612cef565b801561059e5780601f106105755761010080835404028352916020019161059e565b820191905f5260205f20905b81548152906001019060200180831161058157829003601f168201915b505050505081565b6006602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60035482111580156105e857505f82115b156107d0575f60085f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156106df575060075f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15610716576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8360065f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516107c2919061288a565b60405180910390a3506108b3565b8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108aa919061288a565b60405180910390a35b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003548111610f995760085f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461097f576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109e4576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610aa2575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610b0a575060065f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610b41576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b49611bf2565b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b949190612d4c565b92505081905550610ba3611bf2565b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160085f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610cf99190612d4c565b81548110610d0a57610d09612d7f565b5b905f5260205f20015490508060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600a5f8581526020019081526020015f205481548110610d7657610d75612d7f565b5b905f5260205f20018190555060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480610dcf57610dce612dac565b5b600190038181905f5260205f20015f90559055600a5f8381526020019081526020015f2054600a5f8381526020019081526020015f208190555060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f9091909190915055600160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610eb79190612d4c565b600a5f8481526020019081526020015f2081905550818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487610f7e611bf2565b604051610f8b919061288a565b60405180910390a3506110d3565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110c55781816110489190612d4c565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6110d0848484611c25565b50505b505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461115c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b7f000000000000000000000000000000000000000000000000000000000000000081565b6112268383836108e1565b5f8273ffffffffffffffffffffffffffffffffffffffff163b1415801561130e575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b81526004016112ac93929190612e0c565b6020604051808303815f875af11580156112c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ec9190612ea9565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611345576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60035481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113f8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114028282611f69565b5050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461148a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60085f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361157b576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6004602052805f5260405f205f915090505481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600280546115c590612cef565b80601f01602080910402602001604051908101604052809291908181526020018280546115f190612cef565b801561163c5780601f106116135761010080835404028352916020019161163c565b820191905f5260205f20905b81548152906001019060200180831161161f57829003601f168201915b505050505081565b600b602052805f5260405f205f915054906101000a900460ff1681565b8060075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161174d9190612862565b60405180910390a35050565b5f611765338484611c25565b905092915050565b6117788585856108e1565b5f8473ffffffffffffffffffffffffffffffffffffffff163b14158015611864575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b8152600401611802959493929190612f00565b6020604051808303815f875af115801561181e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118429190612ea9565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b1561189b576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b60605f600c80546118b290612cef565b9050116118cd5760405180602001604052805f8152506118f9565b600c6118d883611f8d565b6040516020016118e992919061303e565b6040516020818303038152906040525b9050919050565b600c805461190d90612cef565b80601f016020809104026020016040519081016040528092919081815260200182805461193990612cef565b80156119845780601f1061195b57610100808354040283529160200191611984565b820191905f5260205f20905b81548152906001019060200180831161196757829003601f168201915b505050505081565b6005602052815f5260405f20602052805f5260405f205f91509150505481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a30576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600c9081611a3f91906131fb565b5050565b6007602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611af1576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b56576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b5f7f0000000000000000000000000000000000000000000000000000000000000000600a611c2091906133f9565b905090565b5f80611c2f611bf2565b90505f60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508460045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611cff9190612d4c565b925050819055508460045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540192505081905550600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611e23575f8360045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611de89190613470565b8484611df49190613470565b611dfe9190612d4c565b90505f5b81811015611e2057611e1389612057565b8080600101915050611e02565b50505b600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611ef6575f8382611e7e9190613470565b8460045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ec79190613470565b611ed19190612d4c565b90505f5b81811015611ef357611ee68861229c565b8080600101915050611ed5565b50505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148787604051611f53919061288a565b60405180910390a3600193505050509392505050565b8160019081611f7891906131fb565b508060029081611f8891906131fb565b505050565b60605f6001611f9b8461251e565b0190505f8167ffffffffffffffff811115611fb957611fb861292f565b5b6040519080825280601f01601f191660200182016040528015611feb5781602001600182028036833780820191505090505b5090505f82602001820190505b60011561204c578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161204157612040613443565b5b0494505f8503611ff8575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120bc576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490506121479190612d4c565b8154811061215857612157612d7f565b5b905f5260205f200154905060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054806121b0576121af612dac565b5b600190038181905f5260205f20015f90559055600a5f8281526020019081526020015f205f905560085f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560065f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055805f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612301576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035f81548092919060010191905055505f60035490505f73ffffffffffffffffffffffffffffffffffffffff1660085f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123ad576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160085f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f9091909190915055600160095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490506124aa9190612d4c565b600a5f8381526020019081526020015f2081905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061257a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816125705761256f613443565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106125b7576d04ee2d6d415b85acef810000000083816125ad576125ac613443565b5b0492506020810190505b662386f26fc1000083106125e657662386f26fc1000083816125dc576125db613443565b5b0492506010810190505b6305f5e100831061260f576305f5e100838161260557612604613443565b5b0492506008810190505b612710831061263457612710838161262a57612629613443565b5b0492506004810190505b60648310612657576064838161264d5761264c613443565b5b0492506002810190505b600a8310612666576001810190505b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156126a657808201518184015260208101905061268b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6126cb8261266f565b6126d58185612679565b93506126e5818560208601612689565b6126ee816126b1565b840191505092915050565b5f6020820190508181035f83015261271181846126c1565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b61273c8161272a565b8114612746575f80fd5b50565b5f8135905061275781612733565b92915050565b5f6020828403121561277257612771612722565b5b5f61277f84828501612749565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127b182612788565b9050919050565b6127c1816127a7565b82525050565b5f6020820190506127da5f8301846127b8565b92915050565b6127e9816127a7565b81146127f3575f80fd5b50565b5f81359050612804816127e0565b92915050565b5f80604083850312156128205761281f612722565b5b5f61282d858286016127f6565b925050602061283e85828601612749565b9150509250929050565b5f8115159050919050565b61285c81612848565b82525050565b5f6020820190506128755f830184612853565b92915050565b6128848161272a565b82525050565b5f60208201905061289d5f83018461287b565b92915050565b5f805f606084860312156128ba576128b9612722565b5b5f6128c7868287016127f6565b93505060206128d8868287016127f6565b92505060406128e986828701612749565b9150509250925092565b5f60ff82169050919050565b612908816128f3565b82525050565b5f6020820190506129215f8301846128ff565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612965826126b1565b810181811067ffffffffffffffff821117156129845761298361292f565b5b80604052505050565b5f612996612719565b90506129a2828261295c565b919050565b5f67ffffffffffffffff8211156129c1576129c061292f565b5b6129ca826126b1565b9050602081019050919050565b828183375f83830152505050565b5f6129f76129f2846129a7565b61298d565b905082815260208101848484011115612a1357612a1261292b565b5b612a1e8482856129d7565b509392505050565b5f82601f830112612a3a57612a39612927565b5b8135612a4a8482602086016129e5565b91505092915050565b5f8060408385031215612a6957612a68612722565b5b5f83013567ffffffffffffffff811115612a8657612a85612726565b5b612a9285828601612a26565b925050602083013567ffffffffffffffff811115612ab357612ab2612726565b5b612abf85828601612a26565b9150509250929050565b612ad281612848565b8114612adc575f80fd5b50565b5f81359050612aed81612ac9565b92915050565b5f8060408385031215612b0957612b08612722565b5b5f612b16858286016127f6565b9250506020612b2785828601612adf565b9150509250929050565b5f60208284031215612b4657612b45612722565b5b5f612b53848285016127f6565b91505092915050565b5f80fd5b5f80fd5b5f8083601f840112612b7957612b78612927565b5b8235905067ffffffffffffffff811115612b9657612b95612b5c565b5b602083019150836001820283011115612bb257612bb1612b60565b5b9250929050565b5f805f805f60808688031215612bd257612bd1612722565b5b5f612bdf888289016127f6565b9550506020612bf0888289016127f6565b9450506040612c0188828901612749565b935050606086013567ffffffffffffffff811115612c2257612c21612726565b5b612c2e88828901612b64565b92509250509295509295909350565b5f8060408385031215612c5357612c52612722565b5b5f612c60858286016127f6565b9250506020612c71858286016127f6565b9150509250929050565b5f60208284031215612c9057612c8f612722565b5b5f82013567ffffffffffffffff811115612cad57612cac612726565b5b612cb984828501612a26565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d0657607f821691505b602082108103612d1957612d18612cc2565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d568261272a565b9150612d618361272a565b9250828203905081811115612d7957612d78612d1f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82825260208201905092915050565b50565b5f612df75f83612dd9565b9150612e0282612de9565b5f82019050919050565b5f608082019050612e1f5f8301866127b8565b612e2c60208301856127b8565b612e39604083018461287b565b8181036060830152612e4a81612dec565b9050949350505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612e8881612e54565b8114612e92575f80fd5b50565b5f81519050612ea381612e7f565b92915050565b5f60208284031215612ebe57612ebd612722565b5b5f612ecb84828501612e95565b91505092915050565b5f612edf8385612dd9565b9350612eec8385846129d7565b612ef5836126b1565b840190509392505050565b5f608082019050612f135f8301886127b8565b612f2060208301876127b8565b612f2d604083018661287b565b8181036060830152612f40818486612ed4565b90509695505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154612f7481612cef565b612f7e8186612f4c565b9450600182165f8114612f985760018114612fad57612fdf565b60ff1983168652811515820286019350612fdf565b612fb685612f56565b5f5b83811015612fd757815481890152600182019150602081019050612fb8565b838801955050505b50505092915050565b5f612ff28261266f565b612ffc8185612f4c565b935061300c818560208601612689565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000815250565b5f6130498285612f68565b91506130558284612fe8565b915061306082613018565b6005820191508190509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026130ba7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261307f565b6130c4868361307f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6130ff6130fa6130f58461272a565b6130dc565b61272a565b9050919050565b5f819050919050565b613118836130e5565b61312c61312482613106565b84845461308b565b825550505050565b5f90565b613140613134565b61314b81848461310f565b505050565b5b8181101561316e576131635f82613138565b600181019050613151565b5050565b601f8211156131b35761318481612f56565b61318d84613070565b8101602085101561319c578190505b6131b06131a885613070565b830182613150565b50505b505050565b5f82821c905092915050565b5f6131d35f19846008026131b8565b1980831691505092915050565b5f6131eb83836131c4565b9150826002028217905092915050565b6132048261266f565b67ffffffffffffffff81111561321d5761321c61292f565b5b6132278254612cef565b613232828285613172565b5f60209050601f831160018114613263575f8415613251578287015190505b61325b85826131e0565b8655506132c2565b601f19841661327186612f56565b5f5b8281101561329857848901518255600182019150602085019450602081019050613273565b868310156132b557848901516132b1601f8916826131c4565b8355505b6001600288020188555050505b505050505050565b5f8160011c9050919050565b5f808291508390505b600185111561331f578086048111156132fb576132fa612d1f565b5b600185161561330a5780820291505b8081029050613318856132ca565b94506132df565b94509492505050565b5f8261333757600190506133f2565b81613344575f90506133f2565b816001811461335a576002811461336457613393565b60019150506133f2565b60ff84111561337657613375612d1f565b5b8360020a91508482111561338d5761338c612d1f565b5b506133f2565b5060208310610133831016604e8410600b84101617156133c85782820a9050838111156133c3576133c2612d1f565b5b6133f2565b6133d584848460016132d6565b925090508184048111156133ec576133eb612d1f565b5b81810290505b9392505050565b5f6134038261272a565b915061340e836128f3565b925061343b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613328565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61347a8261272a565b91506134858361272a565b92508261349557613494613443565b5b82820490509291505056fea2646970667358221220f2d6f805560b42212b204c1acaff39d8463df84ddd8f38722e640b911122f13364736f6c6343000816003368747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f72656c6963733430342f72656c6963733430342f6d61696e2f6d657461646174612f0000000000000000000000007fd1a796d7c6f73c95f5e3ea9590c8d17cdaf762