6080604052670de0b6b3a76400005f196200001b9190620006dc565b5f1962000029919062000740565b6006555f60085560146009555f600a556032600b555f600c55600b54600d55600c54600e55600d54600f555f6015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066354a6ba7a1800060165566354a6ba7a18000601755662386f26fc10000601855348015620000b5575f80fd5b505f620000c76200067860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f620001796200067860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000258573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027e9190620007df565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200030a9190620007df565b6040518363ffffffff1660e01b81526004016200032992919062000820565b6020604051808303815f875af115801562000346573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200036c9190620007df565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003bb6200067f60201b60201c565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d834488633af3d20aa5c8e3580222a48ee2ca53a60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f620004636200067f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620006036200067860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200066991906200085c565b60405180910390a35062000877565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620006e882620006a6565b9150620006f583620006a6565b925082620007085762000707620006af565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200074c82620006a6565b91506200075983620006a6565b925082820390508181111562000774576200077362000713565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007a9826200077e565b9050919050565b620007bb816200079d565b8114620007c6575f80fd5b50565b5f81519050620007d981620007b0565b92915050565b5f60208284031215620007f757620007f66200077a565b5b5f6200080684828501620007c9565b91505092915050565b6200081a816200079d565b82525050565b5f604082019050620008355f8301856200080f565b6200084460208301846200080f565b9392505050565b6200085681620006a6565b82525050565b5f602082019050620008715f8301846200084b565b92915050565b613eed80620008855f395ff3fe6080604052600436106101fb575f3560e01c80637d1db4a51161010c578063bfd792841161009f578063caac79341161006e578063caac7934146106c2578063d1c7d943146106ec578063dd62ed3e14610714578063f2fde38b14610750578063f7159d421461077857610202565b8063bfd7928414610620578063c10195331461065c578063c3c8cd8014610684578063c492f0461461069a57610202565b80638f9a55c0116100db5780638f9a55c01461056857806395d89b4114610592578063a9059cbb146105bc578063bc337182146105f857610202565b80637d1db4a5146104c25780637f2feddc146104ec57806388375563146105285780638da5cb5b1461053e57610202565b8063313ce5671161018f578063522bed111161015e578063522bed111461040a5780635d0044ca146104325780636fc3eaec1461045a57806370a0823114610470578063715018a6146104ac57610202565b8063313ce567146103765780633d6a9afe146103a057806349bd5a5e146103ca5780634a30b386146103f457610202565b80631694505e116101cb5780631694505e146102bc57806318160ddd146102e657806323b872dd146103105780632fd689e31461034c57610202565b8062c2529b1461020657806306fdde031461022e578063095ea7b3146102585780631006ee0c1461029457610202565b3661020257005b5f80fd5b348015610211575f80fd5b5061022c60048036038101906102279190612dde565b6107a0565b005b348015610239575f80fd5b506102426108b8565b60405161024f9190612ea6565b60405180910390f35b348015610263575f80fd5b5061027e60048036038101906102799190612ef9565b6108f5565b60405161028b9190612f51565b60405180910390f35b34801561029f575f80fd5b506102ba60048036038101906102b59190612f6a565b610912565b005b3480156102c7575f80fd5b506102d06109b8565b6040516102dd9190613003565b60405180910390f35b3480156102f1575f80fd5b506102fa6109dd565b604051610307919061302b565b60405180910390f35b34801561031b575f80fd5b5061033660048036038101906103319190613044565b6109ec565b6040516103439190612f51565b60405180910390f35b348015610357575f80fd5b50610360610ac0565b60405161036d919061302b565b60405180910390f35b348015610381575f80fd5b5061038a610ac6565b60405161039791906130af565b60405180910390f35b3480156103ab575f80fd5b506103b4610ace565b6040516103c191906130e8565b60405180910390f35b3480156103d5575f80fd5b506103de610af3565b6040516103eb9190613110565b60405180910390f35b3480156103ff575f80fd5b50610408610b18565b005b348015610415575f80fd5b50610430600480360381019061042b9190613129565b610bcc565b005b34801561043d575f80fd5b5061045860048036038101906104539190613154565b610cb7565b005b348015610465575f80fd5b5061046e610d55565b005b34801561047b575f80fd5b5061049660048036038101906104919190613129565b610e22565b6040516104a3919061302b565b60405180910390f35b3480156104b7575f80fd5b506104c0610e70565b005b3480156104cd575f80fd5b506104d6610fbe565b6040516104e3919061302b565b60405180910390f35b3480156104f7575f80fd5b50610512600480360381019061050d9190613129565b610fc4565b60405161051f919061302b565b60405180910390f35b348015610533575f80fd5b5061053c610fd9565b005b348015610549575f80fd5b5061055261108a565b60405161055f9190613110565b60405180910390f35b348015610573575f80fd5b5061057c6110b1565b604051610589919061302b565b60405180910390f35b34801561059d575f80fd5b506105a66110b7565b6040516105b39190612ea6565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd9190612ef9565b6110f4565b6040516105ef9190612f51565b60405180910390f35b348015610603575f80fd5b5061061e60048036038101906106199190613154565b611111565b005b34801561062b575f80fd5b5061064660048036038101906106419190613129565b6111af565b6040516106539190612f51565b60405180910390f35b348015610667575f80fd5b50610682600480360381019061067d91906131a9565b6111cc565b005b34801561068f575f80fd5b5061069861127d565b005b3480156106a5575f80fd5b506106c060048036038101906106bb9190613235565b611352565b005b3480156106cd575f80fd5b506106d6611487565b6040516106e391906130e8565b60405180910390f35b3480156106f7575f80fd5b50610712600480360381019061070d9190613154565b6114ac565b005b34801561071f575f80fd5b5061073a60048036038101906107359190612dde565b611559565b604051610747919061302b565b60405180910390f35b34801561075b575f80fd5b5061077660048036038101906107719190613129565b6115db565b005b348015610783575f80fd5b5061079e600480360381019061079991906133ca565b611798565b005b6107a86118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082b9061345b565b60405180910390fd5b8160135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60606040518060400160405280600981526020017f4d617276696e2041490000000000000000000000000000000000000000000000815250905090565b5f6109086109016118bd565b84846118c4565b6001905092915050565b61091a6118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d9061345b565b60405180910390fd5b8160098190555080600b819055505050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b5f6109f8848484611a87565b610ab584610a046118bd565b610ab085604051806060016040528060288152602001613e906028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a676118bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122e79092919063ffffffff16565b6118c4565b600190509392505050565b60185481565b5f6009905090565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b206118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba39061345b565b60405180910390fd5b670de0b6b3a7640000601681905550670de0b6b3a7640000601781905550565b610bd46118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c579061345b565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610cbf6118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d429061345b565b60405180910390fd5b8060178190555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d956118bd565b73ffffffffffffffffffffffffffffffffffffffff161480610e0a575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df26118bd565b73ffffffffffffffffffffffffffffffffffffffff16145b610e12575f80fd5b5f479050610e1f81612349565b50565b5f610e6960025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123b1565b9050919050565b610e786118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efb9061345b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b6011602052805f5260405f205f915090505481565b610fe16118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110649061345b565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600681526020017f4d415256494e0000000000000000000000000000000000000000000000000000815250905090565b5f6111076111006118bd565b8484611a87565b6001905092915050565b6111196118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119c9061345b565b60405180910390fd5b8060168190555050565b6010602052805f5260405f205f915054906101000a900460ff1681565b6111d46118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611260576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112579061345b565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112bd6118bd565b73ffffffffffffffffffffffffffffffffffffffff161480611332575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661131a6118bd565b73ffffffffffffffffffffffffffffffffffffffff16145b61133a575f80fd5b5f61134430610e22565b905061134f8161241d565b50565b61135a6118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dd9061345b565b60405180910390fd5b5f5b83839050811015611481578160055f86868581811061140a57611409613479565b5b905060200201602081019061141f9190613129565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611479906134d3565b9150506113e8565b50505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114b46118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115379061345b565b60405180910390fd5b633b9aca0081611550919061351a565b60188190555050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6115e36118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461166f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116669061345b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d4906135cb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117a06118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461182c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118239061345b565b60405180910390fd5b5f5b81518110156118b957600160105f84848151811061184f5761184e613479565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806118b1906134d3565b91505061182e565b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192990613659565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611997906136e7565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a7a919061302b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aec90613775565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5a90613803565b60405180910390fd5b5f8111611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c90613891565b60405180910390fd5b611bad61108a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c1b5750611beb61108a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ff457601560149054906101000a900460ff16611caa57611c3c61108a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca09061391f565b60405180910390fd5b5b601654811115611cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce690613987565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d8d575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc390613a15565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e785760175481611e2d84610e22565b611e379190613a33565b10611e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6e90613ad6565b60405180910390fd5b5b5f611e8230610e22565b90505f60185482101590506018548210611e9c5760185491505b808015611eb4575060158054906101000a900460ff16155b8015611f0d575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f255750601560169054906101000a900460ff165b8015611f78575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fcb575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ff157611fd98261241d565b5f4790505f811115611fef57611fee47612349565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612094575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612145575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612144575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612152575f90506122d5565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121fb575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561221357600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122bc575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122d457600a54600c81905550600b54600d819055505b5b6122e184848484612686565b50505050565b5f83831115829061232e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123259190612ea6565b60405180910390fd5b505f838561233c9190613af4565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156123ad573d5f803e3d5ffd5b5050565b5f6006548211156123f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ee90613b97565b60405180910390fd5b5f6124006126b3565b905061241581846126dc90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561245357612452613292565b5b6040519080825280602002602001820160405280156124815781602001602082028036833780820191505090505b50905030815f8151811061249857612497613479565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561253c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125609190613bc9565b8160018151811061257457612573613479565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125da3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118c4565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161263c959493929190613ce4565b5f604051808303815f87803b158015612653575f80fd5b505af1158015612665573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b8061269457612693612725565b5b61269f84848461275e565b806126ad576126ac61291e565b5b50505050565b5f805f6126be612932565b915091506126d581836126dc90919063ffffffff16565b9250505090565b5f61271d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061298e565b905092915050565b5f600c5414801561273757505f600d54145b61275c57600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061276d876129ef565b9550955095509550955095506127c98660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a4f90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061285a8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a9890919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128a481612af5565b6128ae8483612bac565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161290b919061302b565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f670de0b6b3a76400009050612963670de0b6b3a76400006006546126dc90919063ffffffff16565b82101561298157600654670de0b6b3a764000093509350505061298a565b81819350935050505b9091565b5f80831182906129d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cb9190612ea6565b60405180910390fd5b505f83856129e29190613d69565b9050809150509392505050565b5f805f805f805f805f612a078a600c54600d54612be6565b9250925092505f612a166126b3565b90505f805f612a278e878787612c78565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f612a9083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122e7565b905092915050565b5f808284612aa69190613a33565b905083811015612aeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae290613de3565b60405180910390fd5b8091505092915050565b5f612afe6126b3565b90505f612b148284612cfc90919063ffffffff16565b9050612b668160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a9890919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612bc182600654612a4f90919063ffffffff16565b600681905550612bdc81600754612a9890919063ffffffff16565b6007819055505050565b5f805f80612c106064612c02888a612cfc90919063ffffffff16565b6126dc90919063ffffffff16565b90505f612c396064612c2b888b612cfc90919063ffffffff16565b6126dc90919063ffffffff16565b90505f612c6182612c53858c612a4f90919063ffffffff16565b612a4f90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612c8f8589612cfc90919063ffffffff16565b90505f612ca58689612cfc90919063ffffffff16565b90505f612cbb8789612cfc90919063ffffffff16565b90505f612ce382612cd58587612a4f90919063ffffffff16565b612a4f90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612d0c575f9050612d6d565b5f8284612d19919061351a565b9050828482612d289190613d69565b14612d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5f90613e71565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612dad82612d84565b9050919050565b612dbd81612da3565b8114612dc7575f80fd5b50565b5f81359050612dd881612db4565b92915050565b5f8060408385031215612df457612df3612d7c565b5b5f612e0185828601612dca565b9250506020612e1285828601612dca565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612e53578082015181840152602081019050612e38565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612e7882612e1c565b612e828185612e26565b9350612e92818560208601612e36565b612e9b81612e5e565b840191505092915050565b5f6020820190508181035f830152612ebe8184612e6e565b905092915050565b5f819050919050565b612ed881612ec6565b8114612ee2575f80fd5b50565b5f81359050612ef381612ecf565b92915050565b5f8060408385031215612f0f57612f0e612d7c565b5b5f612f1c85828601612dca565b9250506020612f2d85828601612ee5565b9150509250929050565b5f8115159050919050565b612f4b81612f37565b82525050565b5f602082019050612f645f830184612f42565b92915050565b5f8060408385031215612f8057612f7f612d7c565b5b5f612f8d85828601612ee5565b9250506020612f9e85828601612ee5565b9150509250929050565b5f819050919050565b5f612fcb612fc6612fc184612d84565b612fa8565b612d84565b9050919050565b5f612fdc82612fb1565b9050919050565b5f612fed82612fd2565b9050919050565b612ffd81612fe3565b82525050565b5f6020820190506130165f830184612ff4565b92915050565b61302581612ec6565b82525050565b5f60208201905061303e5f83018461301c565b92915050565b5f805f6060848603121561305b5761305a612d7c565b5b5f61306886828701612dca565b935050602061307986828701612dca565b925050604061308a86828701612ee5565b9150509250925092565b5f60ff82169050919050565b6130a981613094565b82525050565b5f6020820190506130c25f8301846130a0565b92915050565b5f6130d282612d84565b9050919050565b6130e2816130c8565b82525050565b5f6020820190506130fb5f8301846130d9565b92915050565b61310a81612da3565b82525050565b5f6020820190506131235f830184613101565b92915050565b5f6020828403121561313e5761313d612d7c565b5b5f61314b84828501612dca565b91505092915050565b5f6020828403121561316957613168612d7c565b5b5f61317684828501612ee5565b91505092915050565b61318881612f37565b8114613192575f80fd5b50565b5f813590506131a38161317f565b92915050565b5f602082840312156131be576131bd612d7c565b5b5f6131cb84828501613195565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126131f5576131f46131d4565b5b8235905067ffffffffffffffff811115613212576132116131d8565b5b60208301915083602082028301111561322e5761322d6131dc565b5b9250929050565b5f805f6040848603121561324c5761324b612d7c565b5b5f84013567ffffffffffffffff81111561326957613268612d80565b5b613275868287016131e0565b9350935050602061328886828701613195565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6132c882612e5e565b810181811067ffffffffffffffff821117156132e7576132e6613292565b5b80604052505050565b5f6132f9612d73565b905061330582826132bf565b919050565b5f67ffffffffffffffff82111561332457613323613292565b5b602082029050602081019050919050565b5f6133476133428461330a565b6132f0565b9050808382526020820190506020840283018581111561336a576133696131dc565b5b835b81811015613393578061337f8882612dca565b84526020840193505060208101905061336c565b5050509392505050565b5f82601f8301126133b1576133b06131d4565b5b81356133c1848260208601613335565b91505092915050565b5f602082840312156133df576133de612d7c565b5b5f82013567ffffffffffffffff8111156133fc576133fb612d80565b5b6134088482850161339d565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613445602083612e26565b915061345082613411565b602082019050919050565b5f6020820190508181035f83015261347281613439565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6134dd82612ec6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361350f5761350e6134a6565b5b600182019050919050565b5f61352482612ec6565b915061352f83612ec6565b925082820261353d81612ec6565b91508282048414831517613554576135536134a6565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6135b5602683612e26565b91506135c08261355b565b604082019050919050565b5f6020820190508181035f8301526135e2816135a9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613643602483612e26565b915061364e826135e9565b604082019050919050565b5f6020820190508181035f83015261367081613637565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6136d1602283612e26565b91506136dc82613677565b604082019050919050565b5f6020820190508181035f8301526136fe816136c5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61375f602583612e26565b915061376a82613705565b604082019050919050565b5f6020820190508181035f83015261378c81613753565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137ed602383612e26565b91506137f882613793565b604082019050919050565b5f6020820190508181035f83015261381a816137e1565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61387b602983612e26565b915061388682613821565b604082019050919050565b5f6020820190508181035f8301526138a88161386f565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f613909603f83612e26565b9150613914826138af565b604082019050919050565b5f6020820190508181035f830152613936816138fd565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613971601c83612e26565b915061397c8261393d565b602082019050919050565b5f6020820190508181035f83015261399e81613965565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f6139ff602383612e26565b9150613a0a826139a5565b604082019050919050565b5f6020820190508181035f830152613a2c816139f3565b9050919050565b5f613a3d82612ec6565b9150613a4883612ec6565b9250828201905080821115613a6057613a5f6134a6565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613ac0602383612e26565b9150613acb82613a66565b604082019050919050565b5f6020820190508181035f830152613aed81613ab4565b9050919050565b5f613afe82612ec6565b9150613b0983612ec6565b9250828203905081811115613b2157613b206134a6565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613b81602a83612e26565b9150613b8c82613b27565b604082019050919050565b5f6020820190508181035f830152613bae81613b75565b9050919050565b5f81519050613bc381612db4565b92915050565b5f60208284031215613bde57613bdd612d7c565b5b5f613beb84828501613bb5565b91505092915050565b5f819050919050565b5f613c17613c12613c0d84613bf4565b612fa8565b612ec6565b9050919050565b613c2781613bfd565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c5f81612da3565b82525050565b5f613c708383613c56565b60208301905092915050565b5f602082019050919050565b5f613c9282613c2d565b613c9c8185613c37565b9350613ca783613c47565b805f5b83811015613cd7578151613cbe8882613c65565b9750613cc983613c7c565b925050600181019050613caa565b5085935050505092915050565b5f60a082019050613cf75f83018861301c565b613d046020830187613c1e565b8181036040830152613d168186613c88565b9050613d256060830185613101565b613d32608083018461301c565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d7382612ec6565b9150613d7e83612ec6565b925082613d8e57613d8d613d3c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613dcd601b83612e26565b9150613dd882613d99565b602082019050919050565b5f6020820190508181035f830152613dfa81613dc1565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e5b602183612e26565b9150613e6682613e01565b604082019050919050565b5f6020820190508181035f830152613e8881613e4f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f3ab655dc09d28bb3c6815f11ad7764adad103c376f4cfe68cb68421bf545fd864736f6c63430008140033