0x60806040523480156200001157600080fd5b50336040518060400160405280600c81526020017f56535820576869746542495400000000000000000000000000000000000000008152506040518060400160405280600381526020017f56584200000000000000000000000000000000000000000000000000000000008152508160039081620000909190620007b8565b508060049081620000a29190620007b8565b505050620000b681620000cd60201b60201c565b50620000c76200019360201b60201c565b62000ac4565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001a3620001c760201b60201c565b620001c5336f4b3b4ca85a86c47a098a2240000000006200025860201b60201c565b565b620001d7620002e260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620001fd620002ea60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000256576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200024d9062000900565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002ca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002c19062000972565b60405180910390fd5b620002de600083836200031460201b60201c565b5050565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200036a5780600260008282546200035d9190620009c3565b925050819055506200043a565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015620003f3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003ea9062000a74565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620004855780600260008282540392505081905550620004d2565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000531919062000aa7565b60405180910390a3505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005c057607f821691505b602082108103620005d657620005d562000578565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000601565b6200064c868362000601565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000699620006936200068d8462000664565b6200066e565b62000664565b9050919050565b6000819050919050565b620006b58362000678565b620006cd620006c482620006a0565b8484546200060e565b825550505050565b600090565b620006e4620006d5565b620006f1818484620006aa565b505050565b5b8181101562000719576200070d600082620006da565b600181019050620006f7565b5050565b601f82111562000768576200073281620005dc565b6200073d84620005f1565b810160208510156200074d578190505b620007656200075c85620005f1565b830182620006f6565b50505b505050565b600082821c905092915050565b60006200078d600019846008026200076d565b1980831691505092915050565b6000620007a883836200077a565b9150826002028217905092915050565b620007c3826200053e565b67ffffffffffffffff811115620007df57620007de62000549565b5b620007eb8254620005a7565b620007f88282856200071d565b600060209050601f8311600181146200083057600084156200081b578287015190505b6200082785826200079a565b86555062000897565b601f1984166200084086620005dc565b60005b828110156200086a5784890151825560018201915060208501945060208101905062000843565b868310156200088a578489015162000886601f8916826200077a565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620008e86020836200089f565b9150620008f582620008b0565b602082019050919050565b600060208201905081810360008301526200091b81620008d9565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200095a601f836200089f565b9150620009678262000922565b602082019050919050565b600060208201905081810360008301526200098d816200094b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009d08262000664565b9150620009dd8362000664565b9250828201905080821115620009f857620009f762000994565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600062000a5c6026836200089f565b915062000a6982620009fe565b604082019050919050565b6000602082019050818103600083015262000a8f8162000a4d565b9050919050565b62000aa18162000664565b82525050565b600060208201905062000abe600083018462000a96565b92915050565b6117928062000ad46000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d714610264578063a9059cbb14610294578063dd62ed3e146102c4578063f2fde38b146102f4576100f5565b806370a08231146101ee578063715018a61461021e5780638da5cb5b1461022857806395d89b4114610246576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b45780634838e647146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610310565b60405161010f9190610edb565b60405180910390f35b610132600480360381019061012d9190610f96565b6103a2565b60405161013f9190610ff1565b60405180910390f35b6101506103c5565b60405161015d919061101b565b60405180910390f35b610180600480360381019061017b9190611036565b6103cf565b60405161018d9190610ff1565b60405180910390f35b61019e6103fe565b6040516101ab91906110a5565b60405180910390f35b6101ce60048036038101906101c99190610f96565b610407565b6040516101db9190610ff1565b60405180910390f35b6101ec61043e565b005b610208600480360381019061020391906110c0565b610462565b604051610215919061101b565b60405180910390f35b6102266104aa565b005b6102306104be565b60405161023d91906110fc565b60405180910390f35b61024e6104e8565b60405161025b9190610edb565b60405180910390f35b61027e60048036038101906102799190610f96565b61057a565b60405161028b9190610ff1565b60405180910390f35b6102ae60048036038101906102a99190610f96565b6105f1565b6040516102bb9190610ff1565b60405180910390f35b6102de60048036038101906102d99190611117565b610614565b6040516102eb919061101b565b60405180910390f35b61030e600480360381019061030991906110c0565b61069b565b005b60606003805461031f90611186565b80601f016020809104026020016040519081016040528092919081815260200182805461034b90611186565b80156103985780601f1061036d57610100808354040283529160200191610398565b820191906000526020600020905b81548152906001019060200180831161037b57829003601f168201915b5050505050905090565b6000806103ad61071e565b90506103ba818585610726565b600191505092915050565b6000600254905090565b6000806103da61071e565b90506103e78582856108ef565b6103f285858561097b565b60019150509392505050565b60006012905090565b60008061041261071e565b90506104338185856104248589610614565b61042e91906111e6565b610726565b600191505092915050565b610446610a69565b610460336f4b3b4ca85a86c47a098a224000000000610ae7565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6104b2610a69565b6104bc6000610b66565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546104f790611186565b80601f016020809104026020016040519081016040528092919081815260200182805461052390611186565b80156105705780601f1061054557610100808354040283529160200191610570565b820191906000526020600020905b81548152906001019060200180831161055357829003601f168201915b5050505050905090565b60008061058561071e565b905060006105938286610614565b9050838110156105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf9061128c565b60405180910390fd5b6105e58286868403610726565b60019250505092915050565b6000806105fc61071e565b905061060981858561097b565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6106a3610a69565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610712576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107099061131e565b60405180910390fd5b61071b81610b66565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c906113b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90611442565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108e2919061101b565b60405180910390a3505050565b60006108fb8484610614565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109755781811015610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e906114ae565b60405180910390fd5b6109748484848403610726565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e190611540565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a50906115d2565b60405180910390fd5b610a64838383610c2c565b505050565b610a7161071e565b73ffffffffffffffffffffffffffffffffffffffff16610a8f6104be565b73ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc9061163e565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4d906116aa565b60405180910390fd5b610b6260008383610c2c565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c7e578060026000828254610c7291906111e6565b92505081905550610d4b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfb9061173c565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d945780600260008282540392505081905550610de1565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e3e919061101b565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610e85578082015181840152602081019050610e6a565b60008484015250505050565b6000601f19601f8301169050919050565b6000610ead82610e4b565b610eb78185610e56565b9350610ec7818560208601610e67565b610ed081610e91565b840191505092915050565b60006020820190508181036000830152610ef58184610ea2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610f2d82610f02565b9050919050565b610f3d81610f22565b8114610f4857600080fd5b50565b600081359050610f5a81610f34565b92915050565b6000819050919050565b610f7381610f60565b8114610f7e57600080fd5b50565b600081359050610f9081610f6a565b92915050565b60008060408385031215610fad57610fac610efd565b5b6000610fbb85828601610f4b565b9250506020610fcc85828601610f81565b9150509250929050565b60008115159050919050565b610feb81610fd6565b82525050565b60006020820190506110066000830184610fe2565b92915050565b61101581610f60565b82525050565b6000602082019050611030600083018461100c565b92915050565b60008060006060848603121561104f5761104e610efd565b5b600061105d86828701610f4b565b935050602061106e86828701610f4b565b925050604061107f86828701610f81565b9150509250925092565b600060ff82169050919050565b61109f81611089565b82525050565b60006020820190506110ba6000830184611096565b92915050565b6000602082840312156110d6576110d5610efd565b5b60006110e484828501610f4b565b91505092915050565b6110f681610f22565b82525050565b600060208201905061111160008301846110ed565b92915050565b6000806040838503121561112e5761112d610efd565b5b600061113c85828601610f4b565b925050602061114d85828601610f4b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061119e57607f821691505b6020821081036111b1576111b0611157565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006111f182610f60565b91506111fc83610f60565b9250828201905080821115611214576112136111b7565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611276602583610e56565b91506112818261121a565b604082019050919050565b600060208201905081810360008301526112a581611269565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611308602683610e56565b9150611313826112ac565b604082019050919050565b60006020820190508181036000830152611337816112fb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061139a602483610e56565b91506113a58261133e565b604082019050919050565b600060208201905081810360008301526113c98161138d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061142c602283610e56565b9150611437826113d0565b604082019050919050565b6000602082019050818103600083015261145b8161141f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611498601d83610e56565b91506114a382611462565b602082019050919050565b600060208201905081810360008301526114c78161148b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061152a602583610e56565b9150611535826114ce565b604082019050919050565b600060208201905081810360008301526115598161151d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006115bc602383610e56565b91506115c782611560565b604082019050919050565b600060208201905081810360008301526115eb816115af565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611628602083610e56565b9150611633826115f2565b602082019050919050565b600060208201905081810360008301526116578161161b565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611694601f83610e56565b915061169f8261165e565b602082019050919050565b600060208201905081810360008301526116c381611687565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611726602683610e56565b9150611731826116ca565b604082019050919050565b6000602082019050818103600083015261175581611719565b905091905056fea2646970667358221220c51b039f94d899581fbee5fe4aee48d05b9baa5368539eb9830c533f731b716964736f6c63430008130033