From 1a6c5da5dadb7c4b4a07ed2186068153e829904e Mon Sep 17 00:00:00 2001 From: Franco Victorio Date: Mon, 14 May 2018 11:19:38 -0300 Subject: [PATCH 1/3] Replace checks with modifiers --- .../contracts/ProofOfPhysicalAddress.json | 9125 ++++++++--------- .../contracts/ProofOfPhysicalAddress.sol | 67 +- 2 files changed, 4085 insertions(+), 5107 deletions(-) diff --git a/blockchain/build/contracts/ProofOfPhysicalAddress.json b/blockchain/build/contracts/ProofOfPhysicalAddress.json index c57aea74..90d709c9 100644 --- a/blockchain/build/contracts/ProofOfPhysicalAddress.json +++ b/blockchain/build/contracts/ProofOfPhysicalAddress.json @@ -613,18 +613,18 @@ "type": "function" } ], - "bytecode": "0x6060604052341561000f57600080fd5b6040516020806140f983398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050613fdb8061011e6000396000f300606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305831776146101595780630e666e49146101c5578063238ac933146102165780632c2a178e1461026b5780634028a0f1146104485780636c19e783146104855780637b103999146104be578063853828b6146105135780638da5cb5b14610528578063a5db3d021461057d578063a87430ba14610600578063a91ee0dc1461064d578063ae9b051c14610686578063b4778e2d146106a9578063b55fbd0414610914578063bff1f9e1146109c6578063c0fe077f14610a03578063c228251b14610a82578063c94f2c1b14610beb578063cfad527714610c38578063d673560414610c75578063d956be1014610d27578063de3d702e14610d8c578063e585332e14610dd9578063f0486ab414610f8b578063feea980814610fe5575b600080fd5b341561016457600080fd5b610199600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110bd565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b34156101d057600080fd5b6101fc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111cb565b604051808215151515815260200191505060405180910390f35b341561022157600080fd5b610229611219565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610446600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080356000191690602001909190803560ff16906020019091908035600019169060200190919080356000191690602001909190505061123f565b005b341561045357600080fd5b61045b6119b1565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561049057600080fd5b6104bc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119cb565b005b34156104c957600080fd5b6104d1611a6a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561051e57600080fd5b610526611a90565b005b341561053357600080fd5b61053b611b8a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058857600080fd5b6105fe600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611baf565b005b341561060b57600080fd5b610637600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611ef9565b6040518082815260200191505060405180910390f35b341561065857600080fd5b610684600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f17565b005b341561069157600080fd5b6106a76004808035906020019091905050611fb6565b005b34156106b457600080fd5b6106e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612099565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019080838360005b8381101561073957808201518184015260208101905061071e565b50505050905090810190601f1680156107665780820380516001836020036101000a031916815260200191505b5086810385528a818151815260200191508051906020019080838360005b8381101561079f578082015181840152602081019050610784565b50505050905090810190601f1680156107cc5780820380516001836020036101000a031916815260200191505b50868103845289818151815260200191508051906020019080838360005b838110156108055780820151818401526020810190506107ea565b50505050905090810190601f1680156108325780820380516001836020036101000a031916815260200191505b50868103835288818151815260200191508051906020019080838360005b8381101561086b578082015181840152602081019050610850565b50505050905090810190601f1680156108985780820380516001836020036101000a031916815260200191505b50868103825287818151815260200191508051906020019080838360005b838110156108d15780820151818401526020810190506108b6565b50505050905090810190601f1680156108fe5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561091f57600080fd5b61094b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506125d5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098b578082015181840152602081019050610970565b50505050905090810190601f1680156109b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109d157600080fd5b6109d96127c8565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610a0e57600080fd5b610a47600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035600019169060200190919050506127e2565b604051808515151515815260200184815260200183151515158152602001826000191660001916815260200194505050505060405180910390f35b3415610a8d57600080fd5b610be9600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612968565b005b3415610bf657600080fd5b610c22600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612f42565b6040518082815260200191505060405180910390f35b3415610c4357600080fd5b610c4b612fc7565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610c8057600080fd5b610cac600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612fe1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cec578082015181840152602081019050610cd1565b50505050905090810190601f168015610d195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610d3257600080fd5b610d7260048080356000191690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050613145565b604051808215151515815260200191505060405180910390f35b3415610d9757600080fd5b610dc3600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506132e1565b6040518082815260200191505060405180910390f35b3415610de457600080fd5b610f5f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050613330565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b3415610f9657600080fd5b610fcb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613607565b604051808215151515815260200191505060405180910390f35b3415610ff057600080fd5b611025600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613860565b60405180806020018581526020018481526020018360001916600019168152602001828103825286818151815260200191508051906020019080838360005b8381101561107f578082015181840152602081019050611064565b50505050905090810190601f1680156110ac5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6000806000806110cc866111cb565b15156110d757600080fd5b600090505b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508110156111b45784600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018281548110151561117957fe5b90600052602060002090600902016006015414156111a95760018161119e8884613607565b9350935093506111c3565b6001810190506110dc565b60008060008191509350935093505b509250925092565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061124a613c69565b60008e5111151561125a57600080fd5b60008d5111151561126a57600080fd5b60008c5111151561127a57600080fd5b60008b5111151561128a57600080fd5b60008a5111151561129a57600080fd5b600089511115156112aa57600080fd5b8734101515156112b957600080fd5b338e8e8e8e8e8e8e8e604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189805190602001908083835b6020831015156113385780518252602082019150602081019050602083039250611313565b6001836020036101000a03801982511681845116808217855250505050505090500188805190602001908083835b60208310151561138b5780518252602082019150602081019050602083039250611366565b6001836020036101000a03801982511681845116808217855250505050505090500187805190602001908083835b6020831015156113de57805182526020820191506020810190506020830392506113b9565b6001836020036101000a03801982511681845116808217855250505050505090500186805190602001908083835b602083101515611431578051825260208201915060208101905060208303925061140c565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515611484578051825260208201915060208101905060208303925061145f565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156114d757805182526020820191506020810190506020830392506114b2565b6001836020036101000a038019825116818451168082178552505050505050905001838152602001826000191660001916815260200199505050505050505050506040518091039020925061152e83878787613145565b151561153957600080fd5b611542336111cb565b1561156e57611555338e8e8e8e8e613330565b905050809250508115151561156957600080fd5b6115f9565b43600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506001600460008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8d81600001819052508c81602001819052508b81604001819052508a8160600181905250898160800181905250888160a00181905250438160c00181815250508681610100019060001916908160001916815250508c8c8c8c8c6040518086805190602001908083835b6020831015156116885780518252602082019150602081019050602083039250611663565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156116db57805182526020820191506020810190506020830392506116b6565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b60208310151561172e5780518252602082019150602081019050602083039250611709565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515611781578051825260208201915060208101905060208303925061175c565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156117d457805182526020820191506020810190506020830392506117af565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390208160e001906000191690816000191681525050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480600101828161186c9190613ce0565b91600052602060002090600902016000839091909150600082015181600001908051906020019061189e929190613d12565b5060208201518160010190805190602001906118bb929190613d12565b5060408201518160020190805190602001906118d8929190613d12565b5060608201518160030190805190602001906118f5929190613d12565b506080820151816004019080519060200190611912929190613d12565b5060a082015181600501908051906020019061192f929190613d12565b5060c0820151816006015560e0820151816007019060001916905561010082015181600801906000191690555050506001600460088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050505050505050505050505050565b600460109054906101000a900467ffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a2657600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aeb57600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff16311415611b1057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611b8857600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000808951111515611bc657600080fd5b611bcf336111cb565b1515611bda57600080fd5b3389604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182805190602001908083835b602083101515611c525780518252602082019150602081019050602083039250611c2d565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405180910390209450611c8e85898989613145565b1515611c9957600080fd5b611d05338a6040518082805190602001908083835b602083101515611cd35780518252602082019150602081019050602083039250611cae565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206127e2565b80945081955082965083975050505050831515611d2157600080fd5b81151515611d2e57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639918925d338373__PhysicalAddressClaim__________________63deb21fa2436000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1515611de157600080fd5b6102c65a03f41515611df257600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182600019166000191681526020019350505050600060405180830381600087803b1515611e9757600080fd5b6102c65a03f11515611ea857600080fd5b5050506001600460108282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050505050505050565b60036020528060005260406000206000915090508060000154905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f7257600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561201157600080fd5b803073ffffffffffffffffffffffffffffffffffffffff1631101561203557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561209657600080fd5b50565b6120a1613d92565b6120a9613d92565b6120b1613d92565b6120b9613d92565b6120c1613d92565b6120ca876111cb565b15156120d557600080fd5b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018681548110151561212457fe5b9060005260206000209060090201600101600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018781548110151561218457fe5b9060005260206000209060090201600201600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101888154811015156121e457fe5b9060005260206000209060090201600301600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018981548110151561224457fe5b9060005260206000209060090201600401600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a8154811015156122a457fe5b9060005260206000209060090201600501848054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561234a5780601f1061231f5761010080835404028352916020019161234a565b820191906000526020600020905b81548152906001019060200180831161232d57829003601f168201915b50505050509450838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123e65780601f106123bb576101008083540402835291602001916123e6565b820191906000526020600020905b8154815290600101906020018083116123c957829003601f168201915b50505050509350828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124825780601f1061245757610100808354040283529160200191612482565b820191906000526020600020905b81548152906001019060200180831161246557829003601f168201915b50505050509250818054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561251e5780601f106124f35761010080835404028352916020019161251e565b820191906000526020600020905b81548152906001019060200180831161250157829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125ba5780601f1061258f576101008083540402835291602001916125ba565b820191906000526020600020905b81548152906001019060200180831161259d57829003601f168201915b50505050509050945094509450945094509295509295909350565b6125dd613d92565b6000806125e9846111cb565b15156125f457600080fd5b600091505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508210156127ad57816001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500303905061269d8482613607565b156127a257600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101818154811015156126f157fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127965780601f1061276b57610100808354040283529160200191612796565b820191906000526020600020905b81548152906001019060200180831161277957829003601f168201915b505050505092506127c1565b6001820191506125f9565b602060405190810160405280600081525092505b5050919050565b600460009054906101000a900467ffffffffffffffff1681565b60008060008060006127f3876111cb565b15156127fe57600080fd5b600090505b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050811015612946578560001916600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101828154811015156128a457fe5b90600052602060002090600902016008015460001916141561293b576001816128cd8984613607565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561291c57fe5b906000526020600020906009020160070154945094509450945061295e565b600181019050612803565b60008060008082925080600102905094509450945094505b5092959194509250565b6000806000806000612979336111cb565b151561298457600080fd5b612992338b8b8b8b8b613330565b5080955081965050508415156129a757600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101848154811015156129f657fe5b9060005260206000209060090201600701549250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7508ec73033866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b1515612b0a57600080fd5b6102c65a03f11515612b1b57600080fd5b505050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905091508390505b60018203811015612d5c57600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018201815481101515612bc757fe5b9060005260206000209060090201600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515612c2457fe5b906000526020600020906009020160008201816000019080546001816001161561010002031660029004612c59929190613da6565b5060018201816001019080546001816001161561010002031660029004612c81929190613da6565b5060028201816002019080546001816001161561010002031660029004612ca9929190613da6565b5060038201816003019080546001816001161561010002031660029004612cd1929190613da6565b5060048201816004019080546001816001161561010002031660029004612cf9929190613da6565b5060058201816005019080546001816001161561010002031660029004612d21929190613da6565b506006820154816006015560078201548160070190600019169055600882015481600801906000191690559050508080600101915050612b6a565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018303815481101515612dae57fe5b906000526020600020906009020160008082016000612dcd9190613e2d565b600182016000612ddd9190613e2d565b600282016000612ded9190613e2d565b600382016000612dfd9190613e2d565b600482016000612e0d9190613e2d565b600582016000612e1d9190613e2d565b6006820160009055600782016000905560088201600090555050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480919060019003612e8c9190613e75565b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490501415612f3657600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000612f339190613ea7565b50505b50505050505050505050565b6000806000809150600090505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050811015612fbd57612fa68482613607565b15612fb2576001820191505b600181019050612f4f565b8192505050919050565b600460089054906101000a900467ffffffffffffffff1681565b612fe9613d92565b612ff2826111cb565b1515612ffd57600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381548110151561309457fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131395780601f1061310e57610100808354040283529160200191613139565b820191906000526020600020905b81548152906001019060200180831161311c57829003601f168201915b50505050509050919050565b600061314f613ecb565b60006040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250915081876040518083805190602001908083835b6020831015156131c0578051825260208201915060208101905060208303925061319b565b6001836020036101000a03801982511681845116808217855250505050505090500182600019166000191681526020019250505060405180910390209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600182888888604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f115156132b557600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490509050919050565b60008060008060006133418b6111cb565b151561334c57600080fd5b89898989896040518086805190602001908083835b6020831015156133865780518252602082019150602081019050602083039250613361565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156133d957805182526020820191506020810190506020830392506133b4565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b60208310151561342c5780518252602082019150602081019050602083039250613407565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b60208310151561347f578051825260208201915060208101905060208303925061345a565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156134d257805182526020820191506020810190506020830392506134ad565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390209150600090505b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508110156135ea578160001916600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101828154811015156135ab57fe5b9060005260206000209060090201600701546000191614156135df576001816135d48d84613607565b9450945094506135f9565b60018101905061350a565b60008060008191509450945094505b505096509650969350505050565b600080613613846111cb565b151561361e57600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561366d57fe5b906000526020600020906009020160070154905060006001028160001916141561369a5760009150613859565b600073__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff3089876000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b15156137bf57600080fd5b6102c65a03f115156137d057600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b151561383a57600080fd5b6102c65a03f4151561384b57600080fd5b505050604051805190501191505b5092915050565b613868613d92565b6000806000613876866111cb565b151561388157600080fd5b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101858154811015156138d057fe5b9060005260206000209060090201600001600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018681548110151561393057fe5b90600052602060002090600902016006015473__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308c600360008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018d8154811015156139eb57fe5b9060005260206000209060090201600701546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b1515613ac557600080fd5b6102c65a03f11515613ad657600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b1515613b4057600080fd5b6102c65a03f41515613b5157600080fd5b50505060405180519050600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010188815481101515613baa57fe5b906000526020600020906009020160070154838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613c515780601f10613c2657610100808354040283529160200191613c51565b820191906000526020600020905b815481529060010190602001808311613c3457829003601f168201915b50505050509350935093509350935092959194509250565b61012060405190810160405280613c7e613edf565b8152602001613c8b613edf565b8152602001613c98613edf565b8152602001613ca5613edf565b8152602001613cb2613edf565b8152602001613cbf613edf565b81526020016000815260200160008019168152602001600080191681525090565b815481835581811511613d0d57600902816009028360005260206000209182019101613d0c9190613ef3565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613d5357805160ff1916838001178555613d81565b82800160010185558215613d81579182015b82811115613d80578251825591602001919060010190613d65565b5b509050613d8e9190613f8a565b5090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ddf5780548555613e1c565b82800160010185558215613e1c57600052602060002091601f016020900482015b82811115613e1b578254825591600101919060010190613e00565b5b509050613e299190613f8a565b5090565b50805460018160011615610100020316600290046000825580601f10613e535750613e72565b601f016020900490600052602060002090810190613e719190613f8a565b5b50565b815481835581811511613ea257600902816009028360005260206000209182019101613ea19190613ef3565b5b505050565b5080546000825560090290600052602060002090810190613ec89190613ef3565b50565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b613f8791905b80821115613f835760008082016000613f129190613e2d565b600182016000613f229190613e2d565b600282016000613f329190613e2d565b600382016000613f429190613e2d565b600482016000613f529190613e2d565b600582016000613f629190613e2d565b60068201600090556007820160009055600882016000905550600901613ef9565b5090565b90565b613fac91905b80821115613fa8576000816000905550600101613f90565b5090565b905600a165627a7a723058209a32bb0aed1806d30d2f480f11b09f153b27f5b0710c87495c93dc2426036b330029", - "deployedBytecode": "0x606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305831776146101595780630e666e49146101c5578063238ac933146102165780632c2a178e1461026b5780634028a0f1146104485780636c19e783146104855780637b103999146104be578063853828b6146105135780638da5cb5b14610528578063a5db3d021461057d578063a87430ba14610600578063a91ee0dc1461064d578063ae9b051c14610686578063b4778e2d146106a9578063b55fbd0414610914578063bff1f9e1146109c6578063c0fe077f14610a03578063c228251b14610a82578063c94f2c1b14610beb578063cfad527714610c38578063d673560414610c75578063d956be1014610d27578063de3d702e14610d8c578063e585332e14610dd9578063f0486ab414610f8b578063feea980814610fe5575b600080fd5b341561016457600080fd5b610199600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110bd565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b34156101d057600080fd5b6101fc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111cb565b604051808215151515815260200191505060405180910390f35b341561022157600080fd5b610229611219565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610446600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080356000191690602001909190803560ff16906020019091908035600019169060200190919080356000191690602001909190505061123f565b005b341561045357600080fd5b61045b6119b1565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561049057600080fd5b6104bc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119cb565b005b34156104c957600080fd5b6104d1611a6a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561051e57600080fd5b610526611a90565b005b341561053357600080fd5b61053b611b8a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058857600080fd5b6105fe600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611baf565b005b341561060b57600080fd5b610637600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611ef9565b6040518082815260200191505060405180910390f35b341561065857600080fd5b610684600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f17565b005b341561069157600080fd5b6106a76004808035906020019091905050611fb6565b005b34156106b457600080fd5b6106e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612099565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019080838360005b8381101561073957808201518184015260208101905061071e565b50505050905090810190601f1680156107665780820380516001836020036101000a031916815260200191505b5086810385528a818151815260200191508051906020019080838360005b8381101561079f578082015181840152602081019050610784565b50505050905090810190601f1680156107cc5780820380516001836020036101000a031916815260200191505b50868103845289818151815260200191508051906020019080838360005b838110156108055780820151818401526020810190506107ea565b50505050905090810190601f1680156108325780820380516001836020036101000a031916815260200191505b50868103835288818151815260200191508051906020019080838360005b8381101561086b578082015181840152602081019050610850565b50505050905090810190601f1680156108985780820380516001836020036101000a031916815260200191505b50868103825287818151815260200191508051906020019080838360005b838110156108d15780820151818401526020810190506108b6565b50505050905090810190601f1680156108fe5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561091f57600080fd5b61094b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506125d5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098b578082015181840152602081019050610970565b50505050905090810190601f1680156109b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109d157600080fd5b6109d96127c8565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610a0e57600080fd5b610a47600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035600019169060200190919050506127e2565b604051808515151515815260200184815260200183151515158152602001826000191660001916815260200194505050505060405180910390f35b3415610a8d57600080fd5b610be9600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612968565b005b3415610bf657600080fd5b610c22600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612f42565b6040518082815260200191505060405180910390f35b3415610c4357600080fd5b610c4b612fc7565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610c8057600080fd5b610cac600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612fe1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cec578082015181840152602081019050610cd1565b50505050905090810190601f168015610d195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610d3257600080fd5b610d7260048080356000191690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050613145565b604051808215151515815260200191505060405180910390f35b3415610d9757600080fd5b610dc3600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506132e1565b6040518082815260200191505060405180910390f35b3415610de457600080fd5b610f5f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050613330565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b3415610f9657600080fd5b610fcb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613607565b604051808215151515815260200191505060405180910390f35b3415610ff057600080fd5b611025600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613860565b60405180806020018581526020018481526020018360001916600019168152602001828103825286818151815260200191508051906020019080838360005b8381101561107f578082015181840152602081019050611064565b50505050905090810190601f1680156110ac5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6000806000806110cc866111cb565b15156110d757600080fd5b600090505b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508110156111b45784600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018281548110151561117957fe5b90600052602060002090600902016006015414156111a95760018161119e8884613607565b9350935093506111c3565b6001810190506110dc565b60008060008191509350935093505b509250925092565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061124a613c69565b60008e5111151561125a57600080fd5b60008d5111151561126a57600080fd5b60008c5111151561127a57600080fd5b60008b5111151561128a57600080fd5b60008a5111151561129a57600080fd5b600089511115156112aa57600080fd5b8734101515156112b957600080fd5b338e8e8e8e8e8e8e8e604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189805190602001908083835b6020831015156113385780518252602082019150602081019050602083039250611313565b6001836020036101000a03801982511681845116808217855250505050505090500188805190602001908083835b60208310151561138b5780518252602082019150602081019050602083039250611366565b6001836020036101000a03801982511681845116808217855250505050505090500187805190602001908083835b6020831015156113de57805182526020820191506020810190506020830392506113b9565b6001836020036101000a03801982511681845116808217855250505050505090500186805190602001908083835b602083101515611431578051825260208201915060208101905060208303925061140c565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515611484578051825260208201915060208101905060208303925061145f565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156114d757805182526020820191506020810190506020830392506114b2565b6001836020036101000a038019825116818451168082178552505050505050905001838152602001826000191660001916815260200199505050505050505050506040518091039020925061152e83878787613145565b151561153957600080fd5b611542336111cb565b1561156e57611555338e8e8e8e8e613330565b905050809250508115151561156957600080fd5b6115f9565b43600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506001600460008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8d81600001819052508c81602001819052508b81604001819052508a8160600181905250898160800181905250888160a00181905250438160c00181815250508681610100019060001916908160001916815250508c8c8c8c8c6040518086805190602001908083835b6020831015156116885780518252602082019150602081019050602083039250611663565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156116db57805182526020820191506020810190506020830392506116b6565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b60208310151561172e5780518252602082019150602081019050602083039250611709565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515611781578051825260208201915060208101905060208303925061175c565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156117d457805182526020820191506020810190506020830392506117af565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390208160e001906000191690816000191681525050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480600101828161186c9190613ce0565b91600052602060002090600902016000839091909150600082015181600001908051906020019061189e929190613d12565b5060208201518160010190805190602001906118bb929190613d12565b5060408201518160020190805190602001906118d8929190613d12565b5060608201518160030190805190602001906118f5929190613d12565b506080820151816004019080519060200190611912929190613d12565b5060a082015181600501908051906020019061192f929190613d12565b5060c0820151816006015560e0820151816007019060001916905561010082015181600801906000191690555050506001600460088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050505050505050505050505050565b600460109054906101000a900467ffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a2657600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aeb57600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff16311415611b1057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611b8857600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000808951111515611bc657600080fd5b611bcf336111cb565b1515611bda57600080fd5b3389604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182805190602001908083835b602083101515611c525780518252602082019150602081019050602083039250611c2d565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405180910390209450611c8e85898989613145565b1515611c9957600080fd5b611d05338a6040518082805190602001908083835b602083101515611cd35780518252602082019150602081019050602083039250611cae565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206127e2565b80945081955082965083975050505050831515611d2157600080fd5b81151515611d2e57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639918925d338373__PhysicalAddressClaim__________________63deb21fa2436000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1515611de157600080fd5b6102c65a03f41515611df257600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182600019166000191681526020019350505050600060405180830381600087803b1515611e9757600080fd5b6102c65a03f11515611ea857600080fd5b5050506001600460108282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050505050505050565b60036020528060005260406000206000915090508060000154905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f7257600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561201157600080fd5b803073ffffffffffffffffffffffffffffffffffffffff1631101561203557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561209657600080fd5b50565b6120a1613d92565b6120a9613d92565b6120b1613d92565b6120b9613d92565b6120c1613d92565b6120ca876111cb565b15156120d557600080fd5b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018681548110151561212457fe5b9060005260206000209060090201600101600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018781548110151561218457fe5b9060005260206000209060090201600201600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101888154811015156121e457fe5b9060005260206000209060090201600301600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018981548110151561224457fe5b9060005260206000209060090201600401600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a8154811015156122a457fe5b9060005260206000209060090201600501848054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561234a5780601f1061231f5761010080835404028352916020019161234a565b820191906000526020600020905b81548152906001019060200180831161232d57829003601f168201915b50505050509450838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123e65780601f106123bb576101008083540402835291602001916123e6565b820191906000526020600020905b8154815290600101906020018083116123c957829003601f168201915b50505050509350828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124825780601f1061245757610100808354040283529160200191612482565b820191906000526020600020905b81548152906001019060200180831161246557829003601f168201915b50505050509250818054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561251e5780601f106124f35761010080835404028352916020019161251e565b820191906000526020600020905b81548152906001019060200180831161250157829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125ba5780601f1061258f576101008083540402835291602001916125ba565b820191906000526020600020905b81548152906001019060200180831161259d57829003601f168201915b50505050509050945094509450945094509295509295909350565b6125dd613d92565b6000806125e9846111cb565b15156125f457600080fd5b600091505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508210156127ad57816001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500303905061269d8482613607565b156127a257600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101818154811015156126f157fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127965780601f1061276b57610100808354040283529160200191612796565b820191906000526020600020905b81548152906001019060200180831161277957829003601f168201915b505050505092506127c1565b6001820191506125f9565b602060405190810160405280600081525092505b5050919050565b600460009054906101000a900467ffffffffffffffff1681565b60008060008060006127f3876111cb565b15156127fe57600080fd5b600090505b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050811015612946578560001916600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101828154811015156128a457fe5b90600052602060002090600902016008015460001916141561293b576001816128cd8984613607565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561291c57fe5b906000526020600020906009020160070154945094509450945061295e565b600181019050612803565b60008060008082925080600102905094509450945094505b5092959194509250565b6000806000806000612979336111cb565b151561298457600080fd5b612992338b8b8b8b8b613330565b5080955081965050508415156129a757600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101848154811015156129f657fe5b9060005260206000209060090201600701549250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7508ec73033866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b1515612b0a57600080fd5b6102c65a03f11515612b1b57600080fd5b505050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905091508390505b60018203811015612d5c57600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018201815481101515612bc757fe5b9060005260206000209060090201600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515612c2457fe5b906000526020600020906009020160008201816000019080546001816001161561010002031660029004612c59929190613da6565b5060018201816001019080546001816001161561010002031660029004612c81929190613da6565b5060028201816002019080546001816001161561010002031660029004612ca9929190613da6565b5060038201816003019080546001816001161561010002031660029004612cd1929190613da6565b5060048201816004019080546001816001161561010002031660029004612cf9929190613da6565b5060058201816005019080546001816001161561010002031660029004612d21929190613da6565b506006820154816006015560078201548160070190600019169055600882015481600801906000191690559050508080600101915050612b6a565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018303815481101515612dae57fe5b906000526020600020906009020160008082016000612dcd9190613e2d565b600182016000612ddd9190613e2d565b600282016000612ded9190613e2d565b600382016000612dfd9190613e2d565b600482016000612e0d9190613e2d565b600582016000612e1d9190613e2d565b6006820160009055600782016000905560088201600090555050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480919060019003612e8c9190613e75565b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490501415612f3657600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000612f339190613ea7565b50505b50505050505050505050565b6000806000809150600090505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050811015612fbd57612fa68482613607565b15612fb2576001820191505b600181019050612f4f565b8192505050919050565b600460089054906101000a900467ffffffffffffffff1681565b612fe9613d92565b612ff2826111cb565b1515612ffd57600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381548110151561309457fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131395780601f1061310e57610100808354040283529160200191613139565b820191906000526020600020905b81548152906001019060200180831161311c57829003601f168201915b50505050509050919050565b600061314f613ecb565b60006040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250915081876040518083805190602001908083835b6020831015156131c0578051825260208201915060208101905060208303925061319b565b6001836020036101000a03801982511681845116808217855250505050505090500182600019166000191681526020019250505060405180910390209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600182888888604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f115156132b557600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490509050919050565b60008060008060006133418b6111cb565b151561334c57600080fd5b89898989896040518086805190602001908083835b6020831015156133865780518252602082019150602081019050602083039250613361565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156133d957805182526020820191506020810190506020830392506133b4565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b60208310151561342c5780518252602082019150602081019050602083039250613407565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b60208310151561347f578051825260208201915060208101905060208303925061345a565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156134d257805182526020820191506020810190506020830392506134ad565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390209150600090505b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508110156135ea578160001916600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101828154811015156135ab57fe5b9060005260206000209060090201600701546000191614156135df576001816135d48d84613607565b9450945094506135f9565b60018101905061350a565b60008060008191509450945094505b505096509650969350505050565b600080613613846111cb565b151561361e57600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561366d57fe5b906000526020600020906009020160070154905060006001028160001916141561369a5760009150613859565b600073__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff3089876000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b15156137bf57600080fd5b6102c65a03f115156137d057600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b151561383a57600080fd5b6102c65a03f4151561384b57600080fd5b505050604051805190501191505b5092915050565b613868613d92565b6000806000613876866111cb565b151561388157600080fd5b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101858154811015156138d057fe5b9060005260206000209060090201600001600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018681548110151561393057fe5b90600052602060002090600902016006015473__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308c600360008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018d8154811015156139eb57fe5b9060005260206000209060090201600701546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b1515613ac557600080fd5b6102c65a03f11515613ad657600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b1515613b4057600080fd5b6102c65a03f41515613b5157600080fd5b50505060405180519050600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010188815481101515613baa57fe5b906000526020600020906009020160070154838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613c515780601f10613c2657610100808354040283529160200191613c51565b820191906000526020600020905b815481529060010190602001808311613c3457829003601f168201915b50505050509350935093509350935092959194509250565b61012060405190810160405280613c7e613edf565b8152602001613c8b613edf565b8152602001613c98613edf565b8152602001613ca5613edf565b8152602001613cb2613edf565b8152602001613cbf613edf565b81526020016000815260200160008019168152602001600080191681525090565b815481835581811511613d0d57600902816009028360005260206000209182019101613d0c9190613ef3565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613d5357805160ff1916838001178555613d81565b82800160010185558215613d81579182015b82811115613d80578251825591602001919060010190613d65565b5b509050613d8e9190613f8a565b5090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ddf5780548555613e1c565b82800160010185558215613e1c57600052602060002091601f016020900482015b82811115613e1b578254825591600101919060010190613e00565b5b509050613e299190613f8a565b5090565b50805460018160011615610100020316600290046000825580601f10613e535750613e72565b601f016020900490600052602060002090810190613e719190613f8a565b5b50565b815481835581811511613ea257600902816009028360005260206000209182019101613ea19190613ef3565b5b505050565b5080546000825560090290600052602060002090810190613ec89190613ef3565b50565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b613f8791905b80821115613f835760008082016000613f129190613e2d565b600182016000613f229190613e2d565b600282016000613f329190613e2d565b600382016000613f429190613e2d565b600482016000613f529190613e2d565b600582016000613f629190613e2d565b60068201600090556007820160009055600882016000905550600901613ef9565b5090565b90565b613fac91905b80821115613fa8576000816000905550600101613f90565b5090565b905600a165627a7a723058209a32bb0aed1806d30d2f480f11b09f153b27f5b0710c87495c93dc2426036b330029", - "sourceMap": "149:11123:3:-;;;592:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;672:10;664:5;;:18;;;;;;;;;;;;;;;;;;701:5;;;;;;;;;;;692:6;;:14;;;;;;;;;;;;;;;;;;759:9;716:8;;:53;;;;;;;;;;;;;;;;;;592:184;149:11123;;;;;;", - "deployedSourceMap": "149:11123:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2918:471;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2238:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;213:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7754:1694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1007:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1483:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;240:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2052:180;;;;;;;;;;;;;;187:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10454:816;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;883:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1607:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:193;;;;;;;;;;;;;;;;;;;;;;;;;;6426:571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5269:456:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;943:24:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3484:702;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9454:994;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6092:328;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4941:227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1058:289:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5827:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4281:602;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2376:447;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7003:724;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2918:471:3;3022:4;3028:7;3037:4;3099:10;3065:18;3076:6;3065:10;:18::i;:::-;3057:27;;;;;;;;3112:1;3099:14;;3094:255;3120:5;:13;3126:6;3120:13;;;;;;;;;;;;;;;:31;;:38;;;;3115:2;:43;3094:255;;;3240:13;3187:5;:13;3193:6;3187:13;;;;;;;;;;;;;;;:31;;3219:2;3187:35;;;;;;;;;;;;;;;;;;;;:49;;;:66;3183:156;;;3281:4;3287:2;3291:32;3312:6;3320:2;3291:20;:32::i;:::-;3273:51;;;;;;;;3183:156;3166:1;3160:7;;;;3094:255;;;3366:5;3373:1;3376:5;3358:24;;;;;;;;;2918:471;;;;;;;:::o;2238:132::-;2303:4;2361:1;2331:5;:13;2337:6;2331:13;;;;;;;;;;;;;;;:27;;;:31;2323:40;;2238:132;;;:::o;213:21::-;;;;;;;;;;;;;:::o;7754:1694::-;8312:12;8709:10;8998:25;;:::i;:::-;8047:1;8032:4;8026:18;:22;8018:31;;;;;;;;8091:1;8073:7;8067:21;:25;8059:34;;;;;;;;8133:1;8117:5;8111:19;:23;8103:32;;;;;;;;8174:1;8159:4;8153:18;:22;8145:31;;;;;;;;8219:1;8200:8;8194:22;:26;8186:35;;;;;;;;8259:1;8245:3;8239:17;:21;8231:30;;;;;;;;8292:8;8279:9;:21;;8271:30;;;;;;;;8350:10;8374:4;8392:7;8413:5;8432:4;8450:8;8472:3;8489:8;8511:20;8327:214;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8312:229:3;;8559:37;8573:4;8579;8585;8591;8559:13;:37::i;:::-;8551:46;;;;;;;;8612:22;8623:10;8612;:22::i;:::-;8608:380;;;8747:69;8768:10;8780:7;8789:5;8796:4;8802:8;8812:3;8747:20;:69::i;:::-;8733:83;;;;;;;8840:5;8839:6;8831:15;;;;;;;;8608:380;;;8935:12;8901:5;:17;8907:10;8901:17;;;;;;;;;;;;;;;:31;;:46;;;;8976:1;8962:10;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8608:380;9044:4;9034:2;:7;;:14;;;;9071:7;9058:2;:10;;:20;;;;9099:5;9088:2;:8;;:16;;;;9124:4;9114:2;:7;;:14;;;;9152:8;9138:2;:11;;:22;;;;9179:3;9170:2;:6;;:12;;;;9211;9192:2;:16;;:31;;;;;9259:20;9233:2;:23;;:46;;;;;;;;;;;;;9321:7;9330:5;9337:4;9343:8;9353:3;9311:46;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;9289:2:3;:19;;:68;;;;;;;;;;;;;9367:5;:17;9373:10;9367:17;;;;;;;;;;;;;;;:35;;:44;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;9408:2;9367:44;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9440:1;9422:14;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7754:1694;;;;;;;;;;;;;;:::o;1007:28::-;;;;;;;;;;;;;:::o;1483:118::-;1560:5;;;;;;;;;;;1546:19;;:10;:19;;;1538:28;;;;;;;;1585:9;1576:6;;:18;;;;;;;;;;;;;;;;;;1483:118;:::o;240:47::-;;;;;;;;;;;;;:::o;2052:180::-;2122:5;;;;;;;;;;;2108:19;;:10;:19;;;2100:28;;;;;;;;2167:1;2150:4;2142:21;;;:26;2138:40;;;2170:8;;;2138:40;2188:5;;;;;;;;;;;:14;;:37;2211:4;2203:21;;;2188:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2052:180::o;187:20::-;;;;;;;;;;;;;:::o;10454:816::-;10673:12;10833:10;10853:7;10870:14;10894:24;10619:1;10587:21;10581:35;:39;10573:48;;;;;;;;10639:22;10650:10;10639;:22::i;:::-;10631:31;;;;;;;;10711:10;10735:21;10688:78;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;10673:93:3;;10784:37;10798:4;10804;10810;10816;10784:13;:37::i;:::-;10776:46;;;;;;;;10971:109;11014:10;11048:21;11038:32;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;10971:29:3;:109::i;:::-;10928:152;;;;;;;;;;;;;;;;11098:5;11090:14;;;;;;;;11123:9;11122:10;11114:19;;;;;;;;11144:8;;;;;;;;;;;:17;;;11162:10;11174:16;11192:20;:27;11220:12;11192:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11144:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11262:1;11244:14;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10454:816;;;;;;;;;:::o;883:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;1607:159::-;1688:5;;;;;;;;;;;1674:19;;:10;:19;;;1666:28;;;;;;;;1747:11;1704:8;;:55;;;;;;;;;;;;;;;;;;1607:159;:::o;1819:193::-;1907:5;;;;;;;;;;;1893:19;;:10;:19;;;1885:28;;;;;;;;1951:9;1935:4;1927:21;;;:33;1923:47;;;1962:8;;;1923:47;1980:5;;;;;;;;;;;:14;;:25;1995:9;1980:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:193;:::o;6426:571::-;6523:14;;:::i;:::-;6539:12;;:::i;:::-;6553:11;;:::i;:::-;6566:15;;:::i;:::-;6583:10;;:::i;:::-;6617:18;6628:6;6617:10;:18::i;:::-;6609:27;;;;;;;;6667:5;:13;6673:6;6667:13;;;;;;;;;;;;;;;:31;;6699:12;6667:45;;;;;;;;;;;;;;;;;;;;:53;;6734:5;:13;6740:6;6734:13;;;;;;;;;;;;;;;:31;;6766:12;6734:45;;;;;;;;;;;;;;;;;;;;:51;;6799:5;:13;6805:6;6799:13;;;;;;;;;;;;;;;:31;;6831:12;6799:45;;;;;;;;;;;;;;;;;;;;:50;;6863:5;:13;6869:6;6863:13;;;;;;;;;;;;;;;:31;;6895:12;6863:45;;;;;;;;;;;;;;;;;;;;:54;;6931:5;:13;6937:6;6931:13;;;;;;;;;;;;;;;:31;;6963:12;6931:45;;;;;;;;;;;;;;;;;;;;:49;;6646:344;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6426:571;;;;;;;;:::o;5269:456::-;5345:6;;:::i;:::-;5410:11;5497:10;5375:18;5386:6;5375:10;:18::i;:::-;5367:27;;;;;;;;5424:1;5410:15;;5405:295;5433:5;:13;5439:6;5433:13;;;;;;;;;;;;;;;:31;;:38;;;;5427:3;:44;5405:295;;;5555:3;5550:1;5511:5;:13;5517:6;5511:13;;;;;;;;;;;;;;;:31;;:38;;;;:40;5510:48;5497:61;;5576:32;5597:6;5605:2;5576:20;:32::i;:::-;5572:118;;;5635:5;:13;5641:6;5635:13;;;;;;;;;;;;;;;:31;;5667:2;5635:35;;;;;;;;;;;;;;;;;;;;:40;;5628:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5572:118;5480:1;5473:8;;;;5405:295;;;5709:9;;;;;;;;;;;;;;;5269:456;;;;;;:::o;943:24::-;;;;;;;;;;;;;:::o;3484:702::-;3639:4;3645:7;3654:4;3660:7;3725:10;3691:18;3702:6;3691:10;:18::i;:::-;3683:27;;;;;;;;3738:1;3725:14;;3720:421;3746:5;:13;3752:6;3746:13;;;;;;;;;;;;;;;:31;;:38;;;;3741:2;:43;3720:421;;;3873:20;3813:80;;;:5;:13;3819:6;3813:13;;;;;;;;;;;;;;;:31;;3845:2;3813:35;;;;;;;;;;;;;;;;;;;;:56;;;:80;;;;3809:322;;;3942:4;3968:2;3992:32;4013:6;4021:2;3992:20;:32::i;:::-;4046:5;:13;4052:6;4046:13;;;;;;;;;;;;;;;:31;;4078:2;4046:35;;;;;;;;;;;;;;;;;;;;:52;;;3913:203;;;;;;;;;;3809:322;3792:1;3786:7;;;;3720:421;;;4158:5;4165:1;4168:5;4175:3;4150:29;;;;;;;;;;;;;;;;3484:702;;;;;;;;;:::o;9454:994::-;9612:10;9632:13;9778:24;9995:14;10069:9;9578:22;9589:10;9578;:22::i;:::-;9570:31;;;;;;;;9674:69;9695:10;9707:7;9716:5;9723:4;9729:8;9739:3;9674:20;:69::i;:::-;9655:88;;;;;;;;;9761:5;9753:14;;;;;;;;9805:5;:17;9811:10;9805:17;;;;;;;;;;;;;;;:35;;9841:5;9805:42;;;;;;;;;;;;;;;;;;;;:59;;;9778:86;;9874:8;;;;;;;;;;;:20;;;9903:4;9910:10;9922:16;9874:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10012:5;:17;10018:10;10012:17;;;;;;;;;;;;;;;:35;;:42;;;;9995:59;;10081:5;10069:17;;10064:150;10101:1;10092:6;:10;10088:1;:14;10064:150;;;10163:5;:17;10169:10;10163:17;;;;;;;;;;;;;;;:35;;10201:1;10199;:3;10163:40;;;;;;;;;;;;;;;;;;;;10122:5;:17;10128:10;10122:17;;;;;;;;;;;;;;;:35;;10158:1;10122:38;;;;;;;;;;;;;;;;;;;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10104:3;;;;;;;10064:150;;;10230:5;:17;10236:10;10230:17;;;;;;;;;;;;;;;:35;;10275:1;10266:6;:10;10230:47;;;;;;;;;;;;;;;;;;;;;10223:54;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10287:5;:17;10293:10;10287:17;;;;;;;;;;;;;;;:35;;:44;;;;;;;;;;;;:::i;:::-;;10392:1;10346:5;:17;10352:10;10346:17;;;;;;;;;;;;;;;:35;;:42;;;;:47;10342:100;;;10414:5;:17;10420:10;10414:17;;;;;;;;;;;;;;;;10407:24;;;;;;;;;;;;;;:::i;:::-;;;10342:100;9454:994;;;;;;;;;;:::o;6092:328::-;6174:7;6197:9;6225:10;6209:1;6197:13;;6238:1;6225:14;;6220:176;6246:5;:13;6252:6;6246:13;;;;;;;;;;;;;;;:31;;:38;;;;6241:2;:43;6220:176;;;6313:32;6334:6;6342:2;6313:20;:32::i;:::-;6309:77;;;6370:1;6365:6;;;;6309:77;6292:1;6286:7;;;;6220:176;;;6412:1;6405:8;;6092:328;;;;;:::o;973:28::-;;;;;;;;;;;;;:::o;4941:227::-;5017:6;;:::i;:::-;5047:18;5058:6;5047:10;:18::i;:::-;5039:27;;;;;;;;5083:5;:13;5089:6;5083:13;;;;;;;;;;;;;;;:31;;5154:1;5115:5;:13;5121:6;5115:13;;;;;;;;;;;;;;;:31;;:38;;;;:40;5083:73;;;;;;;;;;;;;;;;;;;;:78;;5076:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4941:227;;;:::o;1058:289::-;1155:4;1175:19;;:::i;:::-;1241:16;1175:56;;;;;;;;;;;;;;;;;;;;1270:6;1278:4;1260:23;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1241:42:3;;1333:6;;;;;;;;;;;1301:38;;:28;1311:8;1321:1;1324;1327;1301:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1293:47;;1058:289;;;;;;;;:::o;5827:157::-;5909:7;5939:5;:13;5945:6;5939:13;;;;;;;;;;;;;;;:31;;:38;;;;5932:45;;5827:157;;;:::o;4281:602::-;4427:4;4433:7;4442:4;4499:24;4587:10;4470:18;4481:6;4470:10;:18::i;:::-;4462:27;;;;;;;;4536:7;4545:5;4552:4;4558:8;4568:3;4526:46;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;4499:73:3;;4600:1;4587:14;;4582:261;4608:5;:13;4614:6;4608:13;;;;;;;;;;;;;;;:31;;:38;;;;4603:2;:43;4582:261;;;4731:16;4675:72;;;:5;:13;4681:6;4675:13;;;;;;;;;;;;;;;:31;;4707:2;4675:35;;;;;;;;;;;;;;;;;;;;:52;;;:72;;;;4671:162;;;4775:4;4781:2;4785:32;4806:6;4814:2;4785:20;:32::i;:::-;4767:51;;;;;;;;4671:162;4654:1;4648:7;;;;4582:261;;;4860:5;4867:1;4870:5;4852:24;;;;;;;;;4281:602;;;;;;;;;;;;;:::o;2376:447::-;2473:4;2530:24;2501:18;2512:6;2501:10;:18::i;:::-;2493:27;;;;;;;;2557:5;:13;2563:6;2557:13;;;;;;;;;;;;;;;:31;;2589:12;2557:45;;;;;;;;;;;;;;;;;;;;:62;;;2530:89;;2654:3;2634:23;;:16;:23;;;;2630:66;;;2680:5;2673:12;;;;2630:66;2815:1;2713:20;:39;2753:8;;;;;;;;;;;:17;;;2779:4;2786:6;2794:16;2753:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2713:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:103;2706:110;;2376:447;;;;;;:::o;7003:724::-;7104:11;;:::i;:::-;7125:21;7156:25;7191:24;7240:18;7251:6;7240:10;:18::i;:::-;7232:27;;;;;;;;7290:5;:13;7296:6;7290:13;;;;;;;;;;;;;;;:31;;7322:12;7290:45;;;;;;;;;;;;;;;;;;;;:50;;7354:5;:13;7360:6;7354:13;;;;;;;;;;;;;;;:31;;7386:12;7354:45;;;;;;;;;;;;;;;;;;;;:59;;;7427:20;:39;7467:8;;;;;;;;;;;:17;;;7510:4;7533:6;7557:5;:13;7563:6;7557:13;;;;;;;;;;;;;;;:31;;7589:12;7557:45;;;;;;;;;;;;;;;;;;;;:62;;;7467:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7427:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7648:5;:13;7654:6;7648:13;;;;;;;;;;;;;;;:31;;7680:12;7648:45;;;;;;;;;;;;;;;;;;;;:62;;;7269:451;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7003:724;;;;;;;:::o;149:11123::-;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.19;\n\nimport \"./EthereumClaimsRegistryInterface.sol\";\nimport \"./PhysicalAddressClaim.sol\";\n\n\n// Checks -> Effects -> Interactions\ncontract ProofOfPhysicalAddress {\n address public owner;\n address public signer;\n EthereumClaimsRegistryInterface public registry;\n\n // Main structures:\n struct PhysicalAddress {\n string name;\n\n string country;\n string state;\n string city;\n string location;\n string zip;\n\n uint256 creationBlock;\n bytes32 keccakIdentifier;\n bytes32 confirmationCodeSha3;\n }\n\n function ProofOfPhysicalAddress(address _registry) public\n {\n owner = msg.sender;\n signer = owner;\n registry = EthereumClaimsRegistryInterface(_registry);\n }\n\n struct User {\n uint256 creationBlock;\n PhysicalAddress[] physicalAddresses;\n }\n\n mapping (address => User) public users;\n\n // Stats:\n\n uint64 public totalUsers;\n uint64 public totalAddresses;\n uint64 public totalConfirmed;\n\n // Helpers:\n function signerIsValid(bytes32 data, uint8 v, bytes32 r, bytes32 s)\n public constant returns (bool)\n {\n bytes memory prefix = \"\\x19Ethereum Signed Message:\\n32\";\n bytes32 prefixed = keccak256(prefix, data);\n return (ecrecover(prefixed, v, r, s) == signer);\n }\n\n // Methods:\n // set address that is used on server-side to calculate signatures\n // and on contract-side to verify them\n function setSigner(address newSigner) public {\n require(msg.sender == owner);\n signer = newSigner;\n }\n\n function setRegistry(address newRegistry) public {\n require(msg.sender == owner);\n registry = EthereumClaimsRegistryInterface(newRegistry);\n }\n\n // withdraw specified amount of eth in wei\n function withdrawSome(uint256 amountWei)\n public\n {\n require(msg.sender == owner);\n if (address(this).balance < amountWei) revert();\n owner.transfer(amountWei);\n }\n\n // withdraw all available eth\n function withdrawAll()\n public\n {\n require(msg.sender == owner);\n if (address(this).balance == 0) revert();\n owner.transfer(address(this).balance);\n }\n\n function userExists(address wallet)\n public constant returns (bool)\n {\n return (users[wallet].creationBlock > 0);\n }\n\n function userAddressConfirmed(address wallet, uint256 addressIndex)\n public constant returns (bool)\n {\n require(userExists(wallet));\n bytes32 keccakIdentifier = users[wallet].physicalAddresses[addressIndex].keccakIdentifier;\n\n if (keccakIdentifier == 0x0) {\n return false;\n }\n\n return PhysicalAddressClaim.decodeConfirmation(registry.getClaim(address(this), wallet, keccakIdentifier)) > 0;\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByCreationBlock(address wallet, uint256 creationBlock)\n public constant returns (bool, uint256, bool)\n {\n require(userExists(wallet));\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai += 1) {\n if (users[wallet].physicalAddresses[ai].creationBlock == creationBlock) {\n return (true, ai, userAddressConfirmed(wallet, ai));\n }\n }\n return (false, 0, false);\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByConfirmationCode(\n address wallet,\n bytes32 confirmationCodeSha3\n )\n public\n constant\n returns(bool, uint256, bool, bytes32)\n {\n require(userExists(wallet));\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai += 1) {\n if (users[wallet].physicalAddresses[ai].confirmationCodeSha3 == confirmationCodeSha3) {\n return (\n true,\n ai,\n userAddressConfirmed(wallet, ai),\n users[wallet].physicalAddresses[ai].keccakIdentifier\n );\n }\n }\n return (false, 0, false, 0x0);\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByAddress(address wallet, string country, string state, string city, string location, string zip)\n public constant returns(bool, uint256, bool)\n {\n require(userExists(wallet));\n bytes32 keccakIdentifier = keccak256(country, state, city, location, zip);\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai += 1) {\n if (users[wallet].physicalAddresses[ai].keccakIdentifier == keccakIdentifier) {\n return (true, ai, userAddressConfirmed(wallet, ai));\n }\n }\n return (false, 0, false);\n }\n\n // returns last name submitted to PoPA contract\n function userLastSubmittedName(address wallet)\n public constant returns (string)\n {\n require(userExists(wallet));\n return users[wallet].physicalAddresses[users[wallet].physicalAddresses.length-1].name;\n }\n\n // returns name from the last confirmed address. If no addresses were confirmed returns ''\n function userLastConfirmedName(address wallet)\n public constant returns (string)\n {\n require(userExists(wallet));\n\n for (uint256 iai = 0; iai < users[wallet].physicalAddresses.length; iai += 1) {\n uint256 ai = (users[wallet].physicalAddresses.length-1) - iai;\n if (userAddressConfirmed(wallet, ai)) {\n return users[wallet].physicalAddresses[ai].name;\n }\n }\n return '';\n }\n\n // returns how many addresses there are in PoPA contract. If user does not exist, returns 0\n function userSubmittedAddressesCount(address wallet)\n public constant returns (uint256)\n {\n return users[wallet].physicalAddresses.length;\n }\n\n // returns how many addresses from PoPA contract are confirmed. If user does not exist, returns 0\n function userConfirmedAddressesCount(address wallet)\n public constant returns (uint256)\n {\n uint256 c = 0;\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai += 1) {\n if (userAddressConfirmed(wallet, ai)) {\n c += 1;\n }\n }\n return c;\n }\n\n function userAddress(address wallet, uint256 addressIndex)\n public constant returns (\n string country, string state, string city, string location, string zip)\n {\n require(userExists(wallet));\n return (\n users[wallet].physicalAddresses[addressIndex].country,\n users[wallet].physicalAddresses[addressIndex].state,\n users[wallet].physicalAddresses[addressIndex].city,\n users[wallet].physicalAddresses[addressIndex].location,\n users[wallet].physicalAddresses[addressIndex].zip\n );\n }\n\n function userAddressInfo(address wallet, uint256 addressIndex)\n public constant returns (\n string name,\n uint256 creationBlock,\n uint256 confirmationBlock,\n bytes32 keccakIdentifier\n ) {\n require(userExists(wallet));\n return (\n users[wallet].physicalAddresses[addressIndex].name,\n users[wallet].physicalAddresses[addressIndex].creationBlock,\n PhysicalAddressClaim.decodeConfirmation(registry.getClaim(\n address(this),\n wallet,\n users[wallet].physicalAddresses[addressIndex].keccakIdentifier)\n ),\n users[wallet].physicalAddresses[addressIndex].keccakIdentifier\n );\n }\n\n // Main methods:\n function registerAddress(\n string name,\n string country, string state, string city, string location, string zip,\n uint256 priceWei,\n bytes32 confirmationCodeSha3, uint8 sigV, bytes32 sigR, bytes32 sigS)\n public payable\n {\n require(bytes(name).length > 0);\n require(bytes(country).length > 0);\n require(bytes(state).length > 0);\n require(bytes(city).length > 0);\n require(bytes(location).length > 0);\n require(bytes(zip).length > 0);\n require(msg.value >= priceWei);\n\n bytes32 data = keccak256(\n msg.sender,\n name,\n country,\n state,\n city,\n location,\n zip,\n priceWei,\n confirmationCodeSha3\n );\n require(signerIsValid(data, sigV, sigR, sigS));\n\n if (userExists(msg.sender)) {\n // check if this address is already registered\n bool found;\n (found, , ) = userAddressByAddress(msg.sender, country, state, city, location, zip);\n\n require(!found);\n } else {\n // new user\n users[msg.sender].creationBlock = block.number;\n\n totalUsers += 1;\n }\n\n PhysicalAddress memory pa;\n\n pa.name = name;\n pa.country = country;\n pa.state = state;\n pa.city = city;\n pa.location = location;\n pa.zip = zip;\n pa.creationBlock = block.number;\n pa.confirmationCodeSha3 = confirmationCodeSha3;\n pa.keccakIdentifier = keccak256(country, state, city, location, zip);\n users[msg.sender].physicalAddresses.push(pa);\n\n totalAddresses += 1;\n }\n\n function unregisterAddress(string country, string state, string city, string location, string zip) public {\n require(userExists(msg.sender));\n\n bool found;\n uint256 index;\n (found, index, ) = userAddressByAddress(msg.sender, country, state, city, location, zip);\n require(found);\n\n bytes32 keccakIdentifier = users[msg.sender].physicalAddresses[index].keccakIdentifier;\n registry.removeClaim(address(this), msg.sender, keccakIdentifier);\n\n // Remove physical address from list\n uint256 length = users[msg.sender].physicalAddresses.length;\n for (uint256 i = index; i < length - 1; i++){\n users[msg.sender].physicalAddresses[i] = users[msg.sender].physicalAddresses[i+1];\n }\n delete users[msg.sender].physicalAddresses[length - 1];\n users[msg.sender].physicalAddresses.length--;\n\n if (users[msg.sender].physicalAddresses.length == 0) {\n delete users[msg.sender];\n }\n }\n\n function confirmAddress(string confirmationCodePlain, uint8 sigV, bytes32 sigR, bytes32 sigS)\n public\n {\n require(bytes(confirmationCodePlain).length > 0);\n require(userExists(msg.sender));\n\n bytes32 data = keccak256(\n msg.sender,\n confirmationCodePlain\n );\n require(signerIsValid(data, sigV, sigR, sigS));\n\n bool found;\n uint ai;\n bool confirmed;\n bytes32 keccakIdentifier;\n (found, ai, confirmed, keccakIdentifier) = userAddressByConfirmationCode(\n msg.sender,\n keccak256(confirmationCodePlain)\n );\n require(found);\n require(!confirmed);\n\n registry.setClaim(msg.sender, keccakIdentifier, PhysicalAddressClaim.encode(block.number));\n totalConfirmed += 1;\n }\n}\n", + "bytecode": "0x6060604052341561000f57600080fd5b6040516020806140cc83398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050613fae8061011e6000396000f300606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305831776146101595780630e666e49146101c5578063238ac933146102165780632c2a178e1461026b5780634028a0f1146104485780636c19e783146104855780637b103999146104be578063853828b6146105135780638da5cb5b14610528578063a5db3d021461057d578063a87430ba14610600578063a91ee0dc1461064d578063ae9b051c14610686578063b4778e2d146106a9578063b55fbd0414610914578063bff1f9e1146109c6578063c0fe077f14610a03578063c228251b14610a82578063c94f2c1b14610beb578063cfad527714610c38578063d673560414610c75578063d956be1014610d27578063de3d702e14610d8c578063e585332e14610dd9578063f0486ab414610f8b578063feea980814610fe5575b600080fd5b341561016457600080fd5b610199600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110bd565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b34156101d057600080fd5b6101fc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111cf565b604051808215151515815260200191505060405180910390f35b341561022157600080fd5b61022961121d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610446600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080356000191690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611243565b005b341561045357600080fd5b61045b6119b5565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561049057600080fd5b6104bc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119cf565b005b34156104c957600080fd5b6104d1611a6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561051e57600080fd5b610526611a94565b005b341561053357600080fd5b61053b611b8f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058857600080fd5b6105fe600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611bb4565b005b341561060b57600080fd5b610637600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f01565b6040518082815260200191505060405180910390f35b341561065857600080fd5b610684600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f1f565b005b341561069157600080fd5b6106a76004808035906020019091905050611fbe565b005b34156106b457600080fd5b6106e9600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506120a3565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019080838360005b8381101561073957808201518184015260208101905061071e565b50505050905090810190601f1680156107665780820380516001836020036101000a031916815260200191505b5086810385528a818151815260200191508051906020019080838360005b8381101561079f578082015181840152602081019050610784565b50505050905090810190601f1680156107cc5780820380516001836020036101000a031916815260200191505b50868103845289818151815260200191508051906020019080838360005b838110156108055780820151818401526020810190506107ea565b50505050905090810190601f1680156108325780820380516001836020036101000a031916815260200191505b50868103835288818151815260200191508051906020019080838360005b8381101561086b578082015181840152602081019050610850565b50505050905090810190601f1680156108985780820380516001836020036101000a031916815260200191505b50868103825287818151815260200191508051906020019080838360005b838110156108d15780820151818401526020810190506108b6565b50505050905090810190601f1680156108fe5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561091f57600080fd5b61094b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506125e1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098b578082015181840152602081019050610970565b50505050905090810190601f1680156109b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109d157600080fd5b6109d961278a565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610a0e57600080fd5b610a47600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035600019169060200190919050506127a4565b604051808515151515815260200184815260200183151515158152602001826000191660001916815260200194505050505060405180910390f35b3415610a8d57600080fd5b610be9600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061292e565b005b3415610bf657600080fd5b610c22600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612f04565b6040518082815260200191505060405180910390f35b3415610c4357600080fd5b610c4b612f8b565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610c8057600080fd5b610cac600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612fa5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cec578082015181840152602081019050610cd1565b50505050905090810190601f168015610d195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610d3257600080fd5b610d7260048080356000191690602001909190803560ff16906020019091908035600019169060200190919080356000191690602001909190505061310b565b604051808215151515815260200191505060405180910390f35b3415610d9757600080fd5b610dc3600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506132a7565b6040518082815260200191505060405180910390f35b3415610de457600080fd5b610f5f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506132f6565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b3415610f9657600080fd5b610fcb600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506135d1565b604051808215151515815260200191505060405180910390f35b3415610ff057600080fd5b611025600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061382c565b60405180806020018581526020018481526020018360001916600019168152602001828103825286818151815260200191508051906020019080838360005b8381101561107f578082015181840152602081019050611064565b50505050905090810190601f1680156110ac5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b600080600080856110cd816111cf565b15156110d857600080fd5b600091505b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508210156111b75785600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561117a57fe5b90600052602060002090600902016006015414156111aa5760018261119f89856135d1565b9450945094506111c6565b81806001019250506110dd565b60008060008191509450945094505b50509250925092565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061124e613c3c565b60008e5111151561125e57600080fd5b60008d5111151561126e57600080fd5b60008c5111151561127e57600080fd5b60008b5111151561128e57600080fd5b60008a5111151561129e57600080fd5b600089511115156112ae57600080fd5b8734101515156112bd57600080fd5b338e8e8e8e8e8e8e8e604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189805190602001908083835b60208310151561133c5780518252602082019150602081019050602083039250611317565b6001836020036101000a03801982511681845116808217855250505050505090500188805190602001908083835b60208310151561138f578051825260208201915060208101905060208303925061136a565b6001836020036101000a03801982511681845116808217855250505050505090500187805190602001908083835b6020831015156113e257805182526020820191506020810190506020830392506113bd565b6001836020036101000a03801982511681845116808217855250505050505090500186805190602001908083835b6020831015156114355780518252602082019150602081019050602083039250611410565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156114885780518252602082019150602081019050602083039250611463565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156114db57805182526020820191506020810190506020830392506114b6565b6001836020036101000a03801982511681845116808217855250505050505090500183815260200182600019166000191681526020019950505050505050505050604051809103902092506115328387878761310b565b151561153d57600080fd5b611546336111cf565b1561157257611559338e8e8e8e8e6132f6565b905050809250508115151561156d57600080fd5b6115fd565b43600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506001600460008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8d81600001819052508c81602001819052508b81604001819052508a8160600181905250898160800181905250888160a00181905250438160c00181815250508681610100019060001916908160001916815250508c8c8c8c8c6040518086805190602001908083835b60208310151561168c5780518252602082019150602081019050602083039250611667565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156116df57805182526020820191506020810190506020830392506116ba565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515611732578051825260208201915060208101905060208303925061170d565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831015156117855780518252602082019150602081019050602083039250611760565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156117d857805182526020820191506020810190506020830392506117b3565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390208160e001906000191690816000191681525050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180548060010182816118709190613cb3565b9160005260206000209060090201600083909190915060008201518160000190805190602001906118a2929190613ce5565b5060208201518160010190805190602001906118bf929190613ce5565b5060408201518160020190805190602001906118dc929190613ce5565b5060608201518160030190805190602001906118f9929190613ce5565b506080820151816004019080519060200190611916929190613ce5565b5060a0820151816005019080519060200190611933929190613ce5565b5060c0820151816006015560e0820151816007019060001916905561010082015181600801906000191690555050506001600460088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050505050505050505050505050565b600460109054906101000a900467ffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a2a57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aef57600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff1631111515611b1557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611b8d57600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600033611bc6816111cf565b1515611bd157600080fd5b60008a51111515611be157600080fd5b338a604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182805190602001908083835b602083101515611c595780518252602082019150602081019050602083039250611c34565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405180910390209550611c95868a8a8a61310b565b1515611ca057600080fd5b611d0c338b6040518082805190602001908083835b602083101515611cda5780518252602082019150602081019050602083039250611cb5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206127a4565b80955081965082975083985050505050841515611d2857600080fd5b82151515611d3557600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639918925d338473__PhysicalAddressClaim__________________63deb21fa2436000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1515611de857600080fd5b6102c65a03f41515611df957600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182600019166000191681526020019350505050600060405180830381600087803b1515611e9e57600080fd5b6102c65a03f11515611eaf57600080fd5b5050506001600460108282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050505050505050565b60036020528060005260406000206000915090508060000154905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f7a57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561201957600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561203f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156120a057600080fd5b50565b6120ab613d65565b6120b3613d65565b6120bb613d65565b6120c3613d65565b6120cb613d65565b866120d5816111cf565b15156120e057600080fd5b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018781548110151561212f57fe5b9060005260206000209060090201600101600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018881548110151561218f57fe5b9060005260206000209060090201600201600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101898154811015156121ef57fe5b9060005260206000209060090201600301600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a81548110151561224f57fe5b9060005260206000209060090201600401600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018b8154811015156122af57fe5b9060005260206000209060090201600501848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123555780601f1061232a57610100808354040283529160200191612355565b820191906000526020600020905b81548152906001019060200180831161233857829003601f168201915b50505050509450838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123f15780601f106123c6576101008083540402835291602001916123f1565b820191906000526020600020905b8154815290600101906020018083116123d457829003601f168201915b50505050509350828054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561248d5780601f106124625761010080835404028352916020019161248d565b820191906000526020600020905b81548152906001019060200180831161247057829003601f168201915b50505050509250818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125295780601f106124fe57610100808354040283529160200191612529565b820191906000526020600020905b81548152906001019060200180831161250c57829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125c55780601f1061259a576101008083540402835291602001916125c5565b820191906000526020600020905b8154815290600101906020018083116125a857829003601f168201915b5050505050905095509550955095509550509295509295909350565b6125e9613d65565b6000826125f5816111cf565b151561260057600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905091505b600082111561276f5781806001900392505061266584836135d1565b1561276a57600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101828154811015156126b957fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561275e5780601f106127335761010080835404028352916020019161275e565b820191906000526020600020905b81548152906001019060200180831161274157829003601f168201915b50505050509250612783565b612649565b602060405190810160405280600081525092505b5050919050565b600460009054906101000a900467ffffffffffffffff1681565b6000806000806000866127b6816111cf565b15156127c157600080fd5b600091505b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905082101561290b578660001916600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561286757fe5b9060005260206000209060090201600801546000191614156128fe576001826128908a856135d1565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101858154811015156128df57fe5b9060005260206000209060090201600701549550955095509550612923565b81806001019250506127c6565b60008060008082925080600102905095509550955095505b505092959194509250565b6000806000803361293e816111cf565b151561294957600080fd5b612957338b8b8b8b8b6132f6565b50809550819650505084151561296c57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7508ec73033600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101888154811015156129fb57fe5b9060005260206000209060090201600701546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b1515612acc57600080fd5b6102c65a03f11515612add57600080fd5b505050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905092508391505b60018303821015612d1e57600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018301815481101515612b8957fe5b9060005260206000209060090201600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183815481101515612be657fe5b906000526020600020906009020160008201816000019080546001816001161561010002031660029004612c1b929190613d79565b5060018201816001019080546001816001161561010002031660029004612c43929190613d79565b5060028201816002019080546001816001161561010002031660029004612c6b929190613d79565b5060038201816003019080546001816001161561010002031660029004612c93929190613d79565b5060048201816004019080546001816001161561010002031660029004612cbb929190613d79565b5060058201816005019080546001816001161561010002031660029004612ce3929190613d79565b506006820154816006015560078201548160070190600019169055600882015481600801906000191690559050508180600101925050612b2c565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018403815481101515612d7057fe5b906000526020600020906009020160008082016000612d8f9190613e00565b600182016000612d9f9190613e00565b600282016000612daf9190613e00565b600382016000612dbf9190613e00565b600482016000612dcf9190613e00565b600582016000612ddf9190613e00565b6006820160009055600782016000905560088201600090555050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480919060019003612e4e9190613e48565b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490501415612ef857600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000612ef59190613e7a565b50505b50505050505050505050565b6000806000809150600090505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050811015612f8157612f6884826135d1565b15612f74576001820191505b8080600101915050612f11565b8192505050919050565b600460089054906101000a900467ffffffffffffffff1681565b612fad613d65565b81612fb7816111cf565b1515612fc257600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381548110151561305957fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156130fe5780601f106130d3576101008083540402835291602001916130fe565b820191906000526020600020905b8154815290600101906020018083116130e157829003601f168201915b5050505050915050919050565b6000613115613e9e565b60006040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250915081876040518083805190602001908083835b6020831015156131865780518252602082019150602081019050602083039250613161565b6001836020036101000a03801982511681845116808217855250505050505090500182600019166000191681526020019250505060405180910390209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600182888888604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f1151561327b57600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490509050919050565b60008060008060008a613308816111cf565b151561331357600080fd5b8a8a8a8a8a6040518086805190602001908083835b60208310151561334d5780518252602082019150602081019050602083039250613328565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156133a0578051825260208201915060208101905060208303925061337b565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156133f357805182526020820191506020810190506020830392506133ce565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831015156134465780518252602082019150602081019050602083039250613421565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156134995780518252602082019150602081019050602083039250613474565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390209250600091505b600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508210156135b3578260001916600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561357257fe5b9060005260206000209060090201600701546000191614156135a65760018261359b8e856135d1565b9550955095506135c2565b81806001019250506134d1565b60008060008191509550955095505b50505096509650969350505050565b600080836135de816111cf565b15156135e957600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561363857fe5b90600052602060002090600902016007015491506000600102826000191614156136655760009250613824565b600073__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308a886000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b151561378a57600080fd5b6102c65a03f1151561379b57600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b151561380557600080fd5b6102c65a03f4151561381657600080fd5b505050604051805190501192505b505092915050565b613834613d65565b60008060008086613844816111cf565b151561384f57600080fd5b73__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308c600360008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018d8154811015156138f857fe5b9060005260206000209060090201600701546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b15156139d257600080fd5b6102c65a03f115156139e357600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b1515613a4d57600080fd5b6102c65a03f41515613a5e57600080fd5b505050604051805190509150600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515613ab957fe5b9060005260206000209060090201600001600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010188815481101515613b1957fe5b90600052602060002090600902016006015483600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a815481101515613b7b57fe5b906000526020600020906009020160070154838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613c225780601f10613bf757610100808354040283529160200191613c22565b820191906000526020600020905b815481529060010190602001808311613c0557829003601f168201915b505050505093509550955095509550505092959194509250565b61012060405190810160405280613c51613eb2565b8152602001613c5e613eb2565b8152602001613c6b613eb2565b8152602001613c78613eb2565b8152602001613c85613eb2565b8152602001613c92613eb2565b81526020016000815260200160008019168152602001600080191681525090565b815481835581811511613ce057600902816009028360005260206000209182019101613cdf9190613ec6565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613d2657805160ff1916838001178555613d54565b82800160010185558215613d54579182015b82811115613d53578251825591602001919060010190613d38565b5b509050613d619190613f5d565b5090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613db25780548555613def565b82800160010185558215613def57600052602060002091601f016020900482015b82811115613dee578254825591600101919060010190613dd3565b5b509050613dfc9190613f5d565b5090565b50805460018160011615610100020316600290046000825580601f10613e265750613e45565b601f016020900490600052602060002090810190613e449190613f5d565b5b50565b815481835581811511613e7557600902816009028360005260206000209182019101613e749190613ec6565b5b505050565b5080546000825560090290600052602060002090810190613e9b9190613ec6565b50565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b613f5a91905b80821115613f565760008082016000613ee59190613e00565b600182016000613ef59190613e00565b600282016000613f059190613e00565b600382016000613f159190613e00565b600482016000613f259190613e00565b600582016000613f359190613e00565b60068201600090556007820160009055600882016000905550600901613ecc565b5090565b90565b613f7f91905b80821115613f7b576000816000905550600101613f63565b5090565b905600a165627a7a72305820fac0df76ebf6d4119e004e0bb55b63d7cb09c09270cadca76180194b74e2577b0029", + "deployedBytecode": "0x606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305831776146101595780630e666e49146101c5578063238ac933146102165780632c2a178e1461026b5780634028a0f1146104485780636c19e783146104855780637b103999146104be578063853828b6146105135780638da5cb5b14610528578063a5db3d021461057d578063a87430ba14610600578063a91ee0dc1461064d578063ae9b051c14610686578063b4778e2d146106a9578063b55fbd0414610914578063bff1f9e1146109c6578063c0fe077f14610a03578063c228251b14610a82578063c94f2c1b14610beb578063cfad527714610c38578063d673560414610c75578063d956be1014610d27578063de3d702e14610d8c578063e585332e14610dd9578063f0486ab414610f8b578063feea980814610fe5575b600080fd5b341561016457600080fd5b610199600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110bd565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b34156101d057600080fd5b6101fc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111cf565b604051808215151515815260200191505060405180910390f35b341561022157600080fd5b61022961121d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610446600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080356000191690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611243565b005b341561045357600080fd5b61045b6119b5565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561049057600080fd5b6104bc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119cf565b005b34156104c957600080fd5b6104d1611a6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561051e57600080fd5b610526611a94565b005b341561053357600080fd5b61053b611b8f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058857600080fd5b6105fe600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611bb4565b005b341561060b57600080fd5b610637600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f01565b6040518082815260200191505060405180910390f35b341561065857600080fd5b610684600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f1f565b005b341561069157600080fd5b6106a76004808035906020019091905050611fbe565b005b34156106b457600080fd5b6106e9600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506120a3565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019080838360005b8381101561073957808201518184015260208101905061071e565b50505050905090810190601f1680156107665780820380516001836020036101000a031916815260200191505b5086810385528a818151815260200191508051906020019080838360005b8381101561079f578082015181840152602081019050610784565b50505050905090810190601f1680156107cc5780820380516001836020036101000a031916815260200191505b50868103845289818151815260200191508051906020019080838360005b838110156108055780820151818401526020810190506107ea565b50505050905090810190601f1680156108325780820380516001836020036101000a031916815260200191505b50868103835288818151815260200191508051906020019080838360005b8381101561086b578082015181840152602081019050610850565b50505050905090810190601f1680156108985780820380516001836020036101000a031916815260200191505b50868103825287818151815260200191508051906020019080838360005b838110156108d15780820151818401526020810190506108b6565b50505050905090810190601f1680156108fe5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561091f57600080fd5b61094b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506125e1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098b578082015181840152602081019050610970565b50505050905090810190601f1680156109b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109d157600080fd5b6109d961278a565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610a0e57600080fd5b610a47600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035600019169060200190919050506127a4565b604051808515151515815260200184815260200183151515158152602001826000191660001916815260200194505050505060405180910390f35b3415610a8d57600080fd5b610be9600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061292e565b005b3415610bf657600080fd5b610c22600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612f04565b6040518082815260200191505060405180910390f35b3415610c4357600080fd5b610c4b612f8b565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610c8057600080fd5b610cac600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612fa5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cec578082015181840152602081019050610cd1565b50505050905090810190601f168015610d195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610d3257600080fd5b610d7260048080356000191690602001909190803560ff16906020019091908035600019169060200190919080356000191690602001909190505061310b565b604051808215151515815260200191505060405180910390f35b3415610d9757600080fd5b610dc3600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506132a7565b6040518082815260200191505060405180910390f35b3415610de457600080fd5b610f5f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506132f6565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b3415610f9657600080fd5b610fcb600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506135d1565b604051808215151515815260200191505060405180910390f35b3415610ff057600080fd5b611025600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061382c565b60405180806020018581526020018481526020018360001916600019168152602001828103825286818151815260200191508051906020019080838360005b8381101561107f578082015181840152602081019050611064565b50505050905090810190601f1680156110ac5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b600080600080856110cd816111cf565b15156110d857600080fd5b600091505b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508210156111b75785600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561117a57fe5b90600052602060002090600902016006015414156111aa5760018261119f89856135d1565b9450945094506111c6565b81806001019250506110dd565b60008060008191509450945094505b50509250925092565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061124e613c3c565b60008e5111151561125e57600080fd5b60008d5111151561126e57600080fd5b60008c5111151561127e57600080fd5b60008b5111151561128e57600080fd5b60008a5111151561129e57600080fd5b600089511115156112ae57600080fd5b8734101515156112bd57600080fd5b338e8e8e8e8e8e8e8e604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189805190602001908083835b60208310151561133c5780518252602082019150602081019050602083039250611317565b6001836020036101000a03801982511681845116808217855250505050505090500188805190602001908083835b60208310151561138f578051825260208201915060208101905060208303925061136a565b6001836020036101000a03801982511681845116808217855250505050505090500187805190602001908083835b6020831015156113e257805182526020820191506020810190506020830392506113bd565b6001836020036101000a03801982511681845116808217855250505050505090500186805190602001908083835b6020831015156114355780518252602082019150602081019050602083039250611410565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156114885780518252602082019150602081019050602083039250611463565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156114db57805182526020820191506020810190506020830392506114b6565b6001836020036101000a03801982511681845116808217855250505050505090500183815260200182600019166000191681526020019950505050505050505050604051809103902092506115328387878761310b565b151561153d57600080fd5b611546336111cf565b1561157257611559338e8e8e8e8e6132f6565b905050809250508115151561156d57600080fd5b6115fd565b43600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506001600460008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8d81600001819052508c81602001819052508b81604001819052508a8160600181905250898160800181905250888160a00181905250438160c00181815250508681610100019060001916908160001916815250508c8c8c8c8c6040518086805190602001908083835b60208310151561168c5780518252602082019150602081019050602083039250611667565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156116df57805182526020820191506020810190506020830392506116ba565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515611732578051825260208201915060208101905060208303925061170d565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831015156117855780518252602082019150602081019050602083039250611760565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156117d857805182526020820191506020810190506020830392506117b3565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390208160e001906000191690816000191681525050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180548060010182816118709190613cb3565b9160005260206000209060090201600083909190915060008201518160000190805190602001906118a2929190613ce5565b5060208201518160010190805190602001906118bf929190613ce5565b5060408201518160020190805190602001906118dc929190613ce5565b5060608201518160030190805190602001906118f9929190613ce5565b506080820151816004019080519060200190611916929190613ce5565b5060a0820151816005019080519060200190611933929190613ce5565b5060c0820151816006015560e0820151816007019060001916905561010082015181600801906000191690555050506001600460088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050505050505050505050505050565b600460109054906101000a900467ffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a2a57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aef57600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff1631111515611b1557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611b8d57600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600033611bc6816111cf565b1515611bd157600080fd5b60008a51111515611be157600080fd5b338a604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182805190602001908083835b602083101515611c595780518252602082019150602081019050602083039250611c34565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405180910390209550611c95868a8a8a61310b565b1515611ca057600080fd5b611d0c338b6040518082805190602001908083835b602083101515611cda5780518252602082019150602081019050602083039250611cb5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206127a4565b80955081965082975083985050505050841515611d2857600080fd5b82151515611d3557600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639918925d338473__PhysicalAddressClaim__________________63deb21fa2436000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1515611de857600080fd5b6102c65a03f41515611df957600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182600019166000191681526020019350505050600060405180830381600087803b1515611e9e57600080fd5b6102c65a03f11515611eaf57600080fd5b5050506001600460108282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050505050505050565b60036020528060005260406000206000915090508060000154905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f7a57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561201957600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561203f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156120a057600080fd5b50565b6120ab613d65565b6120b3613d65565b6120bb613d65565b6120c3613d65565b6120cb613d65565b866120d5816111cf565b15156120e057600080fd5b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018781548110151561212f57fe5b9060005260206000209060090201600101600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018881548110151561218f57fe5b9060005260206000209060090201600201600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101898154811015156121ef57fe5b9060005260206000209060090201600301600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a81548110151561224f57fe5b9060005260206000209060090201600401600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018b8154811015156122af57fe5b9060005260206000209060090201600501848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123555780601f1061232a57610100808354040283529160200191612355565b820191906000526020600020905b81548152906001019060200180831161233857829003601f168201915b50505050509450838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123f15780601f106123c6576101008083540402835291602001916123f1565b820191906000526020600020905b8154815290600101906020018083116123d457829003601f168201915b50505050509350828054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561248d5780601f106124625761010080835404028352916020019161248d565b820191906000526020600020905b81548152906001019060200180831161247057829003601f168201915b50505050509250818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125295780601f106124fe57610100808354040283529160200191612529565b820191906000526020600020905b81548152906001019060200180831161250c57829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125c55780601f1061259a576101008083540402835291602001916125c5565b820191906000526020600020905b8154815290600101906020018083116125a857829003601f168201915b5050505050905095509550955095509550509295509295909350565b6125e9613d65565b6000826125f5816111cf565b151561260057600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905091505b600082111561276f5781806001900392505061266584836135d1565b1561276a57600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101828154811015156126b957fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561275e5780601f106127335761010080835404028352916020019161275e565b820191906000526020600020905b81548152906001019060200180831161274157829003601f168201915b50505050509250612783565b612649565b602060405190810160405280600081525092505b5050919050565b600460009054906101000a900467ffffffffffffffff1681565b6000806000806000866127b6816111cf565b15156127c157600080fd5b600091505b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905082101561290b578660001916600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561286757fe5b9060005260206000209060090201600801546000191614156128fe576001826128908a856135d1565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101858154811015156128df57fe5b9060005260206000209060090201600701549550955095509550612923565b81806001019250506127c6565b60008060008082925080600102905095509550955095505b505092959194509250565b6000806000803361293e816111cf565b151561294957600080fd5b612957338b8b8b8b8b6132f6565b50809550819650505084151561296c57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7508ec73033600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101888154811015156129fb57fe5b9060005260206000209060090201600701546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b1515612acc57600080fd5b6102c65a03f11515612add57600080fd5b505050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905092508391505b60018303821015612d1e57600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018301815481101515612b8957fe5b9060005260206000209060090201600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183815481101515612be657fe5b906000526020600020906009020160008201816000019080546001816001161561010002031660029004612c1b929190613d79565b5060018201816001019080546001816001161561010002031660029004612c43929190613d79565b5060028201816002019080546001816001161561010002031660029004612c6b929190613d79565b5060038201816003019080546001816001161561010002031660029004612c93929190613d79565b5060048201816004019080546001816001161561010002031660029004612cbb929190613d79565b5060058201816005019080546001816001161561010002031660029004612ce3929190613d79565b506006820154816006015560078201548160070190600019169055600882015481600801906000191690559050508180600101925050612b2c565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018403815481101515612d7057fe5b906000526020600020906009020160008082016000612d8f9190613e00565b600182016000612d9f9190613e00565b600282016000612daf9190613e00565b600382016000612dbf9190613e00565b600482016000612dcf9190613e00565b600582016000612ddf9190613e00565b6006820160009055600782016000905560088201600090555050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480919060019003612e4e9190613e48565b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490501415612ef857600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000612ef59190613e7a565b50505b50505050505050505050565b6000806000809150600090505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050811015612f8157612f6884826135d1565b15612f74576001820191505b8080600101915050612f11565b8192505050919050565b600460089054906101000a900467ffffffffffffffff1681565b612fad613d65565b81612fb7816111cf565b1515612fc257600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381548110151561305957fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156130fe5780601f106130d3576101008083540402835291602001916130fe565b820191906000526020600020905b8154815290600101906020018083116130e157829003601f168201915b5050505050915050919050565b6000613115613e9e565b60006040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250915081876040518083805190602001908083835b6020831015156131865780518252602082019150602081019050602083039250613161565b6001836020036101000a03801982511681845116808217855250505050505090500182600019166000191681526020019250505060405180910390209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600182888888604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f1151561327b57600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490509050919050565b60008060008060008a613308816111cf565b151561331357600080fd5b8a8a8a8a8a6040518086805190602001908083835b60208310151561334d5780518252602082019150602081019050602083039250613328565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156133a0578051825260208201915060208101905060208303925061337b565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156133f357805182526020820191506020810190506020830392506133ce565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831015156134465780518252602082019150602081019050602083039250613421565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156134995780518252602082019150602081019050602083039250613474565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390209250600091505b600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508210156135b3578260001916600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561357257fe5b9060005260206000209060090201600701546000191614156135a65760018261359b8e856135d1565b9550955095506135c2565b81806001019250506134d1565b60008060008191509550955095505b50505096509650969350505050565b600080836135de816111cf565b15156135e957600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561363857fe5b90600052602060002090600902016007015491506000600102826000191614156136655760009250613824565b600073__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308a886000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b151561378a57600080fd5b6102c65a03f1151561379b57600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b151561380557600080fd5b6102c65a03f4151561381657600080fd5b505050604051805190501192505b505092915050565b613834613d65565b60008060008086613844816111cf565b151561384f57600080fd5b73__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308c600360008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018d8154811015156138f857fe5b9060005260206000209060090201600701546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b15156139d257600080fd5b6102c65a03f115156139e357600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b1515613a4d57600080fd5b6102c65a03f41515613a5e57600080fd5b505050604051805190509150600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515613ab957fe5b9060005260206000209060090201600001600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010188815481101515613b1957fe5b90600052602060002090600902016006015483600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a815481101515613b7b57fe5b906000526020600020906009020160070154838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613c225780601f10613bf757610100808354040283529160200191613c22565b820191906000526020600020905b815481529060010190602001808311613c0557829003601f168201915b505050505093509550955095509550505092959194509250565b61012060405190810160405280613c51613eb2565b8152602001613c5e613eb2565b8152602001613c6b613eb2565b8152602001613c78613eb2565b8152602001613c85613eb2565b8152602001613c92613eb2565b81526020016000815260200160008019168152602001600080191681525090565b815481835581811511613ce057600902816009028360005260206000209182019101613cdf9190613ec6565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613d2657805160ff1916838001178555613d54565b82800160010185558215613d54579182015b82811115613d53578251825591602001919060010190613d38565b5b509050613d619190613f5d565b5090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613db25780548555613def565b82800160010185558215613def57600052602060002091601f016020900482015b82811115613dee578254825591600101919060010190613dd3565b5b509050613dfc9190613f5d565b5090565b50805460018160011615610100020316600290046000825580601f10613e265750613e45565b601f016020900490600052602060002090810190613e449190613f5d565b5b50565b815481835581811511613e7557600902816009028360005260206000209182019101613e749190613ec6565b5b505050565b5080546000825560090290600052602060002090810190613e9b9190613ec6565b50565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b613f5a91905b80821115613f565760008082016000613ee59190613e00565b600182016000613ef59190613e00565b600282016000613f059190613e00565b600382016000613f159190613e00565b600482016000613f259190613e00565b600582016000613f359190613e00565b60068201600090556007820160009055600882016000905550600901613ecc565b5090565b90565b613f7f91905b80821115613f7b576000816000905550600101613f63565b5090565b905600a165627a7a72305820fac0df76ebf6d4119e004e0bb55b63d7cb09c09270cadca76180194b74e2577b0029", + "sourceMap": "149:11051:2:-;;;592:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;672:10;664:5;;:18;;;;;;;;;;;;;;;;;;701:5;;;;;;;;;;;692:6;;:14;;;;;;;;;;;;;;;;;;759:9;716:8;;:53;;;;;;;;;;;;;;;;;;592:184;149:11051;;;;;;", + "deployedSourceMap": "149:11051:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2986:455;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2319:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;213:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7699:1694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1007:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1686:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;240:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2167:146;;;;;;;;;;;;;;187:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10395:803;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;883:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1782:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;1966:161;;;;;;;;;;;;;;;;;;;;;;;;;;6356:558;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5284:374:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;943:24:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3536:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9399:990;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6025:325;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4969:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1261:289:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5760:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4325:586;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2457:434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6920:752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2986:455:2;3114:4;3120:7;3129:4;3154:10;3097:6;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;3167:1;3154:14;;3149:252;3175:5;:13;3181:6;3175:13;;;;;;;;;;;;;;;:31;;:38;;;;3170:2;:43;3149:252;;;3292:13;3239:5;:13;3245:6;3239:13;;;;;;;;;;;;;;;:31;;3271:2;3239:35;;;;;;;;;;;;;;;;;;;;:49;;;:66;3235:156;;;3333:4;3339:2;3343:32;3364:6;3372:2;3343:20;:32::i;:::-;3325:51;;;;;;;;3235:156;3215:4;;;;;;;3149:252;;;3418:5;3425:1;3428:5;3410:24;;;;;;;;;1231:1;2986:455;;;;;;;:::o;2319:132::-;2384:4;2442:1;2412:5;:13;2418:6;2412:13;;;;;;;;;;;;;;;:27;;;:31;2404:40;;2319:132;;;:::o;213:21::-;;;;;;;;;;;;;:::o;7699:1694::-;8257:12;8654:10;8943:25;;:::i;:::-;7992:1;7977:4;7971:18;:22;7963:31;;;;;;;;8036:1;8018:7;8012:21;:25;8004:34;;;;;;;;8078:1;8062:5;8056:19;:23;8048:32;;;;;;;;8119:1;8104:4;8098:18;:22;8090:31;;;;;;;;8164:1;8145:8;8139:22;:26;8131:35;;;;;;;;8204:1;8190:3;8184:17;:21;8176:30;;;;;;;;8237:8;8224:9;:21;;8216:30;;;;;;;;8295:10;8319:4;8337:7;8358:5;8377:4;8395:8;8417:3;8434:8;8456:20;8272:214;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8257:229:2;;8504:37;8518:4;8524;8530;8536;8504:13;:37::i;:::-;8496:46;;;;;;;;8557:22;8568:10;8557;:22::i;:::-;8553:380;;;8692:69;8713:10;8725:7;8734:5;8741:4;8747:8;8757:3;8692:20;:69::i;:::-;8678:83;;;;;;;8785:5;8784:6;8776:15;;;;;;;;8553:380;;;8880:12;8846:5;:17;8852:10;8846:17;;;;;;;;;;;;;;;:31;;:46;;;;8921:1;8907:10;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8553:380;8989:4;8979:2;:7;;:14;;;;9016:7;9003:2;:10;;:20;;;;9044:5;9033:2;:8;;:16;;;;9069:4;9059:2;:7;;:14;;;;9097:8;9083:2;:11;;:22;;;;9124:3;9115:2;:6;;:12;;;;9156;9137:2;:16;;:31;;;;;9204:20;9178:2;:23;;:46;;;;;;;;;;;;;9266:7;9275:5;9282:4;9288:8;9298:3;9256:46;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;9234:2:2;:19;;:68;;;;;;;;;;;;;9312:5;:17;9318:10;9312:17;;;;;;;;;;;;;;;:35;;:44;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;9353:2;9312:44;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9385:1;9367:14;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7699:1694;;;;;;;;;;;;;;:::o;1007:28::-;;;;;;;;;;;;;:::o;1686:90::-;1113:5;;;;;;;;;;;1099:19;;:10;:19;;;1091:28;;;;;;;;1760:9;1751:6;;:18;;;;;;;;;;;;;;;;;;1686:90;:::o;240:47::-;;;;;;;;;;;;;:::o;2167:146::-;1113:5;;;;;;;;;;;1099:19;;:10;:19;;;1091:28;;;;;;;;2257:1;2241:4;2233:21;;;:25;2225:34;;;;;;;;2269:5;;;;;;;;;;;:14;;:37;2292:4;2284:21;;;2269:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2167:146::o;187:20::-;;;;;;;;;;;;;:::o;10395:803::-;10601:12;10761:10;10781:7;10798:14;10822:24;10516:10;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;10588:1;10556:21;10550:35;:39;10542:48;;;;;;;;10639:10;10663:21;10616:78;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;10601:93:2;;10712:37;10726:4;10732;10738;10744;10712:13;:37::i;:::-;10704:46;;;;;;;;10899:109;10942:10;10976:21;10966:32;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;10899:29:2;:109::i;:::-;10856:152;;;;;;;;;;;;;;;;11026:5;11018:14;;;;;;;;11051:9;11050:10;11042:19;;;;;;;;11072:8;;;;;;;;;;;:17;;;11090:10;11102:16;11120:20;:27;11148:12;11120:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11072:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11190:1;11172:14;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10395:803;;;;;;;;;;:::o;883:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;1782:131::-;1113:5;;;;;;;;;;;1099:19;;:10;:19;;;1091:28;;;;;;;;1894:11;1851:8;;:55;;;;;;;;;;;;;;;;;;1782:131;:::o;1966:161::-;1113:5;;;;;;;;;;;1099:19;;:10;:19;;;1091:28;;;;;;;;2075:9;2058:4;2050:21;;;:34;;2042:43;;;;;;;;2095:5;;;;;;;;;;;:14;;:25;2110:9;2095:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1966:161;:::o;6356:558::-;6477:14;;:::i;:::-;6493:12;;:::i;:::-;6507:11;;:::i;:::-;6520:15;;:::i;:::-;6537:10;;:::i;:::-;6451:6;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;6584:5;:13;6590:6;6584:13;;;;;;;;;;;;;;;:31;;6616:12;6584:45;;;;;;;;;;;;;;;;;;;;:53;;6651:5;:13;6657:6;6651:13;;;;;;;;;;;;;;;:31;;6683:12;6651:45;;;;;;;;;;;;;;;;;;;;:51;;6716:5;:13;6722:6;6716:13;;;;;;;;;;;;;;;:31;;6748:12;6716:45;;;;;;;;;;;;;;;;;;;;:50;;6780:5;:13;6786:6;6780:13;;;;;;;;;;;;;;;:31;;6812:12;6780:45;;;;;;;;;;;;;;;;;;;;:54;;6848:5;:13;6854:6;6848:13;;;;;;;;;;;;;;;:31;;6880:12;6848:45;;;;;;;;;;;;;;;;;;;;:49;;6563:344;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6356:558;;;;;;;;;:::o;5284:374::-;5384:6;;:::i;:::-;5411:10;5367:6;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;5424:5;:13;5430:6;5424:13;;;;;;;;;;;;;;;:31;;:38;;;;5411:51;;5406:227;5469:1;5464:2;:6;5406:227;;;5487:4;;;;;;;;5509:32;5530:6;5538:2;5509:20;:32::i;:::-;5505:118;;;5568:5;:13;5574:6;5568:13;;;;;;;;;;;;;;;:31;;5600:2;5568:35;;;;;;;;;;;;;;;;;;;;:40;;5561:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5505:118;5406:227;;;5642:9;;;;;;;;;;;;;;;1231:1;5284:374;;;;;:::o;943:24::-;;;;;;;;;;;;;:::o;3536:694::-;3723:4;3729:7;3738:4;3744:7;3772:10;3699:6;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;3785:1;3772:14;;3767:418;3793:5;:13;3799:6;3793:13;;;;;;;;;;;;;;;:31;;:38;;;;3788:2;:43;3767:418;;;3917:20;3857:80;;;:5;:13;3863:6;3857:13;;;;;;;;;;;;;;;:31;;3889:2;3857:35;;;;;;;;;;;;;;;;;;;;:56;;;:80;;;;3853:322;;;3986:4;4012:2;4036:32;4057:6;4065:2;4036:20;:32::i;:::-;4090:5;:13;4096:6;4090:13;;;;;;;;;;;;;;;:31;;4122:2;4090:35;;;;;;;;;;;;;;;;;;;;:52;;;3957:203;;;;;;;;;;3853:322;3833:4;;;;;;;3767:418;;;4202:5;4209:1;4212:5;4219:3;4194:29;;;;;;;;;;;;;;;;1231:1;3536:694;;;;;;;;;:::o;9399:990::-;9555:10;9575:13;9931:14;10006:9;9529:10;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;9617:69;9638:10;9650:7;9659:5;9666:4;9672:8;9682:3;9617:20;:69::i;:::-;9598:88;;;;;;;;;9704:5;9696:14;;;;;;;;9721:8;;;;;;;;;;;:20;;;9763:4;9782:10;9806:5;:17;9812:10;9806:17;;;;;;;;;;;;;;;:35;;9842:5;9806:42;;;;;;;;;;;;;;;;;;;;:59;;;9721:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9948:5;:17;9954:10;9948:17;;;;;;;;;;;;;;;:35;;:42;;;;9931:59;;10018:5;10006:17;;10001:151;10038:1;10029:6;:10;10025:1;:14;10001:151;;;10101:5;:17;10107:10;10101:17;;;;;;;;;;;;;;;:35;;10139:1;10137;:3;10101:40;;;;;;;;;;;;;;;;;;;;10060:5;:17;10066:10;10060:17;;;;;;;;;;;;;;;:35;;10096:1;10060:38;;;;;;;;;;;;;;;;;;;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10041:3;;;;;;;10001:151;;;10169:5;:17;10175:10;10169:17;;;;;;;;;;;;;;;:35;;10214:1;10205:6;:10;10169:47;;;;;;;;;;;;;;;;;;;;;10162:54;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10226:5;:17;10232:10;10226:17;;;;;;;;;;;;;;;:35;;:44;;;;;;;;;;;;:::i;:::-;;10331:1;10285:5;:17;10291:10;10285:17;;;;;;;;;;;;;;;:35;;:42;;;;:47;10281:102;;;10355:5;:17;10361:10;10355:17;;;;;;;;;;;;;;;;10348:24;;;;;;;;;;;;;;:::i;:::-;;;10281:102;9399:990;;;;;;;;;;:::o;6025:325::-;6107:7;6130:9;6158:10;6142:1;6130:13;;6171:1;6158:14;;6153:173;6179:5;:13;6185:6;6179:13;;;;;;;;;;;;;;;:31;;:38;;;;6174:2;:43;6153:173;;;6243:32;6264:6;6272:2;6243:20;:32::i;:::-;6239:77;;;6300:1;6295:6;;;;6239:77;6219:4;;;;;;;6153:173;;;6342:1;6335:8;;6025:325;;;;;:::o;973:28::-;;;;;;;;;;;;;:::o;4969:214::-;5069:6;;:::i;:::-;5052;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;5098:5;:13;5104:6;5098:13;;;;;;;;;;;;;;;:31;;5169:1;5130:5;:13;5136:6;5130:13;;;;;;;;;;;;;;;:31;;:38;;;;:40;5098:73;;;;;;;;;;;;;;;;;;;;:78;;5091:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4969:214;;;;:::o;1261:289::-;1358:4;1378:19;;:::i;:::-;1444:16;1378:56;;;;;;;;;;;;;;;;;;;;1473:6;1481:4;1463:23;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1444:42:2;;1536:6;;;;;;;;;;;1504:38;;:28;1514:8;1524:1;1527;1530;1504:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1496:47;;1261:289;;;;;;;;:::o;5760:157::-;5842:7;5872:5;:13;5878:6;5872:13;;;;;;;;;;;;;;;:31;;:38;;;;5865:45;;5760:157;;;:::o;4325:586::-;4495:4;4501:7;4510:4;4530:24;4618:10;4479:6;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;4567:7;4576:5;4583:4;4589:8;4599:3;4557:46;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;4530:73:2;;4631:1;4618:14;;4613:258;4639:5;:13;4645:6;4639:13;;;;;;;;;;;;;;;:31;;:38;;;;4634:2;:43;4613:258;;;4759:16;4703:72;;;:5;:13;4709:6;4703:13;;;;;;;;;;;;;;;:31;;4735:2;4703:35;;;;;;;;;;;;;;;;;;;;:52;;;:72;;;;4699:162;;;4803:4;4809:2;4813:32;4834:6;4842:2;4813:20;:32::i;:::-;4795:51;;;;;;;;4699:162;4679:4;;;;;;;4613:258;;;4888:5;4895:1;4898:5;4880:24;;;;;;;;;1231:1;4325:586;;;;;;;;;;;;;:::o;2457:434::-;2578:4;2598:24;2561:6;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;2625:5;:13;2631:6;2625:13;;;;;;;;;;;;;;;:31;;2657:12;2625:45;;;;;;;;;;;;;;;;;;;;:62;;;2598:89;;2722:3;2702:23;;:16;:23;;;;2698:66;;;2748:5;2741:12;;;;2698:66;2883:1;2781:20;:39;2821:8;;;;;;;;;;;:17;;;2847:4;2854:6;2862:16;2821:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2781:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:103;2774:110;;1231:1;2457:434;;;;;;:::o;6920:752::-;7045:11;;:::i;:::-;7066:21;7097:25;7132:24;7173:26;7019:6;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;7202:20;:39;7242:8;;;;;;;;;;;:17;;;7281:4;7300:6;7320:5;:13;7326:6;7320:13;;;;;;;;;;;;;;;:31;;7352:12;7320:45;;;;;;;;;;;;;;;;;;;;:62;;;7242:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7202:191;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7173:220;;7424:5;:13;7430:6;7424:13;;;;;;;;;;;;;;;:31;;7456:12;7424:45;;;;;;;;;;;;;;;;;;;;:50;;7488:5;:13;7494:6;7488:13;;;;;;;;;;;;;;;:31;;7520:12;7488:45;;;;;;;;;;;;;;;;;;;;:59;;;7561:18;7593:5;:13;7599:6;7593:13;;;;;;;;;;;;;;;:31;;7625:12;7593:45;;;;;;;;;;;;;;;;;;;;:62;;;7403:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6920:752;;;;;;;;;:::o;149:11051::-;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity 0.4.19;\n\nimport \"./EthereumClaimsRegistryInterface.sol\";\nimport \"./PhysicalAddressClaim.sol\";\n\n\n// Checks -> Effects -> Interactions\ncontract ProofOfPhysicalAddress {\n address public owner;\n address public signer;\n EthereumClaimsRegistryInterface public registry;\n\n // Main structures:\n struct PhysicalAddress {\n string name;\n\n string country;\n string state;\n string city;\n string location;\n string zip;\n\n uint256 creationBlock;\n bytes32 keccakIdentifier;\n bytes32 confirmationCodeSha3;\n }\n\n function ProofOfPhysicalAddress(address _registry) public\n {\n owner = msg.sender;\n signer = owner;\n registry = EthereumClaimsRegistryInterface(_registry);\n }\n\n struct User {\n uint256 creationBlock;\n PhysicalAddress[] physicalAddresses;\n }\n\n mapping (address => User) public users;\n\n // Stats:\n\n uint64 public totalUsers;\n uint64 public totalAddresses;\n uint64 public totalConfirmed;\n\n // Modifiers:\n modifier onlyOwner() {\n require(msg.sender == owner);\n _;\n }\n\n modifier checkUserExists(address wallet) {\n require(userExists(wallet));\n _;\n }\n\n // Helpers:\n function signerIsValid(bytes32 data, uint8 v, bytes32 r, bytes32 s)\n public constant returns (bool)\n {\n bytes memory prefix = \"\\x19Ethereum Signed Message:\\n32\";\n bytes32 prefixed = keccak256(prefix, data);\n return (ecrecover(prefixed, v, r, s) == signer);\n }\n\n // Methods:\n // set address that is used on server-side to calculate signatures\n // and on contract-side to verify them\n function setSigner(address newSigner) public onlyOwner {\n signer = newSigner;\n }\n\n function setRegistry(address newRegistry) public onlyOwner {\n registry = EthereumClaimsRegistryInterface(newRegistry);\n }\n\n // withdraw specified amount of eth in wei\n function withdrawSome(uint256 amountWei)\n public onlyOwner\n {\n require(address(this).balance >= amountWei);\n owner.transfer(amountWei);\n }\n\n // withdraw all available eth\n function withdrawAll()\n public onlyOwner\n {\n require(address(this).balance > 0);\n owner.transfer(address(this).balance);\n }\n\n function userExists(address wallet)\n public constant returns (bool)\n {\n return (users[wallet].creationBlock > 0);\n }\n\n function userAddressConfirmed(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (bool)\n {\n bytes32 keccakIdentifier = users[wallet].physicalAddresses[addressIndex].keccakIdentifier;\n\n if (keccakIdentifier == 0x0) {\n return false;\n }\n\n return PhysicalAddressClaim.decodeConfirmation(registry.getClaim(address(this), wallet, keccakIdentifier)) > 0;\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByCreationBlock(address wallet, uint256 creationBlock)\n public constant checkUserExists(wallet) returns (bool, uint256, bool)\n {\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].creationBlock == creationBlock) {\n return (true, ai, userAddressConfirmed(wallet, ai));\n }\n }\n return (false, 0, false);\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByConfirmationCode(\n address wallet,\n bytes32 confirmationCodeSha3\n )\n public\n constant\n checkUserExists(wallet)\n returns(bool, uint256, bool, bytes32)\n {\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].confirmationCodeSha3 == confirmationCodeSha3) {\n return (\n true,\n ai,\n userAddressConfirmed(wallet, ai),\n users[wallet].physicalAddresses[ai].keccakIdentifier\n );\n }\n }\n return (false, 0, false, 0x0);\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByAddress(address wallet, string country, string state, string city, string location, string zip)\n public constant checkUserExists(wallet) returns(bool, uint256, bool)\n {\n bytes32 keccakIdentifier = keccak256(country, state, city, location, zip);\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].keccakIdentifier == keccakIdentifier) {\n return (true, ai, userAddressConfirmed(wallet, ai));\n }\n }\n return (false, 0, false);\n }\n\n // returns last name submitted to PoPA contract\n function userLastSubmittedName(address wallet)\n public constant checkUserExists(wallet) returns (string)\n {\n return users[wallet].physicalAddresses[users[wallet].physicalAddresses.length-1].name;\n }\n\n // returns name from the last confirmed address. If no addresses were confirmed returns ''\n function userLastConfirmedName(address wallet)\n public constant checkUserExists(wallet) returns (string)\n {\n for (uint256 ai = users[wallet].physicalAddresses.length; ai > 0;) {\n ai--;\n if (userAddressConfirmed(wallet, ai)) {\n return users[wallet].physicalAddresses[ai].name;\n }\n }\n return \"\";\n }\n\n // returns how many addresses there are in PoPA contract. If user does not exist, returns 0\n function userSubmittedAddressesCount(address wallet)\n public constant returns (uint256)\n {\n return users[wallet].physicalAddresses.length;\n }\n\n // returns how many addresses from PoPA contract are confirmed. If user does not exist, returns 0\n function userConfirmedAddressesCount(address wallet)\n public constant returns (uint256)\n {\n uint256 c = 0;\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (userAddressConfirmed(wallet, ai)) {\n c += 1;\n }\n }\n return c;\n }\n\n function userAddress(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (\n string country, string state, string city, string location, string zip)\n {\n return (\n users[wallet].physicalAddresses[addressIndex].country,\n users[wallet].physicalAddresses[addressIndex].state,\n users[wallet].physicalAddresses[addressIndex].city,\n users[wallet].physicalAddresses[addressIndex].location,\n users[wallet].physicalAddresses[addressIndex].zip\n );\n }\n\n function userAddressInfo(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (\n string name,\n uint256 creationBlock,\n uint256 confirmationBlock,\n bytes32 keccakIdentifier\n ) {\n uint256 _confirmationBlock = PhysicalAddressClaim.decodeConfirmation(registry.getClaim(\n address(this),\n wallet,\n users[wallet].physicalAddresses[addressIndex].keccakIdentifier)\n );\n return (\n users[wallet].physicalAddresses[addressIndex].name,\n users[wallet].physicalAddresses[addressIndex].creationBlock,\n _confirmationBlock,\n users[wallet].physicalAddresses[addressIndex].keccakIdentifier\n );\n }\n\n // Main methods:\n function registerAddress(\n string name,\n string country, string state, string city, string location, string zip,\n uint256 priceWei,\n bytes32 confirmationCodeSha3, uint8 sigV, bytes32 sigR, bytes32 sigS)\n public payable\n {\n require(bytes(name).length > 0);\n require(bytes(country).length > 0);\n require(bytes(state).length > 0);\n require(bytes(city).length > 0);\n require(bytes(location).length > 0);\n require(bytes(zip).length > 0);\n require(msg.value >= priceWei);\n\n bytes32 data = keccak256(\n msg.sender,\n name,\n country,\n state,\n city,\n location,\n zip,\n priceWei,\n confirmationCodeSha3\n );\n require(signerIsValid(data, sigV, sigR, sigS));\n\n if (userExists(msg.sender)) {\n // check if this address is already registered\n bool found;\n (found, , ) = userAddressByAddress(msg.sender, country, state, city, location, zip);\n\n require(!found);\n } else {\n // new user\n users[msg.sender].creationBlock = block.number;\n\n totalUsers += 1;\n }\n\n PhysicalAddress memory pa;\n\n pa.name = name;\n pa.country = country;\n pa.state = state;\n pa.city = city;\n pa.location = location;\n pa.zip = zip;\n pa.creationBlock = block.number;\n pa.confirmationCodeSha3 = confirmationCodeSha3;\n pa.keccakIdentifier = keccak256(country, state, city, location, zip);\n users[msg.sender].physicalAddresses.push(pa);\n\n totalAddresses += 1;\n }\n\n function unregisterAddress(string country, string state, string city, string location, string zip)\n public checkUserExists(msg.sender)\n {\n bool found;\n uint256 index;\n (found, index, ) = userAddressByAddress(msg.sender, country, state, city, location, zip);\n require(found);\n\n registry.removeClaim(\n address(this),\n msg.sender,\n users[msg.sender].physicalAddresses[index].keccakIdentifier\n );\n\n // Remove physical address from list\n uint256 length = users[msg.sender].physicalAddresses.length;\n\n for (uint256 i = index; i < length - 1; i++) {\n users[msg.sender].physicalAddresses[i] = users[msg.sender].physicalAddresses[i+1];\n }\n\n delete users[msg.sender].physicalAddresses[length - 1];\n users[msg.sender].physicalAddresses.length--;\n\n if (users[msg.sender].physicalAddresses.length == 0) {\n delete users[msg.sender];\n }\n }\n\n function confirmAddress(string confirmationCodePlain, uint8 sigV, bytes32 sigR, bytes32 sigS)\n public checkUserExists(msg.sender)\n {\n require(bytes(confirmationCodePlain).length > 0);\n\n bytes32 data = keccak256(\n msg.sender,\n confirmationCodePlain\n );\n require(signerIsValid(data, sigV, sigR, sigS));\n\n bool found;\n uint ai;\n bool confirmed;\n bytes32 keccakIdentifier;\n (found, ai, confirmed, keccakIdentifier) = userAddressByConfirmationCode(\n msg.sender,\n keccak256(confirmationCodePlain)\n );\n require(found);\n require(!confirmed);\n\n registry.setClaim(msg.sender, keccakIdentifier, PhysicalAddressClaim.encode(block.number));\n totalConfirmed += 1;\n }\n}\n", "sourcePath": "/home/fvictorio/repos/poa-popa/blockchain/contracts/ProofOfPhysicalAddress.sol", "ast": { "attributes": { "absolutePath": "/home/fvictorio/repos/poa-popa/blockchain/contracts/ProofOfPhysicalAddress.sol", "exportedSymbols": { "ProofOfPhysicalAddress": [ - 1418 + 1314 ] } }, @@ -637,39 +637,39 @@ ".19" ] }, - "id": 214, + "id": 157, "name": "PragmaDirective", - "src": "0:23:3" + "src": "0:23:2" }, { "attributes": { "SourceUnit": 39, "absolutePath": "/home/fvictorio/repos/poa-popa/blockchain/contracts/EthereumClaimsRegistryInterface.sol", "file": "./EthereumClaimsRegistryInterface.sol", - "scope": 1419, + "scope": 1315, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 215, + "id": 158, "name": "ImportDirective", - "src": "25:47:3" + "src": "25:47:2" }, { "attributes": { - "SourceUnit": 213, + "SourceUnit": 156, "absolutePath": "/home/fvictorio/repos/poa-popa/blockchain/contracts/PhysicalAddressClaim.sol", "file": "./PhysicalAddressClaim.sol", - "scope": 1419, + "scope": 1315, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 216, + "id": 159, "name": "ImportDirective", - "src": "73:36:3" + "src": "73:36:2" }, { "attributes": { @@ -683,17 +683,17 @@ "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 1418 + 1314 ], "name": "ProofOfPhysicalAddress", - "scope": 1419 + "scope": 1315 }, "children": [ { "attributes": { "constant": false, "name": "owner", - "scope": 1418, + "scope": 1314, "stateVariable": true, "storageLocation": "default", "type": "address", @@ -706,20 +706,20 @@ "name": "address", "type": "address" }, - "id": 217, + "id": 160, "name": "ElementaryTypeName", - "src": "187:7:3" + "src": "187:7:2" } ], - "id": 218, + "id": 161, "name": "VariableDeclaration", - "src": "187:20:3" + "src": "187:20:2" }, { "attributes": { "constant": false, "name": "signer", - "scope": 1418, + "scope": 1314, "stateVariable": true, "storageLocation": "default", "type": "address", @@ -732,20 +732,20 @@ "name": "address", "type": "address" }, - "id": 219, + "id": 162, "name": "ElementaryTypeName", - "src": "213:7:3" + "src": "213:7:2" } ], - "id": 220, + "id": 163, "name": "VariableDeclaration", - "src": "213:21:3" + "src": "213:21:2" }, { "attributes": { "constant": false, "name": "registry", - "scope": 1418, + "scope": 1314, "stateVariable": true, "storageLocation": "default", "type": "contract EthereumClaimsRegistryInterface", @@ -760,20 +760,20 @@ "referencedDeclaration": 38, "type": "contract EthereumClaimsRegistryInterface" }, - "id": 221, + "id": 164, "name": "UserDefinedTypeName", - "src": "240:31:3" + "src": "240:31:2" } ], - "id": 222, + "id": 165, "name": "VariableDeclaration", - "src": "240:47:3" + "src": "240:47:2" }, { "attributes": { "canonicalName": "ProofOfPhysicalAddress.PhysicalAddress", "name": "PhysicalAddress", - "scope": 1418, + "scope": 1314, "visibility": "public" }, "children": [ @@ -781,7 +781,7 @@ "attributes": { "constant": false, "name": "name", - "scope": 241, + "scope": 184, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -794,20 +794,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 223, + "id": 166, "name": "ElementaryTypeName", - "src": "351:6:3" + "src": "351:6:2" } ], - "id": 224, + "id": 167, "name": "VariableDeclaration", - "src": "351:11:3" + "src": "351:11:2" }, { "attributes": { "constant": false, "name": "country", - "scope": 241, + "scope": 184, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -820,20 +820,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 225, + "id": 168, "name": "ElementaryTypeName", - "src": "373:6:3" + "src": "373:6:2" } ], - "id": 226, + "id": 169, "name": "VariableDeclaration", - "src": "373:14:3" + "src": "373:14:2" }, { "attributes": { "constant": false, "name": "state", - "scope": 241, + "scope": 184, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -846,20 +846,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 227, + "id": 170, "name": "ElementaryTypeName", - "src": "397:6:3" + "src": "397:6:2" } ], - "id": 228, + "id": 171, "name": "VariableDeclaration", - "src": "397:12:3" + "src": "397:12:2" }, { "attributes": { "constant": false, "name": "city", - "scope": 241, + "scope": 184, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -872,20 +872,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 229, + "id": 172, "name": "ElementaryTypeName", - "src": "419:6:3" + "src": "419:6:2" } ], - "id": 230, + "id": 173, "name": "VariableDeclaration", - "src": "419:11:3" + "src": "419:11:2" }, { "attributes": { "constant": false, "name": "location", - "scope": 241, + "scope": 184, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -898,20 +898,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 231, + "id": 174, "name": "ElementaryTypeName", - "src": "440:6:3" + "src": "440:6:2" } ], - "id": 232, + "id": 175, "name": "VariableDeclaration", - "src": "440:15:3" + "src": "440:15:2" }, { "attributes": { "constant": false, "name": "zip", - "scope": 241, + "scope": 184, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -924,20 +924,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 233, + "id": 176, "name": "ElementaryTypeName", - "src": "465:6:3" + "src": "465:6:2" } ], - "id": 234, + "id": 177, "name": "VariableDeclaration", - "src": "465:10:3" + "src": "465:10:2" }, { "attributes": { "constant": false, "name": "creationBlock", - "scope": 241, + "scope": 184, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -950,20 +950,20 @@ "name": "uint256", "type": "uint256" }, - "id": 235, + "id": 178, "name": "ElementaryTypeName", - "src": "486:7:3" + "src": "486:7:2" } ], - "id": 236, + "id": 179, "name": "VariableDeclaration", - "src": "486:21:3" + "src": "486:21:2" }, { "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 241, + "scope": 184, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -976,20 +976,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 237, + "id": 180, "name": "ElementaryTypeName", - "src": "517:7:3" + "src": "517:7:2" } ], - "id": 238, + "id": 181, "name": "VariableDeclaration", - "src": "517:24:3" + "src": "517:24:2" }, { "attributes": { "constant": false, "name": "confirmationCodeSha3", - "scope": 241, + "scope": 184, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1002,19 +1002,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 239, + "id": 182, "name": "ElementaryTypeName", - "src": "551:7:3" + "src": "551:7:2" } ], - "id": 240, + "id": 183, "name": "VariableDeclaration", - "src": "551:28:3" + "src": "551:28:2" } ], - "id": 241, + "id": 184, "name": "StructDefinition", - "src": "318:268:3" + "src": "318:268:2" }, { "attributes": { @@ -1026,7 +1026,7 @@ ], "name": "ProofOfPhysicalAddress", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1038,7 +1038,7 @@ "attributes": { "constant": false, "name": "_registry", - "scope": 262, + "scope": 205, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1051,19 +1051,19 @@ "name": "address", "type": "address" }, - "id": 242, + "id": 185, "name": "ElementaryTypeName", - "src": "624:7:3" + "src": "624:7:2" } ], - "id": 243, + "id": 186, "name": "VariableDeclaration", - "src": "624:17:3" + "src": "624:17:2" } ], - "id": 244, + "id": 187, "name": "ParameterList", - "src": "623:19:3" + "src": "623:19:2" }, { "attributes": { @@ -1072,9 +1072,9 @@ ] }, "children": [], - "id": 245, + "id": 188, "name": "ParameterList", - "src": "654:0:3" + "src": "654:0:2" }, { "children": [ @@ -1097,13 +1097,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 218, + "referencedDeclaration": 161, "type": "address", "value": "owner" }, - "id": 246, + "id": 189, "name": "Identifier", - "src": "664:5:3" + "src": "664:5:2" }, { "attributes": { @@ -1123,28 +1123,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 247, + "id": 190, "name": "Identifier", - "src": "672:3:3" + "src": "672:3:2" } ], - "id": 248, + "id": 191, "name": "MemberAccess", - "src": "672:10:3" + "src": "672:10:2" } ], - "id": 249, + "id": 192, "name": "Assignment", - "src": "664:18:3" + "src": "664:18:2" } ], - "id": 250, + "id": 193, "name": "ExpressionStatement", - "src": "664:18:3" + "src": "664:18:2" }, { "children": [ @@ -1165,13 +1165,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 163, "type": "address", "value": "signer" }, - "id": 251, + "id": 194, "name": "Identifier", - "src": "692:6:3" + "src": "692:6:2" }, { "attributes": { @@ -1179,23 +1179,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 218, + "referencedDeclaration": 161, "type": "address", "value": "owner" }, - "id": 252, + "id": 195, "name": "Identifier", - "src": "701:5:3" + "src": "701:5:2" } ], - "id": 253, + "id": 196, "name": "Assignment", - "src": "692:14:3" + "src": "692:14:2" } ], - "id": 254, + "id": 197, "name": "ExpressionStatement", - "src": "692:14:3" + "src": "692:14:2" }, { "children": [ @@ -1216,13 +1216,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 222, + "referencedDeclaration": 165, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 255, + "id": 198, "name": "Identifier", - "src": "716:8:3" + "src": "716:8:2" }, { "attributes": { @@ -1254,9 +1254,9 @@ "type": "type(contract EthereumClaimsRegistryInterface)", "value": "EthereumClaimsRegistryInterface" }, - "id": 256, + "id": 199, "name": "Identifier", - "src": "727:31:3" + "src": "727:31:2" }, { "attributes": { @@ -1264,44 +1264,44 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 243, + "referencedDeclaration": 186, "type": "address", "value": "_registry" }, - "id": 257, + "id": 200, "name": "Identifier", - "src": "759:9:3" + "src": "759:9:2" } ], - "id": 258, + "id": 201, "name": "FunctionCall", - "src": "727:42:3" + "src": "727:42:2" } ], - "id": 259, + "id": 202, "name": "Assignment", - "src": "716:53:3" + "src": "716:53:2" } ], - "id": 260, + "id": 203, "name": "ExpressionStatement", - "src": "716:53:3" + "src": "716:53:2" } ], - "id": 261, + "id": 204, "name": "Block", - "src": "654:122:3" + "src": "654:122:2" } ], - "id": 262, + "id": 205, "name": "FunctionDefinition", - "src": "592:184:3" + "src": "592:184:2" }, { "attributes": { "canonicalName": "ProofOfPhysicalAddress.User", "name": "User", - "scope": 1418, + "scope": 1314, "visibility": "public" }, "children": [ @@ -1309,7 +1309,7 @@ "attributes": { "constant": false, "name": "creationBlock", - "scope": 268, + "scope": 211, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -1322,20 +1322,20 @@ "name": "uint256", "type": "uint256" }, - "id": 263, + "id": 206, "name": "ElementaryTypeName", - "src": "804:7:3" + "src": "804:7:2" } ], - "id": 264, + "id": 207, "name": "VariableDeclaration", - "src": "804:21:3" + "src": "804:21:2" }, { "attributes": { "constant": false, "name": "physicalAddresses", - "scope": 268, + "scope": 211, "stateVariable": false, "storageLocation": "default", "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage pointer", @@ -1353,33 +1353,33 @@ "attributes": { "contractScope": null, "name": "PhysicalAddress", - "referencedDeclaration": 241, + "referencedDeclaration": 184, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage pointer" }, - "id": 265, + "id": 208, "name": "UserDefinedTypeName", - "src": "835:15:3" + "src": "835:15:2" } ], - "id": 266, + "id": 209, "name": "ArrayTypeName", - "src": "835:17:3" + "src": "835:17:2" } ], - "id": 267, + "id": 210, "name": "VariableDeclaration", - "src": "835:35:3" + "src": "835:35:2" } ], - "id": 268, + "id": 211, "name": "StructDefinition", - "src": "782:95:3" + "src": "782:95:2" }, { "attributes": { "constant": false, "name": "users", - "scope": 1418, + "scope": 1314, "stateVariable": true, "storageLocation": "default", "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", @@ -1397,36 +1397,36 @@ "name": "address", "type": "address" }, - "id": 269, + "id": 212, "name": "ElementaryTypeName", - "src": "892:7:3" + "src": "892:7:2" }, { "attributes": { "contractScope": null, "name": "User", - "referencedDeclaration": 268, + "referencedDeclaration": 211, "type": "struct ProofOfPhysicalAddress.User storage pointer" }, - "id": 270, + "id": 213, "name": "UserDefinedTypeName", - "src": "903:4:3" + "src": "903:4:2" } ], - "id": 271, + "id": 214, "name": "Mapping", - "src": "883:25:3" + "src": "883:25:2" } ], - "id": 272, + "id": 215, "name": "VariableDeclaration", - "src": "883:38:3" + "src": "883:38:2" }, { "attributes": { "constant": false, "name": "totalUsers", - "scope": 1418, + "scope": 1314, "stateVariable": true, "storageLocation": "default", "type": "uint64", @@ -1439,20 +1439,20 @@ "name": "uint64", "type": "uint64" }, - "id": 273, + "id": 216, "name": "ElementaryTypeName", - "src": "943:6:3" + "src": "943:6:2" } ], - "id": 274, + "id": 217, "name": "VariableDeclaration", - "src": "943:24:3" + "src": "943:24:2" }, { "attributes": { "constant": false, "name": "totalAddresses", - "scope": 1418, + "scope": 1314, "stateVariable": true, "storageLocation": "default", "type": "uint64", @@ -1465,20 +1465,20 @@ "name": "uint64", "type": "uint64" }, - "id": 275, + "id": 218, "name": "ElementaryTypeName", - "src": "973:6:3" + "src": "973:6:2" } ], - "id": 276, + "id": 219, "name": "VariableDeclaration", - "src": "973:28:3" + "src": "973:28:2" }, { "attributes": { "constant": false, "name": "totalConfirmed", - "scope": 1418, + "scope": 1314, "stateVariable": true, "storageLocation": "default", "type": "uint64", @@ -1491,14 +1491,314 @@ "name": "uint64", "type": "uint64" }, - "id": 277, + "id": 220, "name": "ElementaryTypeName", - "src": "1007:6:3" + "src": "1007:6:2" } ], - "id": 278, + "id": 221, "name": "VariableDeclaration", - "src": "1007:28:3" + "src": "1007:28:2" + }, + { + "attributes": { + "name": "onlyOwner", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 222, + "name": "ParameterList", + "src": "1078:2:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1329, + "type": "function (bool) pure", + "value": "require" + }, + "id": 223, + "name": "Identifier", + "src": "1091:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1326, + "type": "msg", + "value": "msg" + }, + "id": 224, + "name": "Identifier", + "src": "1099:3:2" + } + ], + "id": 225, + "name": "MemberAccess", + "src": "1099:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 161, + "type": "address", + "value": "owner" + }, + "id": 226, + "name": "Identifier", + "src": "1113:5:2" + } + ], + "id": 227, + "name": "BinaryOperation", + "src": "1099:19:2" + } + ], + "id": 228, + "name": "FunctionCall", + "src": "1091:28:2" + } + ], + "id": 229, + "name": "ExpressionStatement", + "src": "1091:28:2" + }, + { + "id": 230, + "name": "PlaceholderStatement", + "src": "1129:1:2" + } + ], + "id": 231, + "name": "Block", + "src": "1081:56:2" + } + ], + "id": 232, + "name": "ModifierDefinition", + "src": "1060:77:2" + }, + { + "attributes": { + "name": "checkUserExists", + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "wallet", + "scope": 244, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 233, + "name": "ElementaryTypeName", + "src": "1168:7:2" + } + ], + "id": 234, + "name": "VariableDeclaration", + "src": "1168:14:2" + } + ], + "id": 235, + "name": "ParameterList", + "src": "1167:16:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1329, + "type": "function (bool) pure", + "value": "require" + }, + "id": 236, + "name": "Identifier", + "src": "1194:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 368, + "type": "function (address) view returns (bool)", + "value": "userExists" + }, + "id": 237, + "name": "Identifier", + "src": "1202:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 234, + "type": "address", + "value": "wallet" + }, + "id": 238, + "name": "Identifier", + "src": "1213:6:2" + } + ], + "id": 239, + "name": "FunctionCall", + "src": "1202:18:2" + } + ], + "id": 240, + "name": "FunctionCall", + "src": "1194:27:2" + } + ], + "id": 241, + "name": "ExpressionStatement", + "src": "1194:27:2" + }, + { + "id": 242, + "name": "PlaceholderStatement", + "src": "1231:1:2" + } + ], + "id": 243, + "name": "Block", + "src": "1184:55:2" + } + ], + "id": 244, + "name": "ModifierDefinition", + "src": "1143:96:2" }, { "attributes": { @@ -1510,7 +1810,7 @@ ], "name": "signerIsValid", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1522,7 +1822,7 @@ "attributes": { "constant": false, "name": "data", - "scope": 313, + "scope": 279, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1535,20 +1835,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 279, + "id": 245, "name": "ElementaryTypeName", - "src": "1081:7:3" + "src": "1284:7:2" } ], - "id": 280, + "id": 246, "name": "VariableDeclaration", - "src": "1081:12:3" + "src": "1284:12:2" }, { "attributes": { "constant": false, "name": "v", - "scope": 313, + "scope": 279, "stateVariable": false, "storageLocation": "default", "type": "uint8", @@ -1561,20 +1861,20 @@ "name": "uint8", "type": "uint8" }, - "id": 281, + "id": 247, "name": "ElementaryTypeName", - "src": "1095:5:3" + "src": "1298:5:2" } ], - "id": 282, + "id": 248, "name": "VariableDeclaration", - "src": "1095:7:3" + "src": "1298:7:2" }, { "attributes": { "constant": false, "name": "r", - "scope": 313, + "scope": 279, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1587,20 +1887,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 283, + "id": 249, "name": "ElementaryTypeName", - "src": "1104:7:3" + "src": "1307:7:2" } ], - "id": 284, + "id": 250, "name": "VariableDeclaration", - "src": "1104:9:3" + "src": "1307:9:2" }, { "attributes": { "constant": false, "name": "s", - "scope": 313, + "scope": 279, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1613,19 +1913,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 285, + "id": 251, "name": "ElementaryTypeName", - "src": "1115:7:3" + "src": "1318:7:2" } ], - "id": 286, + "id": 252, "name": "VariableDeclaration", - "src": "1115:9:3" + "src": "1318:9:2" } ], - "id": 287, + "id": 253, "name": "ParameterList", - "src": "1080:45:3" + "src": "1283:45:2" }, { "children": [ @@ -1633,7 +1933,7 @@ "attributes": { "constant": false, "name": "", - "scope": 313, + "scope": 279, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -1646,26 +1946,26 @@ "name": "bool", "type": "bool" }, - "id": 288, + "id": 254, "name": "ElementaryTypeName", - "src": "1155:4:3" + "src": "1358:4:2" } ], - "id": 289, + "id": 255, "name": "VariableDeclaration", - "src": "1155:4:3" + "src": "1358:4:2" } ], - "id": 290, + "id": 256, "name": "ParameterList", - "src": "1154:6:3" + "src": "1357:6:2" }, { "children": [ { "attributes": { "assignments": [ - 292 + 258 ] }, "children": [ @@ -1673,7 +1973,7 @@ "attributes": { "constant": false, "name": "prefix", - "scope": 313, + "scope": 279, "stateVariable": false, "storageLocation": "memory", "type": "bytes memory", @@ -1686,14 +1986,14 @@ "name": "bytes", "type": "bytes storage pointer" }, - "id": 291, + "id": 257, "name": "ElementaryTypeName", - "src": "1175:5:3" + "src": "1378:5:2" } ], - "id": 292, + "id": 258, "name": "VariableDeclaration", - "src": "1175:19:3" + "src": "1378:19:2" }, { "attributes": { @@ -1708,19 +2008,19 @@ "type": "literal_string \"\u0019Ethereum Signed Message:\n32\"", "value": "\u0019Ethereum Signed Message:\n32" }, - "id": 293, + "id": 259, "name": "Literal", - "src": "1197:34:3" + "src": "1400:34:2" } ], - "id": 294, + "id": 260, "name": "VariableDeclarationStatement", - "src": "1175:56:3" + "src": "1378:56:2" }, { "attributes": { "assignments": [ - 296 + 262 ] }, "children": [ @@ -1728,7 +2028,7 @@ "attributes": { "constant": false, "name": "prefixed", - "scope": 313, + "scope": 279, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1741,14 +2041,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 295, + "id": 261, "name": "ElementaryTypeName", - "src": "1241:7:3" + "src": "1444:7:2" } ], - "id": 296, + "id": 262, "name": "VariableDeclaration", - "src": "1241:16:3" + "src": "1444:16:2" }, { "attributes": { @@ -1780,13 +2080,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1424, + "referencedDeclaration": 1320, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 297, + "id": 263, "name": "Identifier", - "src": "1260:9:3" + "src": "1463:9:2" }, { "attributes": { @@ -1794,13 +2094,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 292, + "referencedDeclaration": 258, "type": "bytes memory", "value": "prefix" }, - "id": 298, + "id": 264, "name": "Identifier", - "src": "1270:6:3" + "src": "1473:6:2" }, { "attributes": { @@ -1808,27 +2108,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 280, + "referencedDeclaration": 246, "type": "bytes32", "value": "data" }, - "id": 299, + "id": 265, "name": "Identifier", - "src": "1278:4:3" + "src": "1481:4:2" } ], - "id": 300, + "id": 266, "name": "FunctionCall", - "src": "1260:23:3" + "src": "1463:23:2" } ], - "id": 301, + "id": 267, "name": "VariableDeclarationStatement", - "src": "1241:42:3" + "src": "1444:42:2" }, { "attributes": { - "functionReturnParameters": 290 + "functionReturnParameters": 256 }, "children": [ { @@ -1895,13 +2195,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1423, + "referencedDeclaration": 1319, "type": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)", "value": "ecrecover" }, - "id": 302, + "id": 268, "name": "Identifier", - "src": "1301:9:3" + "src": "1504:9:2" }, { "attributes": { @@ -1909,13 +2209,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 296, + "referencedDeclaration": 262, "type": "bytes32", "value": "prefixed" }, - "id": 303, + "id": 269, "name": "Identifier", - "src": "1311:8:3" + "src": "1514:8:2" }, { "attributes": { @@ -1923,13 +2223,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 282, + "referencedDeclaration": 248, "type": "uint8", "value": "v" }, - "id": 304, + "id": 270, "name": "Identifier", - "src": "1321:1:3" + "src": "1524:1:2" }, { "attributes": { @@ -1937,13 +2237,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 284, + "referencedDeclaration": 250, "type": "bytes32", "value": "r" }, - "id": 305, + "id": 271, "name": "Identifier", - "src": "1324:1:3" + "src": "1527:1:2" }, { "attributes": { @@ -1951,18 +2251,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 286, + "referencedDeclaration": 252, "type": "bytes32", "value": "s" }, - "id": 306, + "id": 272, "name": "Identifier", - "src": "1327:1:3" + "src": "1530:1:2" } ], - "id": 307, + "id": 273, "name": "FunctionCall", - "src": "1301:28:3" + "src": "1504:28:2" }, { "attributes": { @@ -1970,50 +2270,47 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 163, "type": "address", "value": "signer" }, - "id": 308, + "id": 274, "name": "Identifier", - "src": "1333:6:3" + "src": "1536:6:2" } ], - "id": 309, + "id": 275, "name": "BinaryOperation", - "src": "1301:38:3" + "src": "1504:38:2" } ], - "id": 310, + "id": 276, "name": "TupleExpression", - "src": "1300:40:3" + "src": "1503:40:2" } ], - "id": 311, + "id": 277, "name": "Return", - "src": "1293:47:3" + "src": "1496:47:2" } ], - "id": 312, + "id": 278, "name": "Block", - "src": "1165:182:3" + "src": "1368:182:2" } ], - "id": 313, + "id": 279, "name": "FunctionDefinition", - "src": "1058:289:3" + "src": "1261:289:2" }, { "attributes": { "constant": false, "implemented": true, "isConstructor": false, - "modifiers": [ - null - ], "name": "setSigner", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2025,7 +2322,7 @@ "attributes": { "constant": false, "name": "newSigner", - "scope": 330, + "scope": 291, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2038,19 +2335,19 @@ "name": "address", "type": "address" }, - "id": 314, + "id": 280, "name": "ElementaryTypeName", - "src": "1502:7:3" + "src": "1705:7:2" } ], - "id": 315, + "id": 281, "name": "VariableDeclaration", - "src": "1502:17:3" + "src": "1705:17:2" } ], - "id": 316, + "id": 282, "name": "ParameterList", - "src": "1501:19:3" + "src": "1704:19:2" }, { "attributes": { @@ -2059,123 +2356,38 @@ ] }, "children": [], - "id": 317, + "id": 285, "name": "ParameterList", - "src": "1528:0:3" + "src": "1741:0:2" }, { + "attributes": { + "arguments": [ + null + ] + }, "children": [ { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1433, - "type": "function (bool) pure", - "value": "require" - }, - "id": 318, - "name": "Identifier", - "src": "1538:7:3" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "==", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "sender", - "referencedDeclaration": null, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1430, - "type": "msg", - "value": "msg" - }, - "id": 319, - "name": "Identifier", - "src": "1546:3:3" - } - ], - "id": 320, - "name": "MemberAccess", - "src": "1546:10:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 218, - "type": "address", - "value": "owner" - }, - "id": 321, - "name": "Identifier", - "src": "1560:5:3" - } - ], - "id": 322, - "name": "BinaryOperation", - "src": "1546:19:3" - } - ], - "id": 323, - "name": "FunctionCall", - "src": "1538:28:3" - } - ], - "id": 324, - "name": "ExpressionStatement", - "src": "1538:28:3" - }, + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 232, + "type": "modifier ()", + "value": "onlyOwner" + }, + "id": 283, + "name": "Identifier", + "src": "1731:9:2" + } + ], + "id": 284, + "name": "ModifierInvocation", + "src": "1731:9:2" + }, + { + "children": [ { "children": [ { @@ -2195,13 +2407,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 220, + "referencedDeclaration": 163, "type": "address", "value": "signer" }, - "id": 325, + "id": 286, "name": "Identifier", - "src": "1576:6:3" + "src": "1751:6:2" }, { "attributes": { @@ -2209,45 +2421,42 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 315, + "referencedDeclaration": 281, "type": "address", "value": "newSigner" }, - "id": 326, + "id": 287, "name": "Identifier", - "src": "1585:9:3" + "src": "1760:9:2" } ], - "id": 327, + "id": 288, "name": "Assignment", - "src": "1576:18:3" + "src": "1751:18:2" } ], - "id": 328, + "id": 289, "name": "ExpressionStatement", - "src": "1576:18:3" + "src": "1751:18:2" } ], - "id": 329, + "id": 290, "name": "Block", - "src": "1528:73:3" + "src": "1741:35:2" } ], - "id": 330, + "id": 291, "name": "FunctionDefinition", - "src": "1483:118:3" + "src": "1686:90:2" }, { "attributes": { "constant": false, "implemented": true, "isConstructor": false, - "modifiers": [ - null - ], "name": "setRegistry", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2259,7 +2468,7 @@ "attributes": { "constant": false, "name": "newRegistry", - "scope": 349, + "scope": 305, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2272,19 +2481,19 @@ "name": "address", "type": "address" }, - "id": 331, + "id": 292, "name": "ElementaryTypeName", - "src": "1628:7:3" + "src": "1803:7:2" } ], - "id": 332, + "id": 293, "name": "VariableDeclaration", - "src": "1628:19:3" + "src": "1803:19:2" } ], - "id": 333, + "id": 294, "name": "ParameterList", - "src": "1627:21:3" + "src": "1802:21:2" }, { "attributes": { @@ -2293,123 +2502,38 @@ ] }, "children": [], - "id": 334, + "id": 297, "name": "ParameterList", - "src": "1656:0:3" + "src": "1841:0:2" }, { + "attributes": { + "arguments": [ + null + ] + }, "children": [ { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1433, - "type": "function (bool) pure", - "value": "require" - }, - "id": 335, - "name": "Identifier", - "src": "1666:7:3" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "==", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "sender", - "referencedDeclaration": null, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1430, - "type": "msg", - "value": "msg" - }, - "id": 336, - "name": "Identifier", - "src": "1674:3:3" - } - ], - "id": 337, - "name": "MemberAccess", - "src": "1674:10:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 218, - "type": "address", - "value": "owner" - }, - "id": 338, - "name": "Identifier", - "src": "1688:5:3" - } - ], - "id": 339, - "name": "BinaryOperation", - "src": "1674:19:3" - } - ], - "id": 340, - "name": "FunctionCall", - "src": "1666:28:3" - } - ], - "id": 341, - "name": "ExpressionStatement", - "src": "1666:28:3" - }, + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 232, + "type": "modifier ()", + "value": "onlyOwner" + }, + "id": 295, + "name": "Identifier", + "src": "1831:9:2" + } + ], + "id": 296, + "name": "ModifierInvocation", + "src": "1831:9:2" + }, + { + "children": [ { "children": [ { @@ -2429,13 +2553,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 222, + "referencedDeclaration": 165, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 342, + "id": 298, "name": "Identifier", - "src": "1704:8:3" + "src": "1851:8:2" }, { "attributes": { @@ -2467,9 +2591,9 @@ "type": "type(contract EthereumClaimsRegistryInterface)", "value": "EthereumClaimsRegistryInterface" }, - "id": 343, + "id": 299, "name": "Identifier", - "src": "1715:31:3" + "src": "1862:31:2" }, { "attributes": { @@ -2477,50 +2601,47 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 332, + "referencedDeclaration": 293, "type": "address", "value": "newRegistry" }, - "id": 344, + "id": 300, "name": "Identifier", - "src": "1747:11:3" + "src": "1894:11:2" } ], - "id": 345, + "id": 301, "name": "FunctionCall", - "src": "1715:44:3" + "src": "1862:44:2" } ], - "id": 346, + "id": 302, "name": "Assignment", - "src": "1704:55:3" + "src": "1851:55:2" } ], - "id": 347, + "id": 303, "name": "ExpressionStatement", - "src": "1704:55:3" + "src": "1851:55:2" } ], - "id": 348, + "id": 304, "name": "Block", - "src": "1656:110:3" + "src": "1841:72:2" } ], - "id": 349, + "id": 305, "name": "FunctionDefinition", - "src": "1607:159:3" + "src": "1782:131:2" }, { "attributes": { "constant": false, "implemented": true, "isConstructor": false, - "modifiers": [ - null - ], "name": "withdrawSome", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2532,7 +2653,7 @@ "attributes": { "constant": false, "name": "amountWei", - "scope": 378, + "scope": 328, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -2545,19 +2666,19 @@ "name": "uint256", "type": "uint256" }, - "id": 350, + "id": 306, "name": "ElementaryTypeName", - "src": "1841:7:3" + "src": "1988:7:2" } ], - "id": 351, + "id": 307, "name": "VariableDeclaration", - "src": "1841:17:3" + "src": "1988:17:2" } ], - "id": 352, + "id": 308, "name": "ParameterList", - "src": "1840:19:3" + "src": "1987:19:2" }, { "attributes": { @@ -2566,9 +2687,35 @@ ] }, "children": [], - "id": 353, + "id": 311, "name": "ParameterList", - "src": "1875:0:3" + "src": "2032:0:2" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 232, + "type": "modifier ()", + "value": "onlyOwner" + }, + "id": 309, + "name": "Identifier", + "src": "2018:9:2" + } + ], + "id": 310, + "name": "ModifierInvocation", + "src": "2018:9:2" }, { "children": [ @@ -2600,26 +2747,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 354, + "id": 312, "name": "Identifier", - "src": "1885:7:3" + "src": "2042:7:2" }, { "attributes": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "operator": "==", + "operator": ">=", "type": "bool" }, "children": [ @@ -2630,29 +2777,68 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "member_name": "sender", + "member_name": "balance", "referencedDeclaration": null, - "type": "address" + "type": "uint256" }, "children": [ { "attributes": { "argumentTypes": null, - "overloadedDeclarations": [ + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ null ], - "referencedDeclaration": 1430, - "type": "msg", - "value": "msg" + "type": "address", + "type_conversion": true }, - "id": 355, - "name": "Identifier", - "src": "1893:3:3" + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1314", + "typeString": "contract ProofOfPhysicalAddress" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 313, + "name": "ElementaryTypeNameExpression", + "src": "2050:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1341, + "type": "contract ProofOfPhysicalAddress", + "value": "this" + }, + "id": 314, + "name": "Identifier", + "src": "2058:4:2" + } + ], + "id": 315, + "name": "FunctionCall", + "src": "2050:13:2" } ], - "id": 356, + "id": 316, "name": "MemberAccess", - "src": "1893:10:3" + "src": "2050:21:2" }, { "attributes": { @@ -2660,188 +2846,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 218, - "type": "address", - "value": "owner" + "referencedDeclaration": 307, + "type": "uint256", + "value": "amountWei" }, - "id": 357, + "id": 317, "name": "Identifier", - "src": "1907:5:3" + "src": "2075:9:2" } ], - "id": 358, + "id": 318, "name": "BinaryOperation", - "src": "1893:19:3" + "src": "2050:34:2" } ], - "id": 359, + "id": 319, "name": "FunctionCall", - "src": "1885:28:3" + "src": "2042:43:2" } ], - "id": 360, + "id": 320, "name": "ExpressionStatement", - "src": "1885:28:3" - }, - { - "attributes": { - "falseBody": null - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "<", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "balance", - "referencedDeclaration": null, - "type": "uint256" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "address", - "type_conversion": true - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1418", - "typeString": "contract ProofOfPhysicalAddress" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "type": "type(address)", - "value": "address" - }, - "id": 361, - "name": "ElementaryTypeNameExpression", - "src": "1927:7:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1447, - "type": "contract ProofOfPhysicalAddress", - "value": "this" - }, - "id": 362, - "name": "Identifier", - "src": "1935:4:3" - } - ], - "id": 363, - "name": "FunctionCall", - "src": "1927:13:3" - } - ], - "id": 364, - "name": "MemberAccess", - "src": "1927:21:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 351, - "type": "uint256", - "value": "amountWei" - }, - "id": 365, - "name": "Identifier", - "src": "1951:9:3" - } - ], - "id": 366, - "name": "BinaryOperation", - "src": "1927:33:3" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "arguments": [ - null - ], - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - null - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1434, - "type": "function () pure", - "value": "revert" - }, - "id": 367, - "name": "Identifier", - "src": "1962:6:3" - } - ], - "id": 368, - "name": "FunctionCall", - "src": "1962:8:3" - } - ], - "id": 369, - "name": "ExpressionStatement", - "src": "1962:8:3" - } - ], - "id": 370, - "name": "IfStatement", - "src": "1923:47:3" + "src": "2042:43:2" }, { "children": [ @@ -2883,18 +2909,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 218, + "referencedDeclaration": 161, "type": "address", "value": "owner" }, - "id": 371, + "id": 321, "name": "Identifier", - "src": "1980:5:3" + "src": "2095:5:2" } ], - "id": 373, + "id": 323, "name": "MemberAccess", - "src": "1980:14:3" + "src": "2095:14:2" }, { "attributes": { @@ -2902,45 +2928,42 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 351, + "referencedDeclaration": 307, "type": "uint256", "value": "amountWei" }, - "id": 374, + "id": 324, "name": "Identifier", - "src": "1995:9:3" + "src": "2110:9:2" } ], - "id": 375, + "id": 325, "name": "FunctionCall", - "src": "1980:25:3" + "src": "2095:25:2" } ], - "id": 376, + "id": 326, "name": "ExpressionStatement", - "src": "1980:25:3" + "src": "2095:25:2" } ], - "id": 377, + "id": 327, "name": "Block", - "src": "1875:137:3" + "src": "2032:95:2" } ], - "id": 378, + "id": 328, "name": "FunctionDefinition", - "src": "1819:193:3" + "src": "1966:161:2" }, { "attributes": { "constant": false, "implemented": true, "isConstructor": false, - "modifiers": [ - null - ], "name": "withdrawAll", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2953,9 +2976,9 @@ ] }, "children": [], - "id": 379, + "id": 329, "name": "ParameterList", - "src": "2072:2:3" + "src": "2187:2:2" }, { "attributes": { @@ -2964,9 +2987,35 @@ ] }, "children": [], - "id": 380, + "id": 332, "name": "ParameterList", - "src": "2090:0:3" + "src": "2215:0:2" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 232, + "type": "modifier ()", + "value": "onlyOwner" + }, + "id": 330, + "name": "Identifier", + "src": "2201:9:2" + } + ], + "id": 331, + "name": "ModifierInvocation", + "src": "2201:9:2" }, { "children": [ @@ -2998,26 +3047,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 381, + "id": 333, "name": "Identifier", - "src": "2100:7:3" + "src": "2225:7:2" }, { "attributes": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "operator": "==", + "operator": ">", "type": "bool" }, "children": [ @@ -3028,221 +3077,100 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "member_name": "sender", + "member_name": "balance", "referencedDeclaration": null, - "type": "address" + "type": "uint256" }, "children": [ { "attributes": { "argumentTypes": null, - "overloadedDeclarations": [ + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ null ], - "referencedDeclaration": 1430, - "type": "msg", - "value": "msg" + "type": "address", + "type_conversion": true }, - "id": 382, - "name": "Identifier", - "src": "2108:3:3" + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1314", + "typeString": "contract ProofOfPhysicalAddress" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 334, + "name": "ElementaryTypeNameExpression", + "src": "2233:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1341, + "type": "contract ProofOfPhysicalAddress", + "value": "this" + }, + "id": 335, + "name": "Identifier", + "src": "2241:4:2" + } + ], + "id": 336, + "name": "FunctionCall", + "src": "2233:13:2" } ], - "id": 383, + "id": 337, "name": "MemberAccess", - "src": "2108:10:3" + "src": "2233:21:2" }, { "attributes": { "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 218, - "type": "address", - "value": "owner" - }, - "id": 384, - "name": "Identifier", - "src": "2122:5:3" - } - ], - "id": 385, - "name": "BinaryOperation", - "src": "2108:19:3" - } - ], - "id": 386, - "name": "FunctionCall", - "src": "2100:28:3" - } - ], - "id": 387, - "name": "ExpressionStatement", - "src": "2100:28:3" - }, - { - "attributes": { - "falseBody": null - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "==", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "balance", - "referencedDeclaration": null, - "type": "uint256" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, + "hexvalue": "30", "isConstant": false, "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, + "isPure": true, "lValueRequested": false, - "names": [ - null - ], - "type": "address", - "type_conversion": true - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1418", - "typeString": "contract ProofOfPhysicalAddress" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "type": "type(address)", - "value": "address" - }, - "id": 388, - "name": "ElementaryTypeNameExpression", - "src": "2142:7:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1447, - "type": "contract ProofOfPhysicalAddress", - "value": "this" - }, - "id": 389, - "name": "Identifier", - "src": "2150:4:3" - } - ], - "id": 390, - "name": "FunctionCall", - "src": "2142:13:3" - } - ], - "id": 391, - "name": "MemberAccess", - "src": "2142:21:3" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "30", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 0", - "value": "0" - }, - "id": 392, - "name": "Literal", - "src": "2167:1:3" - } - ], - "id": 393, - "name": "BinaryOperation", - "src": "2142:26:3" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "arguments": [ - null - ], - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - null - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1434, - "type": "function () pure", - "value": "revert" + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" }, - "id": 394, - "name": "Identifier", - "src": "2170:6:3" + "id": 338, + "name": "Literal", + "src": "2257:1:2" } ], - "id": 395, - "name": "FunctionCall", - "src": "2170:8:3" + "id": 339, + "name": "BinaryOperation", + "src": "2233:25:2" } ], - "id": 396, - "name": "ExpressionStatement", - "src": "2170:8:3" + "id": 340, + "name": "FunctionCall", + "src": "2225:34:2" } ], - "id": 397, - "name": "IfStatement", - "src": "2138:40:3" + "id": 341, + "name": "ExpressionStatement", + "src": "2225:34:2" }, { "children": [ @@ -3284,18 +3212,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 218, + "referencedDeclaration": 161, "type": "address", "value": "owner" }, - "id": 398, + "id": 342, "name": "Identifier", - "src": "2188:5:3" + "src": "2269:5:2" } ], - "id": 400, + "id": 344, "name": "MemberAccess", - "src": "2188:14:3" + "src": "2269:14:2" }, { "attributes": { @@ -3328,7 +3256,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1418", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1314", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -3339,9 +3267,9 @@ "type": "type(address)", "value": "address" }, - "id": 401, + "id": 345, "name": "ElementaryTypeNameExpression", - "src": "2203:7:3" + "src": "2284:7:2" }, { "attributes": { @@ -3349,43 +3277,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1447, + "referencedDeclaration": 1341, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 402, + "id": 346, "name": "Identifier", - "src": "2211:4:3" + "src": "2292:4:2" } ], - "id": 403, + "id": 347, "name": "FunctionCall", - "src": "2203:13:3" + "src": "2284:13:2" } ], - "id": 404, + "id": 348, "name": "MemberAccess", - "src": "2203:21:3" + "src": "2284:21:2" } ], - "id": 405, + "id": 349, "name": "FunctionCall", - "src": "2188:37:3" + "src": "2269:37:2" } ], - "id": 406, + "id": 350, "name": "ExpressionStatement", - "src": "2188:37:3" + "src": "2269:37:2" } ], - "id": 407, + "id": 351, "name": "Block", - "src": "2090:142:3" + "src": "2215:98:2" } ], - "id": 408, + "id": 352, "name": "FunctionDefinition", - "src": "2052:180:3" + "src": "2167:146:2" }, { "attributes": { @@ -3397,7 +3325,7 @@ ], "name": "userExists", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -3409,7 +3337,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 424, + "scope": 368, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -3422,19 +3350,19 @@ "name": "address", "type": "address" }, - "id": 409, + "id": 353, "name": "ElementaryTypeName", - "src": "2258:7:3" + "src": "2339:7:2" } ], - "id": 410, + "id": 354, "name": "VariableDeclaration", - "src": "2258:14:3" + "src": "2339:14:2" } ], - "id": 411, + "id": 355, "name": "ParameterList", - "src": "2257:16:3" + "src": "2338:16:2" }, { "children": [ @@ -3442,7 +3370,7 @@ "attributes": { "constant": false, "name": "", - "scope": 424, + "scope": 368, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -3455,25 +3383,25 @@ "name": "bool", "type": "bool" }, - "id": 412, + "id": 356, "name": "ElementaryTypeName", - "src": "2303:4:3" + "src": "2384:4:2" } ], - "id": 413, + "id": 357, "name": "VariableDeclaration", - "src": "2303:4:3" + "src": "2384:4:2" } ], - "id": 414, + "id": 358, "name": "ParameterList", - "src": "2302:6:3" + "src": "2383:6:2" }, { "children": [ { "attributes": { - "functionReturnParameters": 414 + "functionReturnParameters": 358 }, "children": [ { @@ -3510,7 +3438,7 @@ "isPure": false, "lValueRequested": false, "member_name": "creationBlock", - "referencedDeclaration": 264, + "referencedDeclaration": 207, "type": "uint256" }, "children": [ @@ -3530,13 +3458,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 415, + "id": 359, "name": "Identifier", - "src": "2331:5:3" + "src": "2412:5:2" }, { "attributes": { @@ -3544,23 +3472,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 410, + "referencedDeclaration": 354, "type": "address", "value": "wallet" }, - "id": 416, + "id": 360, "name": "Identifier", - "src": "2337:6:3" + "src": "2418:6:2" } ], - "id": 417, + "id": 361, "name": "IndexAccess", - "src": "2331:13:3" + "src": "2412:13:2" } ], - "id": 418, + "id": 362, "name": "MemberAccess", - "src": "2331:27:3" + "src": "2412:27:2" }, { "attributes": { @@ -3575,46 +3503,43 @@ "type": "int_const 0", "value": "0" }, - "id": 419, + "id": 363, "name": "Literal", - "src": "2361:1:3" + "src": "2442:1:2" } ], - "id": 420, + "id": 364, "name": "BinaryOperation", - "src": "2331:31:3" + "src": "2412:31:2" } ], - "id": 421, + "id": 365, "name": "TupleExpression", - "src": "2330:33:3" + "src": "2411:33:2" } ], - "id": 422, + "id": 366, "name": "Return", - "src": "2323:40:3" + "src": "2404:40:2" } ], - "id": 423, + "id": 367, "name": "Block", - "src": "2313:57:3" + "src": "2394:57:2" } ], - "id": 424, + "id": 368, "name": "FunctionDefinition", - "src": "2238:132:3" + "src": "2319:132:2" }, { "attributes": { "constant": true, "implemented": true, "isConstructor": false, - "modifiers": [ - null - ], "name": "userAddressConfirmed", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -3626,7 +3551,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 471, + "scope": 412, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -3639,20 +3564,20 @@ "name": "address", "type": "address" }, - "id": 425, + "id": 369, "name": "ElementaryTypeName", - "src": "2406:7:3" + "src": "2487:7:2" } ], - "id": 426, + "id": 370, "name": "VariableDeclaration", - "src": "2406:14:3" + "src": "2487:14:2" }, { "attributes": { "constant": false, "name": "addressIndex", - "scope": 471, + "scope": 412, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -3665,19 +3590,19 @@ "name": "uint256", "type": "uint256" }, - "id": 427, + "id": 371, "name": "ElementaryTypeName", - "src": "2422:7:3" + "src": "2503:7:2" } ], - "id": 428, + "id": 372, "name": "VariableDeclaration", - "src": "2422:20:3" + "src": "2503:20:2" } ], - "id": 429, + "id": 373, "name": "ParameterList", - "src": "2405:38:3" + "src": "2486:38:2" }, { "children": [ @@ -3685,7 +3610,7 @@ "attributes": { "constant": false, "name": "", - "scope": 471, + "scope": 412, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -3698,174 +3623,110 @@ "name": "bool", "type": "bool" }, - "id": 430, + "id": 377, "name": "ElementaryTypeName", - "src": "2473:4:3" + "src": "2578:4:2" } ], - "id": 431, + "id": 378, "name": "VariableDeclaration", - "src": "2473:4:3" + "src": "2578:4:2" } ], - "id": 432, + "id": 379, "name": "ParameterList", - "src": "2472:6:3" + "src": "2577:6:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 244, + "type": "modifier (address)", + "value": "checkUserExists" + }, + "id": 374, + "name": "Identifier", + "src": "2545:15:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 370, + "type": "address", + "value": "wallet" + }, + "id": 375, + "name": "Identifier", + "src": "2561:6:2" + } + ], + "id": 376, + "name": "ModifierInvocation", + "src": "2545:23:2" }, { "children": [ { + "attributes": { + "assignments": [ + 381 + ] + }, "children": [ + { + "attributes": { + "constant": false, + "name": "keccakIdentifier", + "scope": 412, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 380, + "name": "ElementaryTypeName", + "src": "2598:7:2" + } + ], + "id": 381, + "name": "VariableDeclaration", + "src": "2598:24:2" + }, { "attributes": { "argumentTypes": null, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "isStructConstructorCall": false, "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false + "member_name": "keccakIdentifier", + "referencedDeclaration": 181, + "type": "bytes32" }, "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1433, - "type": "function (bool) pure", - "value": "require" - }, - "id": 433, - "name": "Identifier", - "src": "2493:7:3" - }, { "attributes": { "argumentTypes": null, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "isStructConstructorCall": false, "lValueRequested": false, - "names": [ - null - ], - "type": "bool", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 424, - "type": "function (address) view returns (bool)", - "value": "userExists" - }, - "id": 434, - "name": "Identifier", - "src": "2501:10:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 426, - "type": "address", - "value": "wallet" - }, - "id": 435, - "name": "Identifier", - "src": "2512:6:3" - } - ], - "id": 436, - "name": "FunctionCall", - "src": "2501:18:3" - } - ], - "id": 437, - "name": "FunctionCall", - "src": "2493:27:3" - } - ], - "id": 438, - "name": "ExpressionStatement", - "src": "2493:27:3" - }, - { - "attributes": { - "assignments": [ - 440 - ] - }, - "children": [ - { - "attributes": { - "constant": false, - "name": "keccakIdentifier", - "scope": 471, - "stateVariable": false, - "storageLocation": "default", - "type": "bytes32", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "bytes32", - "type": "bytes32" - }, - "id": 439, - "name": "ElementaryTypeName", - "src": "2530:7:3" - } - ], - "id": 440, - "name": "VariableDeclaration", - "src": "2530:24:3" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "member_name": "keccakIdentifier", - "referencedDeclaration": 238, - "type": "bytes32" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref" + "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref" }, "children": [ { @@ -3876,7 +3737,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -3896,13 +3757,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 441, + "id": 382, "name": "Identifier", - "src": "2557:5:3" + "src": "2625:5:2" }, { "attributes": { @@ -3910,23 +3771,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 426, + "referencedDeclaration": 370, "type": "address", "value": "wallet" }, - "id": 442, + "id": 383, "name": "Identifier", - "src": "2563:6:3" + "src": "2631:6:2" } ], - "id": 443, + "id": 384, "name": "IndexAccess", - "src": "2557:13:3" + "src": "2625:13:2" } ], - "id": 444, + "id": 385, "name": "MemberAccess", - "src": "2557:31:3" + "src": "2625:31:2" }, { "attributes": { @@ -3934,28 +3795,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 428, + "referencedDeclaration": 372, "type": "uint256", "value": "addressIndex" }, - "id": 445, + "id": 386, "name": "Identifier", - "src": "2589:12:3" + "src": "2657:12:2" } ], - "id": 446, + "id": 387, "name": "IndexAccess", - "src": "2557:45:3" + "src": "2625:45:2" } ], - "id": 447, + "id": 388, "name": "MemberAccess", - "src": "2557:62:3" + "src": "2625:62:2" } ], - "id": 448, + "id": 389, "name": "VariableDeclarationStatement", - "src": "2530:89:3" + "src": "2598:89:2" }, { "attributes": { @@ -3983,13 +3844,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 440, + "referencedDeclaration": 381, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 449, + "id": 390, "name": "Identifier", - "src": "2634:16:3" + "src": "2702:16:2" }, { "attributes": { @@ -4004,20 +3865,20 @@ "type": "int_const 0", "value": "0x0" }, - "id": 450, + "id": 391, "name": "Literal", - "src": "2654:3:3" + "src": "2722:3:2" } ], - "id": 451, + "id": 392, "name": "BinaryOperation", - "src": "2634:23:3" + "src": "2702:23:2" }, { "children": [ { "attributes": { - "functionReturnParameters": 432 + "functionReturnParameters": 379 }, "children": [ { @@ -4033,28 +3894,28 @@ "type": "bool", "value": "false" }, - "id": 452, + "id": 393, "name": "Literal", - "src": "2680:5:3" + "src": "2748:5:2" } ], - "id": 453, + "id": 394, "name": "Return", - "src": "2673:12:3" + "src": "2741:12:2" } ], - "id": 454, + "id": 395, "name": "Block", - "src": "2659:37:3" + "src": "2727:37:2" } ], - "id": 455, + "id": 396, "name": "IfStatement", - "src": "2630:66:3" + "src": "2698:66:2" }, { "attributes": { - "functionReturnParameters": 432 + "functionReturnParameters": 379 }, "children": [ { @@ -4100,7 +3961,7 @@ "isPure": false, "lValueRequested": false, "member_name": "decodeConfirmation", - "referencedDeclaration": 211, + "referencedDeclaration": 154, "type": "function (bytes32) pure returns (uint256)" }, "children": [ @@ -4110,18 +3971,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 212, + "referencedDeclaration": 155, "type": "type(library PhysicalAddressClaim)", "value": "PhysicalAddressClaim" }, - "id": 456, + "id": 397, "name": "Identifier", - "src": "2713:20:3" + "src": "2781:20:2" } ], - "id": 457, + "id": 398, "name": "MemberAccess", - "src": "2713:39:3" + "src": "2781:39:2" }, { "attributes": { @@ -4169,18 +4030,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 222, + "referencedDeclaration": 165, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 458, + "id": 399, "name": "Identifier", - "src": "2753:8:3" + "src": "2821:8:2" } ], - "id": 459, + "id": 400, "name": "MemberAccess", - "src": "2753:17:3" + "src": "2821:17:2" }, { "attributes": { @@ -4201,7 +4062,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1418", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1314", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -4212,9 +4073,9 @@ "type": "type(address)", "value": "address" }, - "id": 460, + "id": 401, "name": "ElementaryTypeNameExpression", - "src": "2771:7:3" + "src": "2839:7:2" }, { "attributes": { @@ -4222,18 +4083,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1447, + "referencedDeclaration": 1341, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 461, + "id": 402, "name": "Identifier", - "src": "2779:4:3" + "src": "2847:4:2" } ], - "id": 462, + "id": 403, "name": "FunctionCall", - "src": "2771:13:3" + "src": "2839:13:2" }, { "attributes": { @@ -4241,13 +4102,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 426, + "referencedDeclaration": 370, "type": "address", "value": "wallet" }, - "id": 463, + "id": 404, "name": "Identifier", - "src": "2786:6:3" + "src": "2854:6:2" }, { "attributes": { @@ -4255,23 +4116,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 440, + "referencedDeclaration": 381, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 464, + "id": 405, "name": "Identifier", - "src": "2794:16:3" + "src": "2862:16:2" } ], - "id": 465, + "id": 406, "name": "FunctionCall", - "src": "2753:58:3" + "src": "2821:58:2" } ], - "id": 466, + "id": 407, "name": "FunctionCall", - "src": "2713:99:3" + "src": "2781:99:2" }, { "attributes": { @@ -4286,41 +4147,38 @@ "type": "int_const 0", "value": "0" }, - "id": 467, + "id": 408, "name": "Literal", - "src": "2815:1:3" + "src": "2883:1:2" } ], - "id": 468, + "id": 409, "name": "BinaryOperation", - "src": "2713:103:3" + "src": "2781:103:2" } ], - "id": 469, + "id": 410, "name": "Return", - "src": "2706:110:3" + "src": "2774:110:2" } ], - "id": 470, + "id": 411, "name": "Block", - "src": "2483:340:3" + "src": "2588:303:2" } ], - "id": 471, + "id": 412, "name": "FunctionDefinition", - "src": "2376:447:3" + "src": "2457:434:2" }, { "attributes": { "constant": true, "implemented": true, "isConstructor": false, - "modifiers": [ - null - ], "name": "userAddressByCreationBlock", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -4332,7 +4190,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 532, + "scope": 469, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -4345,20 +4203,20 @@ "name": "address", "type": "address" }, - "id": 472, + "id": 413, "name": "ElementaryTypeName", - "src": "2954:7:3" + "src": "3022:7:2" } ], - "id": 473, + "id": 414, "name": "VariableDeclaration", - "src": "2954:14:3" + "src": "3022:14:2" }, { "attributes": { "constant": false, "name": "creationBlock", - "scope": 532, + "scope": 469, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4371,19 +4229,19 @@ "name": "uint256", "type": "uint256" }, - "id": 474, + "id": 415, "name": "ElementaryTypeName", - "src": "2970:7:3" + "src": "3038:7:2" } ], - "id": 475, + "id": 416, "name": "VariableDeclaration", - "src": "2970:21:3" + "src": "3038:21:2" } ], - "id": 476, + "id": 417, "name": "ParameterList", - "src": "2953:39:3" + "src": "3021:39:2" }, { "children": [ @@ -4391,7 +4249,7 @@ "attributes": { "constant": false, "name": "", - "scope": 532, + "scope": 469, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -4404,20 +4262,20 @@ "name": "bool", "type": "bool" }, - "id": 477, + "id": 421, "name": "ElementaryTypeName", - "src": "3022:4:3" + "src": "3114:4:2" } ], - "id": 478, + "id": 422, "name": "VariableDeclaration", - "src": "3022:4:3" + "src": "3114:4:2" }, { "attributes": { "constant": false, "name": "", - "scope": 532, + "scope": 469, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4430,20 +4288,20 @@ "name": "uint256", "type": "uint256" }, - "id": 479, + "id": 423, "name": "ElementaryTypeName", - "src": "3028:7:3" + "src": "3120:7:2" } ], - "id": 480, + "id": 424, "name": "VariableDeclaration", - "src": "3028:7:3" + "src": "3120:7:2" }, { "attributes": { "constant": false, "name": "", - "scope": 532, + "scope": 469, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -4456,127 +4314,63 @@ "name": "bool", "type": "bool" }, - "id": 481, + "id": 425, "name": "ElementaryTypeName", - "src": "3037:4:3" + "src": "3129:4:2" } ], - "id": 482, + "id": 426, "name": "VariableDeclaration", - "src": "3037:4:3" + "src": "3129:4:2" } ], - "id": 483, + "id": 427, "name": "ParameterList", - "src": "3021:21:3" + "src": "3113:21:2" }, { "children": [ { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1433, - "type": "function (bool) pure", - "value": "require" - }, - "id": 484, - "name": "Identifier", - "src": "3057:7:3" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "bool", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 424, - "type": "function (address) view returns (bool)", - "value": "userExists" - }, - "id": 485, - "name": "Identifier", - "src": "3065:10:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 473, - "type": "address", - "value": "wallet" - }, - "id": 486, - "name": "Identifier", - "src": "3076:6:3" - } - ], - "id": 487, - "name": "FunctionCall", - "src": "3065:18:3" - } - ], - "id": 488, - "name": "FunctionCall", - "src": "3057:27:3" - } - ], - "id": 489, - "name": "ExpressionStatement", - "src": "3057:27:3" + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 244, + "type": "modifier (address)", + "value": "checkUserExists" + }, + "id": 418, + "name": "Identifier", + "src": "3081:15:2" }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 414, + "type": "address", + "value": "wallet" + }, + "id": 419, + "name": "Identifier", + "src": "3097:6:2" + } + ], + "id": 420, + "name": "ModifierInvocation", + "src": "3081:23:2" + }, + { + "children": [ { "children": [ { "attributes": { "assignments": [ - 491 + 429 ] }, "children": [ @@ -4584,7 +4378,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 532, + "scope": 469, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4597,14 +4391,14 @@ "name": "uint256", "type": "uint256" }, - "id": 490, + "id": 428, "name": "ElementaryTypeName", - "src": "3099:7:3" + "src": "3154:7:2" } ], - "id": 491, + "id": 429, "name": "VariableDeclaration", - "src": "3099:10:3" + "src": "3154:10:2" }, { "attributes": { @@ -4619,14 +4413,14 @@ "type": "int_const 0", "value": "0" }, - "id": 492, + "id": 430, "name": "Literal", - "src": "3112:1:3" + "src": "3167:1:2" } ], - "id": 493, + "id": 431, "name": "VariableDeclarationStatement", - "src": "3099:14:3" + "src": "3154:14:2" }, { "attributes": { @@ -4649,13 +4443,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 491, + "referencedDeclaration": 429, "type": "uint256", "value": "ai" }, - "id": 494, + "id": 432, "name": "Identifier", - "src": "3115:2:3" + "src": "3170:2:2" }, { "attributes": { @@ -4677,7 +4471,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -4697,13 +4491,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 495, + "id": 433, "name": "Identifier", - "src": "3120:5:3" + "src": "3175:5:2" }, { "attributes": { @@ -4711,33 +4505,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 473, + "referencedDeclaration": 414, "type": "address", "value": "wallet" }, - "id": 496, + "id": 434, "name": "Identifier", - "src": "3126:6:3" + "src": "3181:6:2" } ], - "id": 497, + "id": 435, "name": "IndexAccess", - "src": "3120:13:3" + "src": "3175:13:2" } ], - "id": 498, + "id": 436, "name": "MemberAccess", - "src": "3120:31:3" + "src": "3175:31:2" } ], - "id": 499, + "id": 437, "name": "MemberAccess", - "src": "3120:38:3" + "src": "3175:38:2" } ], - "id": 500, + "id": 438, "name": "BinaryOperation", - "src": "3115:43:3" + "src": "3170:43:2" }, { "children": [ @@ -4748,7 +4542,8 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "operator": "+=", + "operator": "++", + "prefix": false, "type": "uint256" }, "children": [ @@ -4758,40 +4553,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 491, + "referencedDeclaration": 429, "type": "uint256", "value": "ai" }, - "id": 501, + "id": 439, "name": "Identifier", - "src": "3160:2:3" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "31", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 1", - "value": "1" - }, - "id": 502, - "name": "Literal", - "src": "3166:1:3" + "src": "3215:2:2" } ], - "id": 503, - "name": "Assignment", - "src": "3160:7:3" + "id": 440, + "name": "UnaryOperation", + "src": "3215:4:2" } ], - "id": 504, + "id": 441, "name": "ExpressionStatement", - "src": "3160:7:3" + "src": "3215:4:2" }, { "children": [ @@ -4823,7 +4601,7 @@ "isPure": false, "lValueRequested": false, "member_name": "creationBlock", - "referencedDeclaration": 236, + "referencedDeclaration": 179, "type": "uint256" }, "children": [ @@ -4845,7 +4623,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -4865,13 +4643,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 505, + "id": 442, "name": "Identifier", - "src": "3187:5:3" + "src": "3239:5:2" }, { "attributes": { @@ -4879,23 +4657,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 473, + "referencedDeclaration": 414, "type": "address", "value": "wallet" }, - "id": 506, + "id": 443, "name": "Identifier", - "src": "3193:6:3" + "src": "3245:6:2" } ], - "id": 507, + "id": 444, "name": "IndexAccess", - "src": "3187:13:3" + "src": "3239:13:2" } ], - "id": 508, + "id": 445, "name": "MemberAccess", - "src": "3187:31:3" + "src": "3239:31:2" }, { "attributes": { @@ -4903,23 +4681,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 491, + "referencedDeclaration": 429, "type": "uint256", "value": "ai" }, - "id": 509, + "id": 446, "name": "Identifier", - "src": "3219:2:3" + "src": "3271:2:2" } ], - "id": 510, + "id": 447, "name": "IndexAccess", - "src": "3187:35:3" + "src": "3239:35:2" } ], - "id": 511, + "id": 448, "name": "MemberAccess", - "src": "3187:49:3" + "src": "3239:49:2" }, { "attributes": { @@ -4927,24 +4705,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 475, + "referencedDeclaration": 416, "type": "uint256", "value": "creationBlock" }, - "id": 512, + "id": 449, "name": "Identifier", - "src": "3240:13:3" + "src": "3292:13:2" } ], - "id": 513, + "id": 450, "name": "BinaryOperation", - "src": "3187:66:3" + "src": "3239:66:2" }, { "children": [ { "attributes": { - "functionReturnParameters": 483 + "functionReturnParameters": 427 }, "children": [ { @@ -4971,9 +4749,9 @@ "type": "bool", "value": "true" }, - "id": 514, + "id": 451, "name": "Literal", - "src": "3281:4:3" + "src": "3333:4:2" }, { "attributes": { @@ -4981,13 +4759,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 491, + "referencedDeclaration": 429, "type": "uint256", "value": "ai" }, - "id": 515, + "id": 452, "name": "Identifier", - "src": "3287:2:3" + "src": "3339:2:2" }, { "attributes": { @@ -5019,13 +4797,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 471, + "referencedDeclaration": 412, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 516, + "id": 453, "name": "Identifier", - "src": "3291:20:3" + "src": "3343:20:2" }, { "attributes": { @@ -5033,13 +4811,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 473, + "referencedDeclaration": 414, "type": "address", "value": "wallet" }, - "id": 517, + "id": 454, "name": "Identifier", - "src": "3312:6:3" + "src": "3364:6:2" }, { "attributes": { @@ -5047,52 +4825,52 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 491, + "referencedDeclaration": 429, "type": "uint256", "value": "ai" }, - "id": 518, + "id": 455, "name": "Identifier", - "src": "3320:2:3" + "src": "3372:2:2" } ], - "id": 519, + "id": 456, "name": "FunctionCall", - "src": "3291:32:3" + "src": "3343:32:2" } ], - "id": 520, + "id": 457, "name": "TupleExpression", - "src": "3280:44:3" + "src": "3332:44:2" } ], - "id": 521, + "id": 458, "name": "Return", - "src": "3273:51:3" + "src": "3325:51:2" } ], - "id": 522, + "id": 459, "name": "Block", - "src": "3255:84:3" + "src": "3307:84:2" } ], - "id": 523, + "id": 460, "name": "IfStatement", - "src": "3183:156:3" + "src": "3235:156:2" } ], - "id": 524, + "id": 461, "name": "Block", - "src": "3169:180:3" + "src": "3221:180:2" } ], - "id": 525, + "id": 462, "name": "ForStatement", - "src": "3094:255:3" + "src": "3149:252:2" }, { "attributes": { - "functionReturnParameters": 483 + "functionReturnParameters": 427 }, "children": [ { @@ -5119,9 +4897,9 @@ "type": "bool", "value": "false" }, - "id": 526, + "id": 463, "name": "Literal", - "src": "3366:5:3" + "src": "3418:5:2" }, { "attributes": { @@ -5136,9 +4914,9 @@ "type": "int_const 0", "value": "0" }, - "id": 527, + "id": 464, "name": "Literal", - "src": "3373:1:3" + "src": "3425:1:2" }, { "attributes": { @@ -5153,41 +4931,38 @@ "type": "bool", "value": "false" }, - "id": 528, + "id": 465, "name": "Literal", - "src": "3376:5:3" + "src": "3428:5:2" } ], - "id": 529, + "id": 466, "name": "TupleExpression", - "src": "3365:17:3" + "src": "3417:17:2" } ], - "id": 530, + "id": 467, "name": "Return", - "src": "3358:24:3" + "src": "3410:24:2" } ], - "id": 531, + "id": 468, "name": "Block", - "src": "3047:342:3" + "src": "3139:302:2" } ], - "id": 532, + "id": 469, "name": "FunctionDefinition", - "src": "2918:471:3" + "src": "2986:455:2" }, { "attributes": { "constant": true, "implemented": true, "isConstructor": false, - "modifiers": [ - null - ], "name": "userAddressByConfirmationCode", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -5199,7 +4974,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 603, + "scope": 536, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -5212,20 +4987,20 @@ "name": "address", "type": "address" }, - "id": 533, + "id": 470, "name": "ElementaryTypeName", - "src": "3532:7:3" + "src": "3584:7:2" } ], - "id": 534, + "id": 471, "name": "VariableDeclaration", - "src": "3532:14:3" + "src": "3584:14:2" }, { "attributes": { "constant": false, "name": "confirmationCodeSha3", - "scope": 603, + "scope": 536, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -5238,19 +5013,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 535, + "id": 472, "name": "ElementaryTypeName", - "src": "3556:7:3" + "src": "3608:7:2" } ], - "id": 536, + "id": 473, "name": "VariableDeclaration", - "src": "3556:28:3" + "src": "3608:28:2" } ], - "id": 537, + "id": 474, "name": "ParameterList", - "src": "3522:68:3" + "src": "3574:68:2" }, { "children": [ @@ -5258,7 +5033,7 @@ "attributes": { "constant": false, "name": "", - "scope": 603, + "scope": 536, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -5271,20 +5046,20 @@ "name": "bool", "type": "bool" }, - "id": 538, + "id": 478, "name": "ElementaryTypeName", - "src": "3639:4:3" + "src": "3723:4:2" } ], - "id": 539, + "id": 479, "name": "VariableDeclaration", - "src": "3639:4:3" + "src": "3723:4:2" }, { "attributes": { "constant": false, "name": "", - "scope": 603, + "scope": 536, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -5297,20 +5072,20 @@ "name": "uint256", "type": "uint256" }, - "id": 540, + "id": 480, "name": "ElementaryTypeName", - "src": "3645:7:3" + "src": "3729:7:2" } ], - "id": 541, + "id": 481, "name": "VariableDeclaration", - "src": "3645:7:3" + "src": "3729:7:2" }, { "attributes": { "constant": false, "name": "", - "scope": 603, + "scope": 536, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -5323,20 +5098,20 @@ "name": "bool", "type": "bool" }, - "id": 542, + "id": 482, "name": "ElementaryTypeName", - "src": "3654:4:3" + "src": "3738:4:2" } ], - "id": 543, + "id": 483, "name": "VariableDeclaration", - "src": "3654:4:3" + "src": "3738:4:2" }, { "attributes": { "constant": false, "name": "", - "scope": 603, + "scope": 536, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -5349,19 +5124,54 @@ "name": "bytes32", "type": "bytes32" }, - "id": 544, + "id": 484, "name": "ElementaryTypeName", - "src": "3660:7:3" + "src": "3744:7:2" } ], - "id": 545, + "id": 485, "name": "VariableDeclaration", - "src": "3660:7:3" + "src": "3744:7:2" } ], - "id": 546, + "id": 486, "name": "ParameterList", - "src": "3638:30:3" + "src": "3722:30:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 244, + "type": "modifier (address)", + "value": "checkUserExists" + }, + "id": 475, + "name": "Identifier", + "src": "3683:15:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 471, + "type": "address", + "value": "wallet" + }, + "id": 476, + "name": "Identifier", + "src": "3699:6:2" + } + ], + "id": 477, + "name": "ModifierInvocation", + "src": "3683:23:2" }, { "children": [ @@ -5369,115 +5179,16 @@ "children": [ { "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1433, - "type": "function (bool) pure", - "value": "require" - }, - "id": 547, - "name": "Identifier", - "src": "3683:7:3" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "bool", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 424, - "type": "function (address) view returns (bool)", - "value": "userExists" - }, - "id": 548, - "name": "Identifier", - "src": "3691:10:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 534, - "type": "address", - "value": "wallet" - }, - "id": 549, - "name": "Identifier", - "src": "3702:6:3" - } - ], - "id": 550, - "name": "FunctionCall", - "src": "3691:18:3" - } - ], - "id": 551, - "name": "FunctionCall", - "src": "3683:27:3" - } - ], - "id": 552, - "name": "ExpressionStatement", - "src": "3683:27:3" - }, - { - "children": [ - { - "attributes": { - "assignments": [ - 554 - ] + "assignments": [ + 488 + ] }, "children": [ { "attributes": { "constant": false, "name": "ai", - "scope": 603, + "scope": 536, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -5490,14 +5201,14 @@ "name": "uint256", "type": "uint256" }, - "id": 553, + "id": 487, "name": "ElementaryTypeName", - "src": "3725:7:3" + "src": "3772:7:2" } ], - "id": 554, + "id": 488, "name": "VariableDeclaration", - "src": "3725:10:3" + "src": "3772:10:2" }, { "attributes": { @@ -5512,14 +5223,14 @@ "type": "int_const 0", "value": "0" }, - "id": 555, + "id": 489, "name": "Literal", - "src": "3738:1:3" + "src": "3785:1:2" } ], - "id": 556, + "id": 490, "name": "VariableDeclarationStatement", - "src": "3725:14:3" + "src": "3772:14:2" }, { "attributes": { @@ -5542,13 +5253,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 554, + "referencedDeclaration": 488, "type": "uint256", "value": "ai" }, - "id": 557, + "id": 491, "name": "Identifier", - "src": "3741:2:3" + "src": "3788:2:2" }, { "attributes": { @@ -5570,7 +5281,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -5590,13 +5301,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 558, + "id": 492, "name": "Identifier", - "src": "3746:5:3" + "src": "3793:5:2" }, { "attributes": { @@ -5604,33 +5315,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 534, + "referencedDeclaration": 471, "type": "address", "value": "wallet" }, - "id": 559, + "id": 493, "name": "Identifier", - "src": "3752:6:3" + "src": "3799:6:2" } ], - "id": 560, + "id": 494, "name": "IndexAccess", - "src": "3746:13:3" + "src": "3793:13:2" } ], - "id": 561, + "id": 495, "name": "MemberAccess", - "src": "3746:31:3" + "src": "3793:31:2" } ], - "id": 562, + "id": 496, "name": "MemberAccess", - "src": "3746:38:3" + "src": "3793:38:2" } ], - "id": 563, + "id": 497, "name": "BinaryOperation", - "src": "3741:43:3" + "src": "3788:43:2" }, { "children": [ @@ -5641,7 +5352,8 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "operator": "+=", + "operator": "++", + "prefix": false, "type": "uint256" }, "children": [ @@ -5651,40 +5363,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 554, + "referencedDeclaration": 488, "type": "uint256", "value": "ai" }, - "id": 564, + "id": 498, "name": "Identifier", - "src": "3786:2:3" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "31", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 1", - "value": "1" - }, - "id": 565, - "name": "Literal", - "src": "3792:1:3" + "src": "3833:2:2" } ], - "id": 566, - "name": "Assignment", - "src": "3786:7:3" + "id": 499, + "name": "UnaryOperation", + "src": "3833:4:2" } ], - "id": 567, + "id": 500, "name": "ExpressionStatement", - "src": "3786:7:3" + "src": "3833:4:2" }, { "children": [ @@ -5716,7 +5411,7 @@ "isPure": false, "lValueRequested": false, "member_name": "confirmationCodeSha3", - "referencedDeclaration": 240, + "referencedDeclaration": 183, "type": "bytes32" }, "children": [ @@ -5738,7 +5433,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -5758,13 +5453,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 568, + "id": 501, "name": "Identifier", - "src": "3813:5:3" + "src": "3857:5:2" }, { "attributes": { @@ -5772,23 +5467,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 534, + "referencedDeclaration": 471, "type": "address", "value": "wallet" }, - "id": 569, + "id": 502, "name": "Identifier", - "src": "3819:6:3" + "src": "3863:6:2" } ], - "id": 570, + "id": 503, "name": "IndexAccess", - "src": "3813:13:3" + "src": "3857:13:2" } ], - "id": 571, + "id": 504, "name": "MemberAccess", - "src": "3813:31:3" + "src": "3857:31:2" }, { "attributes": { @@ -5796,23 +5491,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 554, + "referencedDeclaration": 488, "type": "uint256", "value": "ai" }, - "id": 572, + "id": 505, "name": "Identifier", - "src": "3845:2:3" + "src": "3889:2:2" } ], - "id": 573, + "id": 506, "name": "IndexAccess", - "src": "3813:35:3" + "src": "3857:35:2" } ], - "id": 574, + "id": 507, "name": "MemberAccess", - "src": "3813:56:3" + "src": "3857:56:2" }, { "attributes": { @@ -5820,24 +5515,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 536, + "referencedDeclaration": 473, "type": "bytes32", "value": "confirmationCodeSha3" }, - "id": 575, + "id": 508, "name": "Identifier", - "src": "3873:20:3" + "src": "3917:20:2" } ], - "id": 576, + "id": 509, "name": "BinaryOperation", - "src": "3813:80:3" + "src": "3857:80:2" }, { "children": [ { "attributes": { - "functionReturnParameters": 546 + "functionReturnParameters": 486 }, "children": [ { @@ -5864,9 +5559,9 @@ "type": "bool", "value": "true" }, - "id": 577, + "id": 510, "name": "Literal", - "src": "3942:4:3" + "src": "3986:4:2" }, { "attributes": { @@ -5874,13 +5569,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 554, + "referencedDeclaration": 488, "type": "uint256", "value": "ai" }, - "id": 578, + "id": 511, "name": "Identifier", - "src": "3968:2:3" + "src": "4012:2:2" }, { "attributes": { @@ -5912,13 +5607,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 471, + "referencedDeclaration": 412, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 579, + "id": 512, "name": "Identifier", - "src": "3992:20:3" + "src": "4036:20:2" }, { "attributes": { @@ -5926,13 +5621,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 534, + "referencedDeclaration": 471, "type": "address", "value": "wallet" }, - "id": 580, + "id": 513, "name": "Identifier", - "src": "4013:6:3" + "src": "4057:6:2" }, { "attributes": { @@ -5940,18 +5635,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 554, + "referencedDeclaration": 488, "type": "uint256", "value": "ai" }, - "id": 581, + "id": 514, "name": "Identifier", - "src": "4021:2:3" + "src": "4065:2:2" } ], - "id": 582, + "id": 515, "name": "FunctionCall", - "src": "3992:32:3" + "src": "4036:32:2" }, { "attributes": { @@ -5961,7 +5656,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 238, + "referencedDeclaration": 181, "type": "bytes32" }, "children": [ @@ -5983,7 +5678,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -6003,13 +5698,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 583, + "id": 516, "name": "Identifier", - "src": "4046:5:3" + "src": "4090:5:2" }, { "attributes": { @@ -6017,23 +5712,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 534, + "referencedDeclaration": 471, "type": "address", "value": "wallet" }, - "id": 584, + "id": 517, "name": "Identifier", - "src": "4052:6:3" + "src": "4096:6:2" } ], - "id": 585, + "id": 518, "name": "IndexAccess", - "src": "4046:13:3" + "src": "4090:13:2" } ], - "id": 586, + "id": 519, "name": "MemberAccess", - "src": "4046:31:3" + "src": "4090:31:2" }, { "attributes": { @@ -6041,57 +5736,57 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 554, + "referencedDeclaration": 488, "type": "uint256", "value": "ai" }, - "id": 587, + "id": 520, "name": "Identifier", - "src": "4078:2:3" + "src": "4122:2:2" } ], - "id": 588, + "id": 521, "name": "IndexAccess", - "src": "4046:35:3" + "src": "4090:35:2" } ], - "id": 589, + "id": 522, "name": "MemberAccess", - "src": "4046:52:3" + "src": "4090:52:2" } ], - "id": 590, + "id": 523, "name": "TupleExpression", - "src": "3920:196:3" + "src": "3964:196:2" } ], - "id": 591, + "id": 524, "name": "Return", - "src": "3913:203:3" + "src": "3957:203:2" } ], - "id": 592, + "id": 525, "name": "Block", - "src": "3895:236:3" + "src": "3939:236:2" } ], - "id": 593, + "id": 526, "name": "IfStatement", - "src": "3809:322:3" + "src": "3853:322:2" } ], - "id": 594, + "id": 527, "name": "Block", - "src": "3795:346:3" + "src": "3839:346:2" } ], - "id": 595, + "id": 528, "name": "ForStatement", - "src": "3720:421:3" + "src": "3767:418:2" }, { "attributes": { - "functionReturnParameters": 546 + "functionReturnParameters": 486 }, "children": [ { @@ -6118,9 +5813,9 @@ "type": "bool", "value": "false" }, - "id": 596, + "id": 529, "name": "Literal", - "src": "4158:5:3" + "src": "4202:5:2" }, { "attributes": { @@ -6135,9 +5830,9 @@ "type": "int_const 0", "value": "0" }, - "id": 597, + "id": 530, "name": "Literal", - "src": "4165:1:3" + "src": "4209:1:2" }, { "attributes": { @@ -6152,9 +5847,9 @@ "type": "bool", "value": "false" }, - "id": 598, + "id": 531, "name": "Literal", - "src": "4168:5:3" + "src": "4212:5:2" }, { "attributes": { @@ -6169,41 +5864,38 @@ "type": "int_const 0", "value": "0x0" }, - "id": 599, + "id": 532, "name": "Literal", - "src": "4175:3:3" + "src": "4219:3:2" } ], - "id": 600, + "id": 533, "name": "TupleExpression", - "src": "4157:22:3" + "src": "4201:22:2" } ], - "id": 601, + "id": 534, "name": "Return", - "src": "4150:29:3" + "src": "4194:29:2" } ], - "id": 602, + "id": 535, "name": "Block", - "src": "3673:513:3" + "src": "3757:473:2" } ], - "id": 603, + "id": 536, "name": "FunctionDefinition", - "src": "3484:702:3" + "src": "3536:694:2" }, { "attributes": { "constant": true, "implemented": true, "isConstructor": false, - "modifiers": [ - null - ], "name": "userAddressByAddress", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -6215,7 +5907,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 682, + "scope": 611, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -6228,20 +5920,20 @@ "name": "address", "type": "address" }, - "id": 604, + "id": 537, "name": "ElementaryTypeName", - "src": "4311:7:3" + "src": "4355:7:2" } ], - "id": 605, + "id": 538, "name": "VariableDeclaration", - "src": "4311:14:3" + "src": "4355:14:2" }, { "attributes": { "constant": false, "name": "country", - "scope": 682, + "scope": 611, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -6254,20 +5946,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 606, + "id": 539, "name": "ElementaryTypeName", - "src": "4327:6:3" + "src": "4371:6:2" } ], - "id": 607, + "id": 540, "name": "VariableDeclaration", - "src": "4327:14:3" + "src": "4371:14:2" }, { "attributes": { "constant": false, "name": "state", - "scope": 682, + "scope": 611, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -6280,20 +5972,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 608, + "id": 541, "name": "ElementaryTypeName", - "src": "4343:6:3" + "src": "4387:6:2" } ], - "id": 609, + "id": 542, "name": "VariableDeclaration", - "src": "4343:12:3" + "src": "4387:12:2" }, { "attributes": { "constant": false, "name": "city", - "scope": 682, + "scope": 611, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -6306,20 +5998,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 610, + "id": 543, "name": "ElementaryTypeName", - "src": "4357:6:3" + "src": "4401:6:2" } ], - "id": 611, + "id": 544, "name": "VariableDeclaration", - "src": "4357:11:3" + "src": "4401:11:2" }, { "attributes": { "constant": false, "name": "location", - "scope": 682, + "scope": 611, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -6332,20 +6024,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 612, + "id": 545, "name": "ElementaryTypeName", - "src": "4370:6:3" + "src": "4414:6:2" } ], - "id": 613, + "id": 546, "name": "VariableDeclaration", - "src": "4370:15:3" + "src": "4414:15:2" }, { "attributes": { "constant": false, "name": "zip", - "scope": 682, + "scope": 611, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -6358,19 +6050,19 @@ "name": "string", "type": "string storage pointer" }, - "id": 614, + "id": 547, "name": "ElementaryTypeName", - "src": "4387:6:3" + "src": "4431:6:2" } ], - "id": 615, + "id": 548, "name": "VariableDeclaration", - "src": "4387:10:3" + "src": "4431:10:2" } ], - "id": 616, + "id": 549, "name": "ParameterList", - "src": "4310:88:3" + "src": "4354:88:2" }, { "children": [ @@ -6378,7 +6070,7 @@ "attributes": { "constant": false, "name": "", - "scope": 682, + "scope": 611, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -6391,20 +6083,20 @@ "name": "bool", "type": "bool" }, - "id": 617, + "id": 553, "name": "ElementaryTypeName", - "src": "4427:4:3" + "src": "4495:4:2" } ], - "id": 618, + "id": 554, "name": "VariableDeclaration", - "src": "4427:4:3" + "src": "4495:4:2" }, { "attributes": { "constant": false, "name": "", - "scope": 682, + "scope": 611, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -6417,20 +6109,20 @@ "name": "uint256", "type": "uint256" }, - "id": 619, + "id": 555, "name": "ElementaryTypeName", - "src": "4433:7:3" + "src": "4501:7:2" } ], - "id": 620, + "id": 556, "name": "VariableDeclaration", - "src": "4433:7:3" + "src": "4501:7:2" }, { "attributes": { "constant": false, "name": "", - "scope": 682, + "scope": 611, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -6443,125 +6135,61 @@ "name": "bool", "type": "bool" }, - "id": 621, + "id": 557, "name": "ElementaryTypeName", - "src": "4442:4:3" + "src": "4510:4:2" } ], - "id": 622, + "id": 558, "name": "VariableDeclaration", - "src": "4442:4:3" + "src": "4510:4:2" } ], - "id": 623, + "id": 559, "name": "ParameterList", - "src": "4426:21:3" + "src": "4494:21:2" }, { "children": [ { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1433, - "type": "function (bool) pure", - "value": "require" - }, - "id": 624, - "name": "Identifier", - "src": "4462:7:3" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "bool", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 424, - "type": "function (address) view returns (bool)", - "value": "userExists" - }, - "id": 625, - "name": "Identifier", - "src": "4470:10:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 605, - "type": "address", - "value": "wallet" - }, - "id": 626, - "name": "Identifier", - "src": "4481:6:3" - } - ], - "id": 627, - "name": "FunctionCall", - "src": "4470:18:3" - } - ], - "id": 628, - "name": "FunctionCall", - "src": "4462:27:3" - } - ], - "id": 629, - "name": "ExpressionStatement", - "src": "4462:27:3" + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 244, + "type": "modifier (address)", + "value": "checkUserExists" + }, + "id": 550, + "name": "Identifier", + "src": "4463:15:2" }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 538, + "type": "address", + "value": "wallet" + }, + "id": 551, + "name": "Identifier", + "src": "4479:6:2" + } + ], + "id": 552, + "name": "ModifierInvocation", + "src": "4463:23:2" + }, + { + "children": [ { "attributes": { "assignments": [ - 631 + 561 ] }, "children": [ @@ -6569,7 +6197,7 @@ "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 682, + "scope": 611, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -6582,14 +6210,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 630, + "id": 560, "name": "ElementaryTypeName", - "src": "4499:7:3" + "src": "4530:7:2" } ], - "id": 631, + "id": 561, "name": "VariableDeclaration", - "src": "4499:24:3" + "src": "4530:24:2" }, { "attributes": { @@ -6633,13 +6261,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1424, + "referencedDeclaration": 1320, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 632, + "id": 562, "name": "Identifier", - "src": "4526:9:3" + "src": "4557:9:2" }, { "attributes": { @@ -6647,13 +6275,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 607, + "referencedDeclaration": 540, "type": "string memory", "value": "country" }, - "id": 633, + "id": 563, "name": "Identifier", - "src": "4536:7:3" + "src": "4567:7:2" }, { "attributes": { @@ -6661,13 +6289,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 609, + "referencedDeclaration": 542, "type": "string memory", "value": "state" }, - "id": 634, + "id": 564, "name": "Identifier", - "src": "4545:5:3" + "src": "4576:5:2" }, { "attributes": { @@ -6675,13 +6303,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 611, + "referencedDeclaration": 544, "type": "string memory", "value": "city" }, - "id": 635, + "id": 565, "name": "Identifier", - "src": "4552:4:3" + "src": "4583:4:2" }, { "attributes": { @@ -6689,13 +6317,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 613, + "referencedDeclaration": 546, "type": "string memory", "value": "location" }, - "id": 636, + "id": 566, "name": "Identifier", - "src": "4558:8:3" + "src": "4589:8:2" }, { "attributes": { @@ -6703,30 +6331,30 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 615, + "referencedDeclaration": 548, "type": "string memory", "value": "zip" }, - "id": 637, + "id": 567, "name": "Identifier", - "src": "4568:3:3" + "src": "4599:3:2" } ], - "id": 638, + "id": 568, "name": "FunctionCall", - "src": "4526:46:3" + "src": "4557:46:2" } ], - "id": 639, + "id": 569, "name": "VariableDeclarationStatement", - "src": "4499:73:3" + "src": "4530:73:2" }, { "children": [ { "attributes": { "assignments": [ - 641 + 571 ] }, "children": [ @@ -6734,7 +6362,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 682, + "scope": 611, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -6747,14 +6375,14 @@ "name": "uint256", "type": "uint256" }, - "id": 640, + "id": 570, "name": "ElementaryTypeName", - "src": "4587:7:3" + "src": "4618:7:2" } ], - "id": 641, + "id": 571, "name": "VariableDeclaration", - "src": "4587:10:3" + "src": "4618:10:2" }, { "attributes": { @@ -6769,14 +6397,14 @@ "type": "int_const 0", "value": "0" }, - "id": 642, + "id": 572, "name": "Literal", - "src": "4600:1:3" + "src": "4631:1:2" } ], - "id": 643, + "id": 573, "name": "VariableDeclarationStatement", - "src": "4587:14:3" + "src": "4618:14:2" }, { "attributes": { @@ -6799,13 +6427,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 641, + "referencedDeclaration": 571, "type": "uint256", "value": "ai" }, - "id": 644, + "id": 574, "name": "Identifier", - "src": "4603:2:3" + "src": "4634:2:2" }, { "attributes": { @@ -6827,7 +6455,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -6847,13 +6475,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 645, + "id": 575, "name": "Identifier", - "src": "4608:5:3" + "src": "4639:5:2" }, { "attributes": { @@ -6861,33 +6489,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 605, + "referencedDeclaration": 538, "type": "address", "value": "wallet" }, - "id": 646, + "id": 576, "name": "Identifier", - "src": "4614:6:3" + "src": "4645:6:2" } ], - "id": 647, + "id": 577, "name": "IndexAccess", - "src": "4608:13:3" + "src": "4639:13:2" } ], - "id": 648, + "id": 578, "name": "MemberAccess", - "src": "4608:31:3" + "src": "4639:31:2" } ], - "id": 649, + "id": 579, "name": "MemberAccess", - "src": "4608:38:3" + "src": "4639:38:2" } ], - "id": 650, + "id": 580, "name": "BinaryOperation", - "src": "4603:43:3" + "src": "4634:43:2" }, { "children": [ @@ -6898,7 +6526,8 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "operator": "+=", + "operator": "++", + "prefix": false, "type": "uint256" }, "children": [ @@ -6908,40 +6537,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 641, + "referencedDeclaration": 571, "type": "uint256", "value": "ai" }, - "id": 651, + "id": 581, "name": "Identifier", - "src": "4648:2:3" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "31", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 1", - "value": "1" - }, - "id": 652, - "name": "Literal", - "src": "4654:1:3" + "src": "4679:2:2" } ], - "id": 653, - "name": "Assignment", - "src": "4648:7:3" + "id": 582, + "name": "UnaryOperation", + "src": "4679:4:2" } ], - "id": 654, + "id": 583, "name": "ExpressionStatement", - "src": "4648:7:3" + "src": "4679:4:2" }, { "children": [ @@ -6973,7 +6585,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 238, + "referencedDeclaration": 181, "type": "bytes32" }, "children": [ @@ -6995,7 +6607,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -7015,13 +6627,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 655, + "id": 584, "name": "Identifier", - "src": "4675:5:3" + "src": "4703:5:2" }, { "attributes": { @@ -7029,23 +6641,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 605, + "referencedDeclaration": 538, "type": "address", "value": "wallet" }, - "id": 656, + "id": 585, "name": "Identifier", - "src": "4681:6:3" + "src": "4709:6:2" } ], - "id": 657, + "id": 586, "name": "IndexAccess", - "src": "4675:13:3" + "src": "4703:13:2" } ], - "id": 658, + "id": 587, "name": "MemberAccess", - "src": "4675:31:3" + "src": "4703:31:2" }, { "attributes": { @@ -7053,23 +6665,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 641, + "referencedDeclaration": 571, "type": "uint256", "value": "ai" }, - "id": 659, + "id": 588, "name": "Identifier", - "src": "4707:2:3" + "src": "4735:2:2" } ], - "id": 660, + "id": 589, "name": "IndexAccess", - "src": "4675:35:3" + "src": "4703:35:2" } ], - "id": 661, + "id": 590, "name": "MemberAccess", - "src": "4675:52:3" + "src": "4703:52:2" }, { "attributes": { @@ -7077,24 +6689,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 631, + "referencedDeclaration": 561, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 662, + "id": 591, "name": "Identifier", - "src": "4731:16:3" + "src": "4759:16:2" } ], - "id": 663, + "id": 592, "name": "BinaryOperation", - "src": "4675:72:3" + "src": "4703:72:2" }, { "children": [ { "attributes": { - "functionReturnParameters": 623 + "functionReturnParameters": 559 }, "children": [ { @@ -7121,9 +6733,9 @@ "type": "bool", "value": "true" }, - "id": 664, + "id": 593, "name": "Literal", - "src": "4775:4:3" + "src": "4803:4:2" }, { "attributes": { @@ -7131,13 +6743,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 641, + "referencedDeclaration": 571, "type": "uint256", "value": "ai" }, - "id": 665, + "id": 594, "name": "Identifier", - "src": "4781:2:3" + "src": "4809:2:2" }, { "attributes": { @@ -7169,13 +6781,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 471, + "referencedDeclaration": 412, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 666, + "id": 595, "name": "Identifier", - "src": "4785:20:3" + "src": "4813:20:2" }, { "attributes": { @@ -7183,13 +6795,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 605, + "referencedDeclaration": 538, "type": "address", "value": "wallet" }, - "id": 667, + "id": 596, "name": "Identifier", - "src": "4806:6:3" + "src": "4834:6:2" }, { "attributes": { @@ -7197,52 +6809,52 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 641, + "referencedDeclaration": 571, "type": "uint256", "value": "ai" }, - "id": 668, + "id": 597, "name": "Identifier", - "src": "4814:2:3" + "src": "4842:2:2" } ], - "id": 669, + "id": 598, "name": "FunctionCall", - "src": "4785:32:3" + "src": "4813:32:2" } ], - "id": 670, + "id": 599, "name": "TupleExpression", - "src": "4774:44:3" + "src": "4802:44:2" } ], - "id": 671, + "id": 600, "name": "Return", - "src": "4767:51:3" + "src": "4795:51:2" } ], - "id": 672, + "id": 601, "name": "Block", - "src": "4749:84:3" + "src": "4777:84:2" } ], - "id": 673, + "id": 602, "name": "IfStatement", - "src": "4671:162:3" + "src": "4699:162:2" } ], - "id": 674, + "id": 603, "name": "Block", - "src": "4657:186:3" + "src": "4685:186:2" } ], - "id": 675, + "id": 604, "name": "ForStatement", - "src": "4582:261:3" + "src": "4613:258:2" }, { "attributes": { - "functionReturnParameters": 623 + "functionReturnParameters": 559 }, "children": [ { @@ -7269,9 +6881,9 @@ "type": "bool", "value": "false" }, - "id": 676, + "id": 605, "name": "Literal", - "src": "4860:5:3" + "src": "4888:5:2" }, { "attributes": { @@ -7286,9 +6898,9 @@ "type": "int_const 0", "value": "0" }, - "id": 677, + "id": 606, "name": "Literal", - "src": "4867:1:3" + "src": "4895:1:2" }, { "attributes": { @@ -7303,41 +6915,38 @@ "type": "bool", "value": "false" }, - "id": 678, + "id": 607, "name": "Literal", - "src": "4870:5:3" + "src": "4898:5:2" } ], - "id": 679, + "id": 608, "name": "TupleExpression", - "src": "4859:17:3" + "src": "4887:17:2" } ], - "id": 680, + "id": 609, "name": "Return", - "src": "4852:24:3" + "src": "4880:24:2" } ], - "id": 681, + "id": 610, "name": "Block", - "src": "4452:431:3" + "src": "4520:391:2" } ], - "id": 682, + "id": 611, "name": "FunctionDefinition", - "src": "4281:602:3" + "src": "4325:586:2" }, { "attributes": { "constant": true, "implemented": true, "isConstructor": false, - "modifiers": [ - null - ], "name": "userLastSubmittedName", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -7349,7 +6958,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 710, + "scope": 636, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -7362,19 +6971,19 @@ "name": "address", "type": "address" }, - "id": 683, + "id": 612, "name": "ElementaryTypeName", - "src": "4972:7:3" + "src": "5000:7:2" } ], - "id": 684, + "id": 613, "name": "VariableDeclaration", - "src": "4972:14:3" + "src": "5000:14:2" } ], - "id": 685, + "id": 614, "name": "ParameterList", - "src": "4971:16:3" + "src": "4999:16:2" }, { "children": [ @@ -7382,7 +6991,7 @@ "attributes": { "constant": false, "name": "", - "scope": 710, + "scope": 636, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -7395,124 +7004,60 @@ "name": "string", "type": "string storage pointer" }, - "id": 686, + "id": 618, "name": "ElementaryTypeName", - "src": "5017:6:3" + "src": "5069:6:2" } ], - "id": 687, + "id": 619, "name": "VariableDeclaration", - "src": "5017:6:3" + "src": "5069:6:2" } ], - "id": 688, + "id": 620, "name": "ParameterList", - "src": "5016:8:3" + "src": "5068:8:2" }, { "children": [ { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1433, - "type": "function (bool) pure", - "value": "require" - }, - "id": 689, - "name": "Identifier", - "src": "5039:7:3" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "bool", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 424, - "type": "function (address) view returns (bool)", - "value": "userExists" - }, - "id": 690, - "name": "Identifier", - "src": "5047:10:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 684, - "type": "address", - "value": "wallet" - }, - "id": 691, - "name": "Identifier", - "src": "5058:6:3" - } - ], - "id": 692, - "name": "FunctionCall", - "src": "5047:18:3" - } - ], - "id": 693, - "name": "FunctionCall", - "src": "5039:27:3" - } - ], - "id": 694, - "name": "ExpressionStatement", - "src": "5039:27:3" + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 244, + "type": "modifier (address)", + "value": "checkUserExists" + }, + "id": 615, + "name": "Identifier", + "src": "5036:15:2" }, { "attributes": { - "functionReturnParameters": 688 + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 613, + "type": "address", + "value": "wallet" + }, + "id": 616, + "name": "Identifier", + "src": "5052:6:2" + } + ], + "id": 617, + "name": "ModifierInvocation", + "src": "5036:23:2" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 620 }, "children": [ { @@ -7523,7 +7068,7 @@ "isPure": false, "lValueRequested": false, "member_name": "name", - "referencedDeclaration": 224, + "referencedDeclaration": 167, "type": "string storage ref" }, "children": [ @@ -7545,7 +7090,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -7565,13 +7110,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 695, + "id": 621, "name": "Identifier", - "src": "5083:5:3" + "src": "5098:5:2" }, { "attributes": { @@ -7579,23 +7124,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 684, + "referencedDeclaration": 613, "type": "address", "value": "wallet" }, - "id": 696, + "id": 622, "name": "Identifier", - "src": "5089:6:3" + "src": "5104:6:2" } ], - "id": 697, + "id": 623, "name": "IndexAccess", - "src": "5083:13:3" + "src": "5098:13:2" } ], - "id": 698, + "id": 624, "name": "MemberAccess", - "src": "5083:31:3" + "src": "5098:31:2" }, { "attributes": { @@ -7632,7 +7177,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -7652,13 +7197,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 699, + "id": 625, "name": "Identifier", - "src": "5115:5:3" + "src": "5130:5:2" }, { "attributes": { @@ -7666,28 +7211,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 684, + "referencedDeclaration": 613, "type": "address", "value": "wallet" }, - "id": 700, + "id": 626, "name": "Identifier", - "src": "5121:6:3" + "src": "5136:6:2" } ], - "id": 701, + "id": 627, "name": "IndexAccess", - "src": "5115:13:3" + "src": "5130:13:2" } ], - "id": 702, + "id": 628, "name": "MemberAccess", - "src": "5115:31:3" + "src": "5130:31:2" } ], - "id": 703, + "id": 629, "name": "MemberAccess", - "src": "5115:38:3" + "src": "5130:38:2" }, { "attributes": { @@ -7702,51 +7247,48 @@ "type": "int_const 1", "value": "1" }, - "id": 704, + "id": 630, "name": "Literal", - "src": "5154:1:3" + "src": "5169:1:2" } ], - "id": 705, + "id": 631, "name": "BinaryOperation", - "src": "5115:40:3" + "src": "5130:40:2" } ], - "id": 706, + "id": 632, "name": "IndexAccess", - "src": "5083:73:3" + "src": "5098:73:2" } ], - "id": 707, + "id": 633, "name": "MemberAccess", - "src": "5083:78:3" + "src": "5098:78:2" } ], - "id": 708, + "id": 634, "name": "Return", - "src": "5076:85:3" + "src": "5091:85:2" } ], - "id": 709, + "id": 635, "name": "Block", - "src": "5029:139:3" + "src": "5081:102:2" } ], - "id": 710, + "id": 636, "name": "FunctionDefinition", - "src": "4941:227:3" + "src": "4969:214:2" }, { "attributes": { "constant": true, "implemented": true, "isConstructor": false, - "modifiers": [ - null - ], "name": "userLastConfirmedName", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -7758,7 +7300,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 770, + "scope": 679, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -7771,19 +7313,19 @@ "name": "address", "type": "address" }, - "id": 711, + "id": 637, "name": "ElementaryTypeName", - "src": "5300:7:3" + "src": "5315:7:2" } ], - "id": 712, + "id": 638, "name": "VariableDeclaration", - "src": "5300:14:3" + "src": "5315:14:2" } ], - "id": 713, + "id": 639, "name": "ParameterList", - "src": "5299:16:3" + "src": "5314:16:2" }, { "children": [ @@ -7791,7 +7333,7 @@ "attributes": { "constant": false, "name": "", - "scope": 770, + "scope": 679, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -7804,135 +7346,74 @@ "name": "string", "type": "string storage pointer" }, - "id": 714, + "id": 643, "name": "ElementaryTypeName", - "src": "5345:6:3" + "src": "5384:6:2" } ], - "id": 715, + "id": 644, "name": "VariableDeclaration", - "src": "5345:6:3" + "src": "5384:6:2" } ], - "id": 716, + "id": 645, "name": "ParameterList", - "src": "5344:8:3" + "src": "5383:8:2" }, { "children": [ { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1433, - "type": "function (bool) pure", - "value": "require" - }, - "id": 717, - "name": "Identifier", - "src": "5367:7:3" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "bool", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 424, - "type": "function (address) view returns (bool)", - "value": "userExists" - }, - "id": 718, - "name": "Identifier", - "src": "5375:10:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 712, - "type": "address", - "value": "wallet" - }, - "id": 719, - "name": "Identifier", - "src": "5386:6:3" - } - ], - "id": 720, - "name": "FunctionCall", - "src": "5375:18:3" - } - ], - "id": 721, - "name": "FunctionCall", - "src": "5367:27:3" - } - ], - "id": 722, - "name": "ExpressionStatement", - "src": "5367:27:3" + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 244, + "type": "modifier (address)", + "value": "checkUserExists" + }, + "id": 640, + "name": "Identifier", + "src": "5351:15:2" }, { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 638, + "type": "address", + "value": "wallet" + }, + "id": 641, + "name": "Identifier", + "src": "5367:6:2" + } + ], + "id": 642, + "name": "ModifierInvocation", + "src": "5351:23:2" + }, + { + "children": [ + { + "attributes": { + "loopExpression": null + }, "children": [ { "attributes": { "assignments": [ - 724 + 647 ] }, "children": [ { "attributes": { "constant": false, - "name": "iai", - "scope": 770, + "name": "ai", + "scope": 679, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -7945,65 +7426,14 @@ "name": "uint256", "type": "uint256" }, - "id": 723, + "id": 646, "name": "ElementaryTypeName", - "src": "5410:7:3" + "src": "5411:7:2" } ], - "id": 724, + "id": 647, "name": "VariableDeclaration", - "src": "5410:11:3" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "30", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 0", - "value": "0" - }, - "id": 725, - "name": "Literal", - "src": "5424:1:3" - } - ], - "id": 726, - "name": "VariableDeclarationStatement", - "src": "5410:15:3" - }, - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "<", - "type": "bool" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 724, - "type": "uint256", - "value": "iai" - }, - "id": 727, - "name": "Identifier", - "src": "5427:3:3" + "src": "5411:10:2" }, { "attributes": { @@ -8025,7 +7455,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -8045,13 +7475,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 728, + "id": 648, "name": "Identifier", - "src": "5433:5:3" + "src": "5424:5:2" }, { "attributes": { @@ -8059,291 +7489,124 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 712, + "referencedDeclaration": 638, "type": "address", "value": "wallet" }, - "id": 729, + "id": 649, "name": "Identifier", - "src": "5439:6:3" + "src": "5430:6:2" } ], - "id": 730, + "id": 650, "name": "IndexAccess", - "src": "5433:13:3" + "src": "5424:13:2" } ], - "id": 731, + "id": 651, "name": "MemberAccess", - "src": "5433:31:3" + "src": "5424:31:2" } ], - "id": 732, + "id": 652, "name": "MemberAccess", - "src": "5433:38:3" + "src": "5424:38:2" } ], - "id": 733, - "name": "BinaryOperation", - "src": "5427:44:3" + "id": 653, + "name": "VariableDeclarationStatement", + "src": "5411:51:2" }, { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, "children": [ { "attributes": { "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 647, + "type": "uint256", + "value": "ai" + }, + "id": 654, + "name": "Identifier", + "src": "5464:2:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "operator": "+=", - "type": "uint256" + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 724, - "type": "uint256", - "value": "iai" - }, - "id": 734, - "name": "Identifier", - "src": "5473:3:3" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "31", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 1", - "value": "1" - }, - "id": 735, - "name": "Literal", - "src": "5480:1:3" - } - ], - "id": 736, - "name": "Assignment", - "src": "5473:8:3" + "id": 655, + "name": "Literal", + "src": "5469:1:2" } ], - "id": 737, - "name": "ExpressionStatement", - "src": "5473:8:3" + "id": 656, + "name": "BinaryOperation", + "src": "5464:6:2" }, { "children": [ { - "attributes": { - "assignments": [ - 739 - ] - }, "children": [ - { - "attributes": { - "constant": false, - "name": "ai", - "scope": 770, - "stateVariable": false, - "storageLocation": "default", - "type": "uint256", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "uint256", - "type": "uint256" - }, - "id": 738, - "name": "ElementaryTypeName", - "src": "5497:7:3" - } - ], - "id": 739, - "name": "VariableDeclaration", - "src": "5497:10:3" - }, { "attributes": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "operator": "-", + "operator": "--", + "prefix": false, "type": "uint256" }, "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "type": "uint256" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "operator": "-", - "type": "uint256" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "member_name": "length", - "referencedDeclaration": null, - "type": "uint256" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "member_name": "physicalAddresses", - "referencedDeclaration": 267, - "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "type": "struct ProofOfPhysicalAddress.User storage ref" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 272, - "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", - "value": "users" - }, - "id": 740, - "name": "Identifier", - "src": "5511:5:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 712, - "type": "address", - "value": "wallet" - }, - "id": 741, - "name": "Identifier", - "src": "5517:6:3" - } - ], - "id": 742, - "name": "IndexAccess", - "src": "5511:13:3" - } - ], - "id": 743, - "name": "MemberAccess", - "src": "5511:31:3" - } - ], - "id": 744, - "name": "MemberAccess", - "src": "5511:38:3" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "31", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 1", - "value": "1" - }, - "id": 745, - "name": "Literal", - "src": "5550:1:3" - } - ], - "id": 746, - "name": "BinaryOperation", - "src": "5511:40:3" - } - ], - "id": 747, - "name": "TupleExpression", - "src": "5510:42:3" - }, { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], - "referencedDeclaration": 724, + "referencedDeclaration": 647, "type": "uint256", - "value": "iai" + "value": "ai" }, - "id": 748, + "id": 657, "name": "Identifier", - "src": "5555:3:3" + "src": "5487:2:2" } ], - "id": 749, - "name": "BinaryOperation", - "src": "5510:48:3" + "id": 658, + "name": "UnaryOperation", + "src": "5487:4:2" } ], - "id": 750, - "name": "VariableDeclarationStatement", - "src": "5497:61:3" + "id": 659, + "name": "ExpressionStatement", + "src": "5487:4:2" }, { "attributes": { @@ -8380,13 +7643,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 471, + "referencedDeclaration": 412, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 751, + "id": 660, "name": "Identifier", - "src": "5576:20:3" + "src": "5509:20:2" }, { "attributes": { @@ -8394,13 +7657,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 712, + "referencedDeclaration": 638, "type": "address", "value": "wallet" }, - "id": 752, + "id": 661, "name": "Identifier", - "src": "5597:6:3" + "src": "5530:6:2" }, { "attributes": { @@ -8408,24 +7671,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 739, + "referencedDeclaration": 647, "type": "uint256", "value": "ai" }, - "id": 753, + "id": 662, "name": "Identifier", - "src": "5605:2:3" + "src": "5538:2:2" } ], - "id": 754, + "id": 663, "name": "FunctionCall", - "src": "5576:32:3" + "src": "5509:32:2" }, { "children": [ { "attributes": { - "functionReturnParameters": 716 + "functionReturnParameters": 645 }, "children": [ { @@ -8436,7 +7699,7 @@ "isPure": false, "lValueRequested": false, "member_name": "name", - "referencedDeclaration": 224, + "referencedDeclaration": 167, "type": "string storage ref" }, "children": [ @@ -8458,7 +7721,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -8478,13 +7741,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 755, + "id": 664, "name": "Identifier", - "src": "5635:5:3" + "src": "5568:5:2" }, { "attributes": { @@ -8492,23 +7755,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 712, + "referencedDeclaration": 638, "type": "address", "value": "wallet" }, - "id": 756, + "id": 665, "name": "Identifier", - "src": "5641:6:3" + "src": "5574:6:2" } ], - "id": 757, + "id": 666, "name": "IndexAccess", - "src": "5635:13:3" + "src": "5568:13:2" } ], - "id": 758, + "id": 667, "name": "MemberAccess", - "src": "5635:31:3" + "src": "5568:31:2" }, { "attributes": { @@ -8516,52 +7779,52 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 739, + "referencedDeclaration": 647, "type": "uint256", "value": "ai" }, - "id": 759, + "id": 668, "name": "Identifier", - "src": "5667:2:3" + "src": "5600:2:2" } ], - "id": 760, + "id": 669, "name": "IndexAccess", - "src": "5635:35:3" + "src": "5568:35:2" } ], - "id": 761, + "id": 670, "name": "MemberAccess", - "src": "5635:40:3" + "src": "5568:40:2" } ], - "id": 762, + "id": 671, "name": "Return", - "src": "5628:47:3" + "src": "5561:47:2" } ], - "id": 763, + "id": 672, "name": "Block", - "src": "5610:80:3" + "src": "5543:80:2" } ], - "id": 764, + "id": 673, "name": "IfStatement", - "src": "5572:118:3" + "src": "5505:118:2" } ], - "id": 765, + "id": 674, "name": "Block", - "src": "5483:217:3" + "src": "5473:160:2" } ], - "id": 766, + "id": 675, "name": "ForStatement", - "src": "5405:295:3" + "src": "5406:227:2" }, { "attributes": { - "functionReturnParameters": 716 + "functionReturnParameters": 645 }, "children": [ { @@ -8577,24 +7840,24 @@ "type": "literal_string \"\"", "value": "" }, - "id": 767, + "id": 676, "name": "Literal", - "src": "5716:2:3" + "src": "5649:2:2" } ], - "id": 768, + "id": 677, "name": "Return", - "src": "5709:9:3" + "src": "5642:9:2" } ], - "id": 769, + "id": 678, "name": "Block", - "src": "5357:368:3" + "src": "5396:262:2" } ], - "id": 770, + "id": 679, "name": "FunctionDefinition", - "src": "5269:456:3" + "src": "5284:374:2" }, { "attributes": { @@ -8606,7 +7869,7 @@ ], "name": "userSubmittedAddressesCount", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8618,7 +7881,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 784, + "scope": 693, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -8631,19 +7894,19 @@ "name": "address", "type": "address" }, - "id": 771, + "id": 680, "name": "ElementaryTypeName", - "src": "5864:7:3" + "src": "5797:7:2" } ], - "id": 772, + "id": 681, "name": "VariableDeclaration", - "src": "5864:14:3" + "src": "5797:14:2" } ], - "id": 773, + "id": 682, "name": "ParameterList", - "src": "5863:16:3" + "src": "5796:16:2" }, { "children": [ @@ -8651,7 +7914,7 @@ "attributes": { "constant": false, "name": "", - "scope": 784, + "scope": 693, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -8664,25 +7927,25 @@ "name": "uint256", "type": "uint256" }, - "id": 774, + "id": 683, "name": "ElementaryTypeName", - "src": "5909:7:3" + "src": "5842:7:2" } ], - "id": 775, + "id": 684, "name": "VariableDeclaration", - "src": "5909:7:3" + "src": "5842:7:2" } ], - "id": 776, + "id": 685, "name": "ParameterList", - "src": "5908:9:3" + "src": "5841:9:2" }, { "children": [ { "attributes": { - "functionReturnParameters": 776 + "functionReturnParameters": 685 }, "children": [ { @@ -8705,7 +7968,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -8725,13 +7988,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 777, + "id": 686, "name": "Identifier", - "src": "5939:5:3" + "src": "5872:5:2" }, { "attributes": { @@ -8739,43 +8002,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 772, + "referencedDeclaration": 681, "type": "address", "value": "wallet" }, - "id": 778, + "id": 687, "name": "Identifier", - "src": "5945:6:3" + "src": "5878:6:2" } ], - "id": 779, + "id": 688, "name": "IndexAccess", - "src": "5939:13:3" + "src": "5872:13:2" } ], - "id": 780, + "id": 689, "name": "MemberAccess", - "src": "5939:31:3" + "src": "5872:31:2" } ], - "id": 781, + "id": 690, "name": "MemberAccess", - "src": "5939:38:3" + "src": "5872:38:2" } ], - "id": 782, + "id": 691, "name": "Return", - "src": "5932:45:3" + "src": "5865:45:2" } ], - "id": 783, + "id": 692, "name": "Block", - "src": "5922:62:3" + "src": "5855:62:2" } ], - "id": 784, + "id": 693, "name": "FunctionDefinition", - "src": "5827:157:3" + "src": "5760:157:2" }, { "attributes": { @@ -8787,7 +8050,7 @@ ], "name": "userConfirmedAddressesCount", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8799,7 +8062,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 825, + "scope": 733, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -8812,19 +8075,19 @@ "name": "address", "type": "address" }, - "id": 785, + "id": 694, "name": "ElementaryTypeName", - "src": "6129:7:3" + "src": "6062:7:2" } ], - "id": 786, + "id": 695, "name": "VariableDeclaration", - "src": "6129:14:3" + "src": "6062:14:2" } ], - "id": 787, + "id": 696, "name": "ParameterList", - "src": "6128:16:3" + "src": "6061:16:2" }, { "children": [ @@ -8832,7 +8095,7 @@ "attributes": { "constant": false, "name": "", - "scope": 825, + "scope": 733, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -8845,26 +8108,26 @@ "name": "uint256", "type": "uint256" }, - "id": 788, + "id": 697, "name": "ElementaryTypeName", - "src": "6174:7:3" + "src": "6107:7:2" } ], - "id": 789, + "id": 698, "name": "VariableDeclaration", - "src": "6174:7:3" + "src": "6107:7:2" } ], - "id": 790, + "id": 699, "name": "ParameterList", - "src": "6173:9:3" + "src": "6106:9:2" }, { "children": [ { "attributes": { "assignments": [ - 792 + 701 ] }, "children": [ @@ -8872,7 +8135,7 @@ "attributes": { "constant": false, "name": "c", - "scope": 825, + "scope": 733, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -8885,14 +8148,14 @@ "name": "uint256", "type": "uint256" }, - "id": 791, + "id": 700, "name": "ElementaryTypeName", - "src": "6197:7:3" + "src": "6130:7:2" } ], - "id": 792, + "id": 701, "name": "VariableDeclaration", - "src": "6197:9:3" + "src": "6130:9:2" }, { "attributes": { @@ -8907,21 +8170,21 @@ "type": "int_const 0", "value": "0" }, - "id": 793, + "id": 702, "name": "Literal", - "src": "6209:1:3" + "src": "6142:1:2" } ], - "id": 794, + "id": 703, "name": "VariableDeclarationStatement", - "src": "6197:13:3" + "src": "6130:13:2" }, { "children": [ { "attributes": { "assignments": [ - 796 + 705 ] }, "children": [ @@ -8929,7 +8192,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 825, + "scope": 733, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -8942,14 +8205,14 @@ "name": "uint256", "type": "uint256" }, - "id": 795, + "id": 704, "name": "ElementaryTypeName", - "src": "6225:7:3" + "src": "6158:7:2" } ], - "id": 796, + "id": 705, "name": "VariableDeclaration", - "src": "6225:10:3" + "src": "6158:10:2" }, { "attributes": { @@ -8964,14 +8227,14 @@ "type": "int_const 0", "value": "0" }, - "id": 797, + "id": 706, "name": "Literal", - "src": "6238:1:3" + "src": "6171:1:2" } ], - "id": 798, + "id": 707, "name": "VariableDeclarationStatement", - "src": "6225:14:3" + "src": "6158:14:2" }, { "attributes": { @@ -8994,13 +8257,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 796, + "referencedDeclaration": 705, "type": "uint256", "value": "ai" }, - "id": 799, + "id": 708, "name": "Identifier", - "src": "6241:2:3" + "src": "6174:2:2" }, { "attributes": { @@ -9022,7 +8285,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -9042,13 +8305,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 800, + "id": 709, "name": "Identifier", - "src": "6246:5:3" + "src": "6179:5:2" }, { "attributes": { @@ -9056,33 +8319,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 786, + "referencedDeclaration": 695, "type": "address", "value": "wallet" }, - "id": 801, + "id": 710, "name": "Identifier", - "src": "6252:6:3" + "src": "6185:6:2" } ], - "id": 802, + "id": 711, "name": "IndexAccess", - "src": "6246:13:3" + "src": "6179:13:2" } ], - "id": 803, + "id": 712, "name": "MemberAccess", - "src": "6246:31:3" + "src": "6179:31:2" } ], - "id": 804, + "id": 713, "name": "MemberAccess", - "src": "6246:38:3" + "src": "6179:38:2" } ], - "id": 805, + "id": 714, "name": "BinaryOperation", - "src": "6241:43:3" + "src": "6174:43:2" }, { "children": [ @@ -9093,7 +8356,8 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "operator": "+=", + "operator": "++", + "prefix": false, "type": "uint256" }, "children": [ @@ -9103,40 +8367,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 796, + "referencedDeclaration": 705, "type": "uint256", "value": "ai" }, - "id": 806, + "id": 715, "name": "Identifier", - "src": "6286:2:3" - }, - { - "attributes": { - "argumentTypes": null, - "hexvalue": "31", - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "subdenomination": null, - "token": "number", - "type": "int_const 1", - "value": "1" - }, - "id": 807, - "name": "Literal", - "src": "6292:1:3" + "src": "6219:2:2" } ], - "id": 808, - "name": "Assignment", - "src": "6286:7:3" + "id": 716, + "name": "UnaryOperation", + "src": "6219:4:2" } ], - "id": 809, + "id": 717, "name": "ExpressionStatement", - "src": "6286:7:3" + "src": "6219:4:2" }, { "children": [ @@ -9175,13 +8422,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 471, + "referencedDeclaration": 412, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 810, + "id": 718, "name": "Identifier", - "src": "6313:20:3" + "src": "6243:20:2" }, { "attributes": { @@ -9189,13 +8436,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 786, + "referencedDeclaration": 695, "type": "address", "value": "wallet" }, - "id": 811, + "id": 719, "name": "Identifier", - "src": "6334:6:3" + "src": "6264:6:2" }, { "attributes": { @@ -9203,18 +8450,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 796, + "referencedDeclaration": 705, "type": "uint256", "value": "ai" }, - "id": 812, + "id": 720, "name": "Identifier", - "src": "6342:2:3" + "src": "6272:2:2" } ], - "id": 813, + "id": 721, "name": "FunctionCall", - "src": "6313:32:3" + "src": "6243:32:2" }, { "children": [ @@ -9237,13 +8484,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 792, + "referencedDeclaration": 701, "type": "uint256", "value": "c" }, - "id": 814, + "id": 722, "name": "Identifier", - "src": "6365:1:3" + "src": "6295:1:2" }, { "attributes": { @@ -9258,43 +8505,43 @@ "type": "int_const 1", "value": "1" }, - "id": 815, + "id": 723, "name": "Literal", - "src": "6370:1:3" + "src": "6300:1:2" } ], - "id": 816, + "id": 724, "name": "Assignment", - "src": "6365:6:3" + "src": "6295:6:2" } ], - "id": 817, + "id": 725, "name": "ExpressionStatement", - "src": "6365:6:3" + "src": "6295:6:2" } ], - "id": 818, + "id": 726, "name": "Block", - "src": "6347:39:3" + "src": "6277:39:2" } ], - "id": 819, + "id": 727, "name": "IfStatement", - "src": "6309:77:3" + "src": "6239:77:2" } ], - "id": 820, + "id": 728, "name": "Block", - "src": "6295:101:3" + "src": "6225:101:2" } ], - "id": 821, + "id": 729, "name": "ForStatement", - "src": "6220:176:3" + "src": "6153:173:2" }, { "attributes": { - "functionReturnParameters": 790 + "functionReturnParameters": 699 }, "children": [ { @@ -9303,40 +8550,37 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 792, + "referencedDeclaration": 701, "type": "uint256", "value": "c" }, - "id": 822, + "id": 730, "name": "Identifier", - "src": "6412:1:3" + "src": "6342:1:2" } ], - "id": 823, + "id": 731, "name": "Return", - "src": "6405:8:3" + "src": "6335:8:2" } ], - "id": 824, + "id": 732, "name": "Block", - "src": "6187:233:3" + "src": "6120:230:2" } ], - "id": 825, + "id": 733, "name": "FunctionDefinition", - "src": "6092:328:3" + "src": "6025:325:2" }, { "attributes": { "constant": true, "implemented": true, "isConstructor": false, - "modifiers": [ - null - ], "name": "userAddress", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -9348,7 +8592,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 886, + "scope": 791, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -9361,20 +8605,20 @@ "name": "address", "type": "address" }, - "id": 826, + "id": 734, "name": "ElementaryTypeName", - "src": "6447:7:3" + "src": "6377:7:2" } ], - "id": 827, + "id": 735, "name": "VariableDeclaration", - "src": "6447:14:3" + "src": "6377:14:2" }, { "attributes": { "constant": false, "name": "addressIndex", - "scope": 886, + "scope": 791, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -9387,19 +8631,19 @@ "name": "uint256", "type": "uint256" }, - "id": 828, + "id": 736, "name": "ElementaryTypeName", - "src": "6463:7:3" + "src": "6393:7:2" } ], - "id": 829, + "id": 737, "name": "VariableDeclaration", - "src": "6463:20:3" + "src": "6393:20:2" } ], - "id": 830, + "id": 738, "name": "ParameterList", - "src": "6446:38:3" + "src": "6376:38:2" }, { "children": [ @@ -9407,7 +8651,7 @@ "attributes": { "constant": false, "name": "country", - "scope": 886, + "scope": 791, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -9420,20 +8664,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 831, + "id": 742, "name": "ElementaryTypeName", - "src": "6523:6:3" + "src": "6477:6:2" } ], - "id": 832, + "id": 743, "name": "VariableDeclaration", - "src": "6523:14:3" + "src": "6477:14:2" }, { "attributes": { "constant": false, "name": "state", - "scope": 886, + "scope": 791, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -9446,20 +8690,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 833, + "id": 744, "name": "ElementaryTypeName", - "src": "6539:6:3" + "src": "6493:6:2" } ], - "id": 834, + "id": 745, "name": "VariableDeclaration", - "src": "6539:12:3" + "src": "6493:12:2" }, { "attributes": { "constant": false, "name": "city", - "scope": 886, + "scope": 791, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -9472,20 +8716,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 835, + "id": 746, "name": "ElementaryTypeName", - "src": "6553:6:3" + "src": "6507:6:2" } ], - "id": 836, + "id": 747, "name": "VariableDeclaration", - "src": "6553:11:3" + "src": "6507:11:2" }, { "attributes": { "constant": false, "name": "location", - "scope": 886, + "scope": 791, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -9498,20 +8742,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 837, + "id": 748, "name": "ElementaryTypeName", - "src": "6566:6:3" + "src": "6520:6:2" } ], - "id": 838, + "id": 749, "name": "VariableDeclaration", - "src": "6566:15:3" + "src": "6520:15:2" }, { "attributes": { "constant": false, "name": "zip", - "scope": 886, + "scope": 791, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -9524,124 +8768,60 @@ "name": "string", "type": "string storage pointer" }, - "id": 839, + "id": 750, "name": "ElementaryTypeName", - "src": "6583:6:3" + "src": "6537:6:2" } ], - "id": 840, + "id": 751, "name": "VariableDeclaration", - "src": "6583:10:3" + "src": "6537:10:2" } ], - "id": 841, + "id": 752, "name": "ParameterList", - "src": "6513:81:3" + "src": "6467:81:2" }, { "children": [ { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1433, - "type": "function (bool) pure", - "value": "require" - }, - "id": 842, - "name": "Identifier", - "src": "6609:7:3" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "bool", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 424, - "type": "function (address) view returns (bool)", - "value": "userExists" - }, - "id": 843, - "name": "Identifier", - "src": "6617:10:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 827, - "type": "address", - "value": "wallet" - }, - "id": 844, - "name": "Identifier", - "src": "6628:6:3" - } - ], - "id": 845, - "name": "FunctionCall", - "src": "6617:18:3" - } - ], - "id": 846, - "name": "FunctionCall", - "src": "6609:27:3" - } - ], - "id": 847, - "name": "ExpressionStatement", - "src": "6609:27:3" + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 244, + "type": "modifier (address)", + "value": "checkUserExists" + }, + "id": 739, + "name": "Identifier", + "src": "6435:15:2" }, { "attributes": { - "functionReturnParameters": 841 + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 735, + "type": "address", + "value": "wallet" + }, + "id": 740, + "name": "Identifier", + "src": "6451:6:2" + } + ], + "id": 741, + "name": "ModifierInvocation", + "src": "6435:23:2" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 752 }, "children": [ { @@ -9663,7 +8843,7 @@ "isPure": false, "lValueRequested": false, "member_name": "country", - "referencedDeclaration": 226, + "referencedDeclaration": 169, "type": "string storage ref" }, "children": [ @@ -9685,7 +8865,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -9705,13 +8885,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 848, + "id": 753, "name": "Identifier", - "src": "6667:5:3" + "src": "6584:5:2" }, { "attributes": { @@ -9719,23 +8899,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 827, + "referencedDeclaration": 735, "type": "address", "value": "wallet" }, - "id": 849, + "id": 754, "name": "Identifier", - "src": "6673:6:3" + "src": "6590:6:2" } ], - "id": 850, + "id": 755, "name": "IndexAccess", - "src": "6667:13:3" + "src": "6584:13:2" } ], - "id": 851, + "id": 756, "name": "MemberAccess", - "src": "6667:31:3" + "src": "6584:31:2" }, { "attributes": { @@ -9743,23 +8923,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 829, + "referencedDeclaration": 737, "type": "uint256", "value": "addressIndex" }, - "id": 852, + "id": 757, "name": "Identifier", - "src": "6699:12:3" + "src": "6616:12:2" } ], - "id": 853, + "id": 758, "name": "IndexAccess", - "src": "6667:45:3" + "src": "6584:45:2" } ], - "id": 854, + "id": 759, "name": "MemberAccess", - "src": "6667:53:3" + "src": "6584:53:2" }, { "attributes": { @@ -9769,7 +8949,7 @@ "isPure": false, "lValueRequested": false, "member_name": "state", - "referencedDeclaration": 228, + "referencedDeclaration": 171, "type": "string storage ref" }, "children": [ @@ -9791,7 +8971,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -9811,13 +8991,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 855, + "id": 760, "name": "Identifier", - "src": "6734:5:3" + "src": "6651:5:2" }, { "attributes": { @@ -9825,23 +9005,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 827, + "referencedDeclaration": 735, "type": "address", "value": "wallet" }, - "id": 856, + "id": 761, "name": "Identifier", - "src": "6740:6:3" + "src": "6657:6:2" } ], - "id": 857, + "id": 762, "name": "IndexAccess", - "src": "6734:13:3" + "src": "6651:13:2" } ], - "id": 858, + "id": 763, "name": "MemberAccess", - "src": "6734:31:3" + "src": "6651:31:2" }, { "attributes": { @@ -9849,23 +9029,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 829, + "referencedDeclaration": 737, "type": "uint256", "value": "addressIndex" }, - "id": 859, + "id": 764, "name": "Identifier", - "src": "6766:12:3" + "src": "6683:12:2" } ], - "id": 860, + "id": 765, "name": "IndexAccess", - "src": "6734:45:3" + "src": "6651:45:2" } ], - "id": 861, + "id": 766, "name": "MemberAccess", - "src": "6734:51:3" + "src": "6651:51:2" }, { "attributes": { @@ -9875,7 +9055,7 @@ "isPure": false, "lValueRequested": false, "member_name": "city", - "referencedDeclaration": 230, + "referencedDeclaration": 173, "type": "string storage ref" }, "children": [ @@ -9897,7 +9077,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -9917,13 +9097,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 862, + "id": 767, "name": "Identifier", - "src": "6799:5:3" + "src": "6716:5:2" }, { "attributes": { @@ -9931,23 +9111,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 827, + "referencedDeclaration": 735, "type": "address", "value": "wallet" }, - "id": 863, + "id": 768, "name": "Identifier", - "src": "6805:6:3" + "src": "6722:6:2" } ], - "id": 864, + "id": 769, "name": "IndexAccess", - "src": "6799:13:3" + "src": "6716:13:2" } ], - "id": 865, + "id": 770, "name": "MemberAccess", - "src": "6799:31:3" + "src": "6716:31:2" }, { "attributes": { @@ -9955,23 +9135,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 829, + "referencedDeclaration": 737, "type": "uint256", "value": "addressIndex" }, - "id": 866, + "id": 771, "name": "Identifier", - "src": "6831:12:3" + "src": "6748:12:2" } ], - "id": 867, + "id": 772, "name": "IndexAccess", - "src": "6799:45:3" + "src": "6716:45:2" } ], - "id": 868, + "id": 773, "name": "MemberAccess", - "src": "6799:50:3" + "src": "6716:50:2" }, { "attributes": { @@ -9981,7 +9161,7 @@ "isPure": false, "lValueRequested": false, "member_name": "location", - "referencedDeclaration": 232, + "referencedDeclaration": 175, "type": "string storage ref" }, "children": [ @@ -10003,7 +9183,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -10023,13 +9203,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 869, + "id": 774, "name": "Identifier", - "src": "6863:5:3" + "src": "6780:5:2" }, { "attributes": { @@ -10037,23 +9217,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 827, + "referencedDeclaration": 735, "type": "address", "value": "wallet" }, - "id": 870, + "id": 775, "name": "Identifier", - "src": "6869:6:3" + "src": "6786:6:2" } ], - "id": 871, + "id": 776, "name": "IndexAccess", - "src": "6863:13:3" + "src": "6780:13:2" } ], - "id": 872, + "id": 777, "name": "MemberAccess", - "src": "6863:31:3" + "src": "6780:31:2" }, { "attributes": { @@ -10061,23 +9241,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 829, + "referencedDeclaration": 737, "type": "uint256", "value": "addressIndex" }, - "id": 873, + "id": 778, "name": "Identifier", - "src": "6895:12:3" + "src": "6812:12:2" } ], - "id": 874, + "id": 779, "name": "IndexAccess", - "src": "6863:45:3" + "src": "6780:45:2" } ], - "id": 875, + "id": 780, "name": "MemberAccess", - "src": "6863:54:3" + "src": "6780:54:2" }, { "attributes": { @@ -10087,7 +9267,7 @@ "isPure": false, "lValueRequested": false, "member_name": "zip", - "referencedDeclaration": 234, + "referencedDeclaration": 177, "type": "string storage ref" }, "children": [ @@ -10109,7 +9289,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -10129,13 +9309,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 876, + "id": 781, "name": "Identifier", - "src": "6931:5:3" + "src": "6848:5:2" }, { "attributes": { @@ -10143,23 +9323,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 827, + "referencedDeclaration": 735, "type": "address", "value": "wallet" }, - "id": 877, + "id": 782, "name": "Identifier", - "src": "6937:6:3" + "src": "6854:6:2" } ], - "id": 878, + "id": 783, "name": "IndexAccess", - "src": "6931:13:3" + "src": "6848:13:2" } ], - "id": 879, + "id": 784, "name": "MemberAccess", - "src": "6931:31:3" + "src": "6848:31:2" }, { "attributes": { @@ -10167,55 +9347,52 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 829, + "referencedDeclaration": 737, "type": "uint256", "value": "addressIndex" }, - "id": 880, + "id": 785, "name": "Identifier", - "src": "6963:12:3" + "src": "6880:12:2" } ], - "id": 881, + "id": 786, "name": "IndexAccess", - "src": "6931:45:3" + "src": "6848:45:2" } ], - "id": 882, + "id": 787, "name": "MemberAccess", - "src": "6931:49:3" + "src": "6848:49:2" } ], - "id": 883, + "id": 788, "name": "TupleExpression", - "src": "6653:337:3" + "src": "6570:337:2" } ], - "id": 884, + "id": 789, "name": "Return", - "src": "6646:344:3" + "src": "6563:344:2" } ], - "id": 885, + "id": 790, "name": "Block", - "src": "6599:398:3" + "src": "6553:361:2" } ], - "id": 886, + "id": 791, "name": "FunctionDefinition", - "src": "6426:571:3" + "src": "6356:558:2" }, { "attributes": { "constant": true, "implemented": true, "isConstructor": false, - "modifiers": [ - null - ], "name": "userAddressInfo", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -10227,7 +9404,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 948, + "scope": 854, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -10240,20 +9417,20 @@ "name": "address", "type": "address" }, - "id": 887, + "id": 792, "name": "ElementaryTypeName", - "src": "7028:7:3" + "src": "6945:7:2" } ], - "id": 888, + "id": 793, "name": "VariableDeclaration", - "src": "7028:14:3" + "src": "6945:14:2" }, { "attributes": { "constant": false, "name": "addressIndex", - "scope": 948, + "scope": 854, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -10266,19 +9443,19 @@ "name": "uint256", "type": "uint256" }, - "id": 889, + "id": 794, "name": "ElementaryTypeName", - "src": "7044:7:3" + "src": "6961:7:2" } ], - "id": 890, + "id": 795, "name": "VariableDeclaration", - "src": "7044:20:3" + "src": "6961:20:2" } ], - "id": 891, + "id": 796, "name": "ParameterList", - "src": "7027:38:3" + "src": "6944:38:2" }, { "children": [ @@ -10286,7 +9463,7 @@ "attributes": { "constant": false, "name": "name", - "scope": 948, + "scope": 854, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -10299,20 +9476,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 892, + "id": 800, "name": "ElementaryTypeName", - "src": "7104:6:3" + "src": "7045:6:2" } ], - "id": 893, + "id": 801, "name": "VariableDeclaration", - "src": "7104:11:3" + "src": "7045:11:2" }, { "attributes": { "constant": false, "name": "creationBlock", - "scope": 948, + "scope": 854, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -10325,20 +9502,20 @@ "name": "uint256", "type": "uint256" }, - "id": 894, + "id": 802, "name": "ElementaryTypeName", - "src": "7125:7:3" + "src": "7066:7:2" } ], - "id": 895, + "id": 803, "name": "VariableDeclaration", - "src": "7125:21:3" + "src": "7066:21:2" }, { "attributes": { "constant": false, "name": "confirmationBlock", - "scope": 948, + "scope": 854, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -10351,20 +9528,20 @@ "name": "uint256", "type": "uint256" }, - "id": 896, + "id": 804, "name": "ElementaryTypeName", - "src": "7156:7:3" + "src": "7097:7:2" } ], - "id": 897, + "id": 805, "name": "VariableDeclaration", - "src": "7156:25:3" + "src": "7097:25:2" }, { "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 948, + "scope": 854, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -10377,24 +9554,90 @@ "name": "bytes32", "type": "bytes32" }, - "id": 898, + "id": 806, "name": "ElementaryTypeName", - "src": "7191:7:3" + "src": "7132:7:2" } ], - "id": 899, + "id": 807, "name": "VariableDeclaration", - "src": "7191:24:3" + "src": "7132:24:2" } ], - "id": 900, + "id": 808, "name": "ParameterList", - "src": "7094:127:3" + "src": "7035:127:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 244, + "type": "modifier (address)", + "value": "checkUserExists" + }, + "id": 797, + "name": "Identifier", + "src": "7003:15:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 793, + "type": "address", + "value": "wallet" + }, + "id": 798, + "name": "Identifier", + "src": "7019:6:2" + } + ], + "id": 799, + "name": "ModifierInvocation", + "src": "7003:23:2" }, { "children": [ { + "attributes": { + "assignments": [ + 810 + ] + }, "children": [ + { + "attributes": { + "constant": false, + "name": "_confirmationBlock", + "scope": 854, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 809, + "name": "ElementaryTypeName", + "src": "7173:7:2" + } + ], + "id": 810, + "name": "VariableDeclaration", + "src": "7173:26:2" + }, { "attributes": { "argumentTypes": null, @@ -10406,7 +9649,7 @@ "names": [ null ], - "type": "tuple()", + "type": "uint256", "type_conversion": false }, "children": [ @@ -10414,20 +9657,37 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1433, - "type": "function (bool) pure", - "value": "require" + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "decodeConfirmation", + "referencedDeclaration": 154, + "type": "function (bytes32) pure returns (uint256)" }, - "id": 901, - "name": "Identifier", - "src": "7232:7:3" + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 155, + "type": "type(library PhysicalAddressClaim)", + "value": "PhysicalAddressClaim" + }, + "id": 811, + "name": "Identifier", + "src": "7202:20:2" + } + ], + "id": 812, + "name": "MemberAccess", + "src": "7202:39:2" }, { "attributes": { @@ -10440,7 +9700,7 @@ "names": [ null ], - "type": "bool", + "type": "bytes32", "type_conversion": false }, "children": [ @@ -10450,18 +9710,96 @@ { "typeIdentifier": "t_address", "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], - "overloadedDeclarations": [ + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "getClaim", + "referencedDeclaration": 37, + "type": "function (address,address,bytes32) view external returns (bytes32)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 165, + "type": "contract EthereumClaimsRegistryInterface", + "value": "registry" + }, + "id": 813, + "name": "Identifier", + "src": "7242:8:2" + } + ], + "id": 814, + "name": "MemberAccess", + "src": "7242:17:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ null ], - "referencedDeclaration": 424, - "type": "function (address) view returns (bool)", - "value": "userExists" + "type": "address", + "type_conversion": true }, - "id": 902, - "name": "Identifier", - "src": "7240:10:3" + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1314", + "typeString": "contract ProofOfPhysicalAddress" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 815, + "name": "ElementaryTypeNameExpression", + "src": "7273:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1341, + "type": "contract ProofOfPhysicalAddress", + "value": "this" + }, + "id": 816, + "name": "Identifier", + "src": "7281:4:2" + } + ], + "id": 817, + "name": "FunctionCall", + "src": "7273:13:2" }, { "attributes": { @@ -10469,57 +9807,14 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 888, + "referencedDeclaration": 793, "type": "address", "value": "wallet" }, - "id": 903, + "id": 818, "name": "Identifier", - "src": "7251:6:3" - } - ], - "id": 904, - "name": "FunctionCall", - "src": "7240:18:3" - } - ], - "id": 905, - "name": "FunctionCall", - "src": "7232:27:3" - } - ], - "id": 906, - "name": "ExpressionStatement", - "src": "7232:27:3" - }, - { - "attributes": { - "functionReturnParameters": 900 - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "type": "tuple(string storage ref,uint256,uint256,bytes32)" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "member_name": "name", - "referencedDeclaration": 224, - "type": "string storage ref" - }, - "children": [ + "src": "7300:6:2" + }, { "attributes": { "argumentTypes": null, @@ -10527,7 +9822,9 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref" + "member_name": "keccakIdentifier", + "referencedDeclaration": 181, + "type": "bytes32" }, "children": [ { @@ -10537,9 +9834,7 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "member_name": "physicalAddresses", - "referencedDeclaration": 267, - "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" + "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref" }, "children": [ { @@ -10549,71 +9844,114 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "type": "struct ProofOfPhysicalAddress.User storage ref" + "member_name": "physicalAddresses", + "referencedDeclaration": 210, + "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ { "attributes": { "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 272, - "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", - "value": "users" - }, - "id": 907, - "name": "Identifier", - "src": "7290:5:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 888, - "type": "address", - "value": "wallet" + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct ProofOfPhysicalAddress.User storage ref" }, - "id": 908, - "name": "Identifier", - "src": "7296:6:3" + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 215, + "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", + "value": "users" + }, + "id": 819, + "name": "Identifier", + "src": "7320:5:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 793, + "type": "address", + "value": "wallet" + }, + "id": 820, + "name": "Identifier", + "src": "7326:6:2" + } + ], + "id": 821, + "name": "IndexAccess", + "src": "7320:13:2" } ], - "id": 909, - "name": "IndexAccess", - "src": "7290:13:3" + "id": 822, + "name": "MemberAccess", + "src": "7320:31:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 795, + "type": "uint256", + "value": "addressIndex" + }, + "id": 823, + "name": "Identifier", + "src": "7352:12:2" } ], - "id": 910, - "name": "MemberAccess", - "src": "7290:31:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 890, - "type": "uint256", - "value": "addressIndex" - }, - "id": 911, - "name": "Identifier", - "src": "7322:12:3" + "id": 824, + "name": "IndexAccess", + "src": "7320:45:2" } ], - "id": 912, - "name": "IndexAccess", - "src": "7290:45:3" + "id": 825, + "name": "MemberAccess", + "src": "7320:62:2" } ], - "id": 913, - "name": "MemberAccess", - "src": "7290:50:3" - }, + "id": 826, + "name": "FunctionCall", + "src": "7242:141:2" + } + ], + "id": 827, + "name": "FunctionCall", + "src": "7202:191:2" + } + ], + "id": 828, + "name": "VariableDeclarationStatement", + "src": "7173:220:2" + }, + { + "attributes": { + "functionReturnParameters": 808 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(string storage ref,uint256,uint256,bytes32)" + }, + "children": [ { "attributes": { "argumentTypes": null, @@ -10621,9 +9959,9 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "member_name": "creationBlock", - "referencedDeclaration": 236, - "type": "uint256" + "member_name": "name", + "referencedDeclaration": 167, + "type": "string storage ref" }, "children": [ { @@ -10644,7 +9982,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -10664,13 +10002,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 914, + "id": 829, "name": "Identifier", - "src": "7354:5:3" + "src": "7424:5:2" }, { "attributes": { @@ -10678,23 +10016,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 888, + "referencedDeclaration": 793, "type": "address", "value": "wallet" }, - "id": 915, + "id": 830, "name": "Identifier", - "src": "7360:6:3" + "src": "7430:6:2" } ], - "id": 916, + "id": 831, "name": "IndexAccess", - "src": "7354:13:3" + "src": "7424:13:2" } ], - "id": 917, + "id": 832, "name": "MemberAccess", - "src": "7354:31:3" + "src": "7424:31:2" }, { "attributes": { @@ -10702,201 +10040,46 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 890, + "referencedDeclaration": 795, "type": "uint256", "value": "addressIndex" }, - "id": 918, + "id": 833, "name": "Identifier", - "src": "7386:12:3" + "src": "7456:12:2" } ], - "id": 919, + "id": 834, "name": "IndexAccess", - "src": "7354:45:3" + "src": "7424:45:2" } ], - "id": 920, + "id": 835, "name": "MemberAccess", - "src": "7354:59:3" + "src": "7424:50:2" }, { "attributes": { "argumentTypes": null, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "isStructConstructorCall": false, "lValueRequested": false, - "names": [ - null - ], - "type": "uint256", - "type_conversion": false + "member_name": "creationBlock", + "referencedDeclaration": 179, + "type": "uint256" }, "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "decodeConfirmation", - "referencedDeclaration": 211, - "type": "function (bytes32) pure returns (uint256)" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 212, - "type": "type(library PhysicalAddressClaim)", - "value": "PhysicalAddressClaim" - }, - "id": 921, - "name": "Identifier", - "src": "7427:20:3" - } - ], - "id": 922, - "name": "MemberAccess", - "src": "7427:39:3" - }, { "attributes": { "argumentTypes": null, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "isStructConstructorCall": false, "lValueRequested": false, - "names": [ - null - ], - "type": "bytes32", - "type_conversion": false + "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref" }, "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "getClaim", - "referencedDeclaration": 37, - "type": "function (address,address,bytes32) view external returns (bytes32)" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 222, - "type": "contract EthereumClaimsRegistryInterface", - "value": "registry" - }, - "id": 923, - "name": "Identifier", - "src": "7467:8:3" - } - ], - "id": 924, - "name": "MemberAccess", - "src": "7467:17:3" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "address", - "type_conversion": true - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1418", - "typeString": "contract ProofOfPhysicalAddress" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "type": "type(address)", - "value": "address" - }, - "id": 925, - "name": "ElementaryTypeNameExpression", - "src": "7502:7:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1447, - "type": "contract ProofOfPhysicalAddress", - "value": "this" - }, - "id": 926, - "name": "Identifier", - "src": "7510:4:3" - } - ], - "id": 927, - "name": "FunctionCall", - "src": "7502:13:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 888, - "type": "address", - "value": "wallet" - }, - "id": 928, - "name": "Identifier", - "src": "7533:6:3" - }, { "attributes": { "argumentTypes": null, @@ -10904,9 +10087,9 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "member_name": "keccakIdentifier", - "referencedDeclaration": 238, - "type": "bytes32" + "member_name": "physicalAddresses", + "referencedDeclaration": 210, + "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ { @@ -10916,68 +10099,22 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref" + "type": "struct ProofOfPhysicalAddress.User storage ref" }, "children": [ { "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "member_name": "physicalAddresses", - "referencedDeclaration": 267, - "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "type": "struct ProofOfPhysicalAddress.User storage ref" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 272, - "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", - "value": "users" - }, - "id": 929, - "name": "Identifier", - "src": "7557:5:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 888, - "type": "address", - "value": "wallet" - }, - "id": 930, - "name": "Identifier", - "src": "7563:6:3" - } - ], - "id": 931, - "name": "IndexAccess", - "src": "7557:13:3" - } - ], - "id": 932, - "name": "MemberAccess", - "src": "7557:31:3" + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 215, + "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", + "value": "users" + }, + "id": 836, + "name": "Identifier", + "src": "7488:5:2" }, { "attributes": { @@ -10985,33 +10122,61 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 890, - "type": "uint256", - "value": "addressIndex" + "referencedDeclaration": 793, + "type": "address", + "value": "wallet" }, - "id": 933, + "id": 837, "name": "Identifier", - "src": "7589:12:3" + "src": "7494:6:2" } ], - "id": 934, + "id": 838, "name": "IndexAccess", - "src": "7557:45:3" + "src": "7488:13:2" } ], - "id": 935, + "id": 839, "name": "MemberAccess", - "src": "7557:62:3" + "src": "7488:31:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 795, + "type": "uint256", + "value": "addressIndex" + }, + "id": 840, + "name": "Identifier", + "src": "7520:12:2" } ], - "id": 936, - "name": "FunctionCall", - "src": "7467:153:3" + "id": 841, + "name": "IndexAccess", + "src": "7488:45:2" } ], - "id": 937, - "name": "FunctionCall", - "src": "7427:207:3" + "id": 842, + "name": "MemberAccess", + "src": "7488:59:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 810, + "type": "uint256", + "value": "_confirmationBlock" + }, + "id": 843, + "name": "Identifier", + "src": "7561:18:2" }, { "attributes": { @@ -11021,7 +10186,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 238, + "referencedDeclaration": 181, "type": "bytes32" }, "children": [ @@ -11043,7 +10208,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -11063,13 +10228,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 938, + "id": 844, "name": "Identifier", - "src": "7648:5:3" + "src": "7593:5:2" }, { "attributes": { @@ -11077,23 +10242,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 888, + "referencedDeclaration": 793, "type": "address", "value": "wallet" }, - "id": 939, + "id": 845, "name": "Identifier", - "src": "7654:6:3" + "src": "7599:6:2" } ], - "id": 940, + "id": 846, "name": "IndexAccess", - "src": "7648:13:3" + "src": "7593:13:2" } ], - "id": 941, + "id": 847, "name": "MemberAccess", - "src": "7648:31:3" + "src": "7593:31:2" }, { "attributes": { @@ -11101,43 +10266,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 890, + "referencedDeclaration": 795, "type": "uint256", "value": "addressIndex" }, - "id": 942, + "id": 848, "name": "Identifier", - "src": "7680:12:3" + "src": "7625:12:2" } ], - "id": 943, + "id": 849, "name": "IndexAccess", - "src": "7648:45:3" + "src": "7593:45:2" } ], - "id": 944, + "id": 850, "name": "MemberAccess", - "src": "7648:62:3" + "src": "7593:62:2" } ], - "id": 945, + "id": 851, "name": "TupleExpression", - "src": "7276:444:3" + "src": "7410:255:2" } ], - "id": 946, + "id": 852, "name": "Return", - "src": "7269:451:3" + "src": "7403:262:2" } ], - "id": 947, + "id": 853, "name": "Block", - "src": "7222:505:3" + "src": "7163:509:2" } ], - "id": 948, + "id": 854, "name": "FunctionDefinition", - "src": "7003:724:3" + "src": "6920:752:2" }, { "attributes": { @@ -11149,7 +10314,7 @@ ], "name": "registerAddress", "payable": true, - "scope": 1418, + "scope": 1314, "stateMutability": "payable", "superFunction": null, "visibility": "public" @@ -11161,7 +10326,7 @@ "attributes": { "constant": false, "name": "name", - "scope": 1177, + "scope": 1083, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -11174,20 +10339,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 949, + "id": 855, "name": "ElementaryTypeName", - "src": "7788:6:3" + "src": "7733:6:2" } ], - "id": 950, + "id": 856, "name": "VariableDeclaration", - "src": "7788:11:3" + "src": "7733:11:2" }, { "attributes": { "constant": false, "name": "country", - "scope": 1177, + "scope": 1083, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -11200,20 +10365,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 951, + "id": 857, "name": "ElementaryTypeName", - "src": "7809:6:3" + "src": "7754:6:2" } ], - "id": 952, + "id": 858, "name": "VariableDeclaration", - "src": "7809:14:3" + "src": "7754:14:2" }, { "attributes": { "constant": false, "name": "state", - "scope": 1177, + "scope": 1083, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -11226,20 +10391,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 953, + "id": 859, "name": "ElementaryTypeName", - "src": "7825:6:3" + "src": "7770:6:2" } ], - "id": 954, + "id": 860, "name": "VariableDeclaration", - "src": "7825:12:3" + "src": "7770:12:2" }, { "attributes": { "constant": false, "name": "city", - "scope": 1177, + "scope": 1083, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -11252,20 +10417,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 955, + "id": 861, "name": "ElementaryTypeName", - "src": "7839:6:3" + "src": "7784:6:2" } ], - "id": 956, + "id": 862, "name": "VariableDeclaration", - "src": "7839:11:3" + "src": "7784:11:2" }, { "attributes": { "constant": false, "name": "location", - "scope": 1177, + "scope": 1083, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -11278,20 +10443,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 957, + "id": 863, "name": "ElementaryTypeName", - "src": "7852:6:3" + "src": "7797:6:2" } ], - "id": 958, + "id": 864, "name": "VariableDeclaration", - "src": "7852:15:3" + "src": "7797:15:2" }, { "attributes": { "constant": false, "name": "zip", - "scope": 1177, + "scope": 1083, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -11304,20 +10469,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 959, + "id": 865, "name": "ElementaryTypeName", - "src": "7869:6:3" + "src": "7814:6:2" } ], - "id": 960, + "id": 866, "name": "VariableDeclaration", - "src": "7869:10:3" + "src": "7814:10:2" }, { "attributes": { "constant": false, "name": "priceWei", - "scope": 1177, + "scope": 1083, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -11330,20 +10495,20 @@ "name": "uint256", "type": "uint256" }, - "id": 961, + "id": 867, "name": "ElementaryTypeName", - "src": "7889:7:3" + "src": "7834:7:2" } ], - "id": 962, + "id": 868, "name": "VariableDeclaration", - "src": "7889:16:3" + "src": "7834:16:2" }, { "attributes": { "constant": false, "name": "confirmationCodeSha3", - "scope": 1177, + "scope": 1083, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -11356,20 +10521,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 963, + "id": 869, "name": "ElementaryTypeName", - "src": "7915:7:3" + "src": "7860:7:2" } ], - "id": 964, + "id": 870, "name": "VariableDeclaration", - "src": "7915:28:3" + "src": "7860:28:2" }, { "attributes": { "constant": false, "name": "sigV", - "scope": 1177, + "scope": 1083, "stateVariable": false, "storageLocation": "default", "type": "uint8", @@ -11382,20 +10547,20 @@ "name": "uint8", "type": "uint8" }, - "id": 965, + "id": 871, "name": "ElementaryTypeName", - "src": "7945:5:3" + "src": "7890:5:2" } ], - "id": 966, + "id": 872, "name": "VariableDeclaration", - "src": "7945:10:3" + "src": "7890:10:2" }, { "attributes": { "constant": false, "name": "sigR", - "scope": 1177, + "scope": 1083, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -11408,20 +10573,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 967, + "id": 873, "name": "ElementaryTypeName", - "src": "7957:7:3" + "src": "7902:7:2" } ], - "id": 968, + "id": 874, "name": "VariableDeclaration", - "src": "7957:12:3" + "src": "7902:12:2" }, { "attributes": { "constant": false, "name": "sigS", - "scope": 1177, + "scope": 1083, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -11434,19 +10599,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 969, + "id": 875, "name": "ElementaryTypeName", - "src": "7971:7:3" + "src": "7916:7:2" } ], - "id": 970, + "id": 876, "name": "VariableDeclaration", - "src": "7971:12:3" + "src": "7916:12:2" } ], - "id": 971, + "id": 877, "name": "ParameterList", - "src": "7778:206:3" + "src": "7723:206:2" }, { "attributes": { @@ -11455,9 +10620,9 @@ ] }, "children": [], - "id": 972, + "id": 878, "name": "ParameterList", - "src": "8008:0:3" + "src": "7953:0:2" }, { "children": [ @@ -11489,13 +10654,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 973, + "id": 879, "name": "Identifier", - "src": "8018:7:3" + "src": "7963:7:2" }, { "attributes": { @@ -11554,9 +10719,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 974, + "id": 880, "name": "ElementaryTypeNameExpression", - "src": "8026:5:3" + "src": "7971:5:2" }, { "attributes": { @@ -11564,23 +10729,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 950, + "referencedDeclaration": 856, "type": "string memory", "value": "name" }, - "id": 975, + "id": 881, "name": "Identifier", - "src": "8032:4:3" + "src": "7977:4:2" } ], - "id": 976, + "id": 882, "name": "FunctionCall", - "src": "8026:11:3" + "src": "7971:11:2" } ], - "id": 977, + "id": 883, "name": "MemberAccess", - "src": "8026:18:3" + "src": "7971:18:2" }, { "attributes": { @@ -11595,24 +10760,24 @@ "type": "int_const 0", "value": "0" }, - "id": 978, + "id": 884, "name": "Literal", - "src": "8047:1:3" + "src": "7992:1:2" } ], - "id": 979, + "id": 885, "name": "BinaryOperation", - "src": "8026:22:3" + "src": "7971:22:2" } ], - "id": 980, + "id": 886, "name": "FunctionCall", - "src": "8018:31:3" + "src": "7963:31:2" } ], - "id": 981, + "id": 887, "name": "ExpressionStatement", - "src": "8018:31:3" + "src": "7963:31:2" }, { "children": [ @@ -11642,13 +10807,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 982, + "id": 888, "name": "Identifier", - "src": "8059:7:3" + "src": "8004:7:2" }, { "attributes": { @@ -11707,9 +10872,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 983, + "id": 889, "name": "ElementaryTypeNameExpression", - "src": "8067:5:3" + "src": "8012:5:2" }, { "attributes": { @@ -11717,23 +10882,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 952, + "referencedDeclaration": 858, "type": "string memory", "value": "country" }, - "id": 984, + "id": 890, "name": "Identifier", - "src": "8073:7:3" + "src": "8018:7:2" } ], - "id": 985, + "id": 891, "name": "FunctionCall", - "src": "8067:14:3" + "src": "8012:14:2" } ], - "id": 986, + "id": 892, "name": "MemberAccess", - "src": "8067:21:3" + "src": "8012:21:2" }, { "attributes": { @@ -11748,24 +10913,24 @@ "type": "int_const 0", "value": "0" }, - "id": 987, + "id": 893, "name": "Literal", - "src": "8091:1:3" + "src": "8036:1:2" } ], - "id": 988, + "id": 894, "name": "BinaryOperation", - "src": "8067:25:3" + "src": "8012:25:2" } ], - "id": 989, + "id": 895, "name": "FunctionCall", - "src": "8059:34:3" + "src": "8004:34:2" } ], - "id": 990, + "id": 896, "name": "ExpressionStatement", - "src": "8059:34:3" + "src": "8004:34:2" }, { "children": [ @@ -11795,13 +10960,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 991, + "id": 897, "name": "Identifier", - "src": "8103:7:3" + "src": "8048:7:2" }, { "attributes": { @@ -11860,9 +11025,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 992, + "id": 898, "name": "ElementaryTypeNameExpression", - "src": "8111:5:3" + "src": "8056:5:2" }, { "attributes": { @@ -11870,23 +11035,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 954, + "referencedDeclaration": 860, "type": "string memory", "value": "state" }, - "id": 993, + "id": 899, "name": "Identifier", - "src": "8117:5:3" + "src": "8062:5:2" } ], - "id": 994, + "id": 900, "name": "FunctionCall", - "src": "8111:12:3" + "src": "8056:12:2" } ], - "id": 995, + "id": 901, "name": "MemberAccess", - "src": "8111:19:3" + "src": "8056:19:2" }, { "attributes": { @@ -11901,24 +11066,24 @@ "type": "int_const 0", "value": "0" }, - "id": 996, + "id": 902, "name": "Literal", - "src": "8133:1:3" + "src": "8078:1:2" } ], - "id": 997, + "id": 903, "name": "BinaryOperation", - "src": "8111:23:3" + "src": "8056:23:2" } ], - "id": 998, + "id": 904, "name": "FunctionCall", - "src": "8103:32:3" + "src": "8048:32:2" } ], - "id": 999, + "id": 905, "name": "ExpressionStatement", - "src": "8103:32:3" + "src": "8048:32:2" }, { "children": [ @@ -11948,13 +11113,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 1000, + "id": 906, "name": "Identifier", - "src": "8145:7:3" + "src": "8090:7:2" }, { "attributes": { @@ -12013,9 +11178,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 1001, + "id": 907, "name": "ElementaryTypeNameExpression", - "src": "8153:5:3" + "src": "8098:5:2" }, { "attributes": { @@ -12023,23 +11188,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 956, + "referencedDeclaration": 862, "type": "string memory", "value": "city" }, - "id": 1002, + "id": 908, "name": "Identifier", - "src": "8159:4:3" + "src": "8104:4:2" } ], - "id": 1003, + "id": 909, "name": "FunctionCall", - "src": "8153:11:3" + "src": "8098:11:2" } ], - "id": 1004, + "id": 910, "name": "MemberAccess", - "src": "8153:18:3" + "src": "8098:18:2" }, { "attributes": { @@ -12054,24 +11219,24 @@ "type": "int_const 0", "value": "0" }, - "id": 1005, + "id": 911, "name": "Literal", - "src": "8174:1:3" + "src": "8119:1:2" } ], - "id": 1006, + "id": 912, "name": "BinaryOperation", - "src": "8153:22:3" + "src": "8098:22:2" } ], - "id": 1007, + "id": 913, "name": "FunctionCall", - "src": "8145:31:3" + "src": "8090:31:2" } ], - "id": 1008, + "id": 914, "name": "ExpressionStatement", - "src": "8145:31:3" + "src": "8090:31:2" }, { "children": [ @@ -12101,13 +11266,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 1009, + "id": 915, "name": "Identifier", - "src": "8186:7:3" + "src": "8131:7:2" }, { "attributes": { @@ -12166,9 +11331,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 1010, + "id": 916, "name": "ElementaryTypeNameExpression", - "src": "8194:5:3" + "src": "8139:5:2" }, { "attributes": { @@ -12176,23 +11341,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 958, + "referencedDeclaration": 864, "type": "string memory", "value": "location" }, - "id": 1011, + "id": 917, "name": "Identifier", - "src": "8200:8:3" + "src": "8145:8:2" } ], - "id": 1012, + "id": 918, "name": "FunctionCall", - "src": "8194:15:3" + "src": "8139:15:2" } ], - "id": 1013, + "id": 919, "name": "MemberAccess", - "src": "8194:22:3" + "src": "8139:22:2" }, { "attributes": { @@ -12207,24 +11372,24 @@ "type": "int_const 0", "value": "0" }, - "id": 1014, + "id": 920, "name": "Literal", - "src": "8219:1:3" + "src": "8164:1:2" } ], - "id": 1015, + "id": 921, "name": "BinaryOperation", - "src": "8194:26:3" + "src": "8139:26:2" } ], - "id": 1016, + "id": 922, "name": "FunctionCall", - "src": "8186:35:3" + "src": "8131:35:2" } ], - "id": 1017, + "id": 923, "name": "ExpressionStatement", - "src": "8186:35:3" + "src": "8131:35:2" }, { "children": [ @@ -12254,13 +11419,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 1018, + "id": 924, "name": "Identifier", - "src": "8231:7:3" + "src": "8176:7:2" }, { "attributes": { @@ -12319,9 +11484,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 1019, + "id": 925, "name": "ElementaryTypeNameExpression", - "src": "8239:5:3" + "src": "8184:5:2" }, { "attributes": { @@ -12329,23 +11494,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 960, + "referencedDeclaration": 866, "type": "string memory", "value": "zip" }, - "id": 1020, + "id": 926, "name": "Identifier", - "src": "8245:3:3" + "src": "8190:3:2" } ], - "id": 1021, + "id": 927, "name": "FunctionCall", - "src": "8239:10:3" + "src": "8184:10:2" } ], - "id": 1022, + "id": 928, "name": "MemberAccess", - "src": "8239:17:3" + "src": "8184:17:2" }, { "attributes": { @@ -12360,24 +11525,24 @@ "type": "int_const 0", "value": "0" }, - "id": 1023, + "id": 929, "name": "Literal", - "src": "8259:1:3" + "src": "8204:1:2" } ], - "id": 1024, + "id": 930, "name": "BinaryOperation", - "src": "8239:21:3" + "src": "8184:21:2" } ], - "id": 1025, + "id": 931, "name": "FunctionCall", - "src": "8231:30:3" + "src": "8176:30:2" } ], - "id": 1026, + "id": 932, "name": "ExpressionStatement", - "src": "8231:30:3" + "src": "8176:30:2" }, { "children": [ @@ -12407,13 +11572,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 1027, + "id": 933, "name": "Identifier", - "src": "8271:7:3" + "src": "8216:7:2" }, { "attributes": { @@ -12448,18 +11613,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1028, + "id": 934, "name": "Identifier", - "src": "8279:3:3" + "src": "8224:3:2" } ], - "id": 1029, + "id": 935, "name": "MemberAccess", - "src": "8279:9:3" + "src": "8224:9:2" }, { "attributes": { @@ -12467,33 +11632,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 962, + "referencedDeclaration": 868, "type": "uint256", "value": "priceWei" }, - "id": 1030, + "id": 936, "name": "Identifier", - "src": "8292:8:3" + "src": "8237:8:2" } ], - "id": 1031, + "id": 937, "name": "BinaryOperation", - "src": "8279:21:3" + "src": "8224:21:2" } ], - "id": 1032, + "id": 938, "name": "FunctionCall", - "src": "8271:30:3" + "src": "8216:30:2" } ], - "id": 1033, + "id": 939, "name": "ExpressionStatement", - "src": "8271:30:3" + "src": "8216:30:2" }, { "attributes": { "assignments": [ - 1035 + 941 ] }, "children": [ @@ -12501,7 +11666,7 @@ "attributes": { "constant": false, "name": "data", - "scope": 1177, + "scope": 1083, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -12514,14 +11679,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1034, + "id": 940, "name": "ElementaryTypeName", - "src": "8312:7:3" + "src": "8257:7:2" } ], - "id": 1035, + "id": 941, "name": "VariableDeclaration", - "src": "8312:12:3" + "src": "8257:12:2" }, { "attributes": { @@ -12581,13 +11746,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1424, + "referencedDeclaration": 1320, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1036, + "id": 942, "name": "Identifier", - "src": "8327:9:3" + "src": "8272:9:2" }, { "attributes": { @@ -12607,18 +11772,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1037, + "id": 943, "name": "Identifier", - "src": "8350:3:3" + "src": "8295:3:2" } ], - "id": 1038, + "id": 944, "name": "MemberAccess", - "src": "8350:10:3" + "src": "8295:10:2" }, { "attributes": { @@ -12626,13 +11791,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 950, + "referencedDeclaration": 856, "type": "string memory", "value": "name" }, - "id": 1039, + "id": 945, "name": "Identifier", - "src": "8374:4:3" + "src": "8319:4:2" }, { "attributes": { @@ -12640,13 +11805,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 952, + "referencedDeclaration": 858, "type": "string memory", "value": "country" }, - "id": 1040, + "id": 946, "name": "Identifier", - "src": "8392:7:3" + "src": "8337:7:2" }, { "attributes": { @@ -12654,13 +11819,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 954, + "referencedDeclaration": 860, "type": "string memory", "value": "state" }, - "id": 1041, + "id": 947, "name": "Identifier", - "src": "8413:5:3" + "src": "8358:5:2" }, { "attributes": { @@ -12668,13 +11833,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 956, + "referencedDeclaration": 862, "type": "string memory", "value": "city" }, - "id": 1042, + "id": 948, "name": "Identifier", - "src": "8432:4:3" + "src": "8377:4:2" }, { "attributes": { @@ -12682,13 +11847,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 958, + "referencedDeclaration": 864, "type": "string memory", "value": "location" }, - "id": 1043, + "id": 949, "name": "Identifier", - "src": "8450:8:3" + "src": "8395:8:2" }, { "attributes": { @@ -12696,13 +11861,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 960, + "referencedDeclaration": 866, "type": "string memory", "value": "zip" }, - "id": 1044, + "id": 950, "name": "Identifier", - "src": "8472:3:3" + "src": "8417:3:2" }, { "attributes": { @@ -12710,13 +11875,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 962, + "referencedDeclaration": 868, "type": "uint256", "value": "priceWei" }, - "id": 1045, + "id": 951, "name": "Identifier", - "src": "8489:8:3" + "src": "8434:8:2" }, { "attributes": { @@ -12724,23 +11889,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 964, + "referencedDeclaration": 870, "type": "bytes32", "value": "confirmationCodeSha3" }, - "id": 1046, + "id": 952, "name": "Identifier", - "src": "8511:20:3" + "src": "8456:20:2" } ], - "id": 1047, + "id": 953, "name": "FunctionCall", - "src": "8327:214:3" + "src": "8272:214:2" } ], - "id": 1048, + "id": 954, "name": "VariableDeclarationStatement", - "src": "8312:229:3" + "src": "8257:229:2" }, { "children": [ @@ -12770,13 +11935,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 1049, + "id": 955, "name": "Identifier", - "src": "8551:7:3" + "src": "8496:7:2" }, { "attributes": { @@ -12816,13 +11981,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 313, + "referencedDeclaration": 279, "type": "function (bytes32,uint8,bytes32,bytes32) view returns (bool)", "value": "signerIsValid" }, - "id": 1050, + "id": 956, "name": "Identifier", - "src": "8559:13:3" + "src": "8504:13:2" }, { "attributes": { @@ -12830,13 +11995,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1035, + "referencedDeclaration": 941, "type": "bytes32", "value": "data" }, - "id": 1051, + "id": 957, "name": "Identifier", - "src": "8573:4:3" + "src": "8518:4:2" }, { "attributes": { @@ -12844,13 +12009,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 966, + "referencedDeclaration": 872, "type": "uint8", "value": "sigV" }, - "id": 1052, + "id": 958, "name": "Identifier", - "src": "8579:4:3" + "src": "8524:4:2" }, { "attributes": { @@ -12858,13 +12023,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 968, + "referencedDeclaration": 874, "type": "bytes32", "value": "sigR" }, - "id": 1053, + "id": 959, "name": "Identifier", - "src": "8585:4:3" + "src": "8530:4:2" }, { "attributes": { @@ -12872,28 +12037,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 970, + "referencedDeclaration": 876, "type": "bytes32", "value": "sigS" }, - "id": 1054, + "id": 960, "name": "Identifier", - "src": "8591:4:3" + "src": "8536:4:2" } ], - "id": 1055, + "id": 961, "name": "FunctionCall", - "src": "8559:37:3" + "src": "8504:37:2" } ], - "id": 1056, + "id": 962, "name": "FunctionCall", - "src": "8551:46:3" + "src": "8496:46:2" } ], - "id": 1057, + "id": 963, "name": "ExpressionStatement", - "src": "8551:46:3" + "src": "8496:46:2" }, { "children": [ @@ -12923,13 +12088,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 424, + "referencedDeclaration": 368, "type": "function (address) view returns (bool)", "value": "userExists" }, - "id": 1058, + "id": 964, "name": "Identifier", - "src": "8612:10:3" + "src": "8557:10:2" }, { "attributes": { @@ -12949,23 +12114,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1059, + "id": 965, "name": "Identifier", - "src": "8623:3:3" + "src": "8568:3:2" } ], - "id": 1060, + "id": 966, "name": "MemberAccess", - "src": "8623:10:3" + "src": "8568:10:2" } ], - "id": 1061, + "id": 967, "name": "FunctionCall", - "src": "8612:22:3" + "src": "8557:22:2" }, { "children": [ @@ -12981,7 +12146,7 @@ "attributes": { "constant": false, "name": "found", - "scope": 1177, + "scope": 1083, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -12994,19 +12159,19 @@ "name": "bool", "type": "bool" }, - "id": 1062, + "id": 968, "name": "ElementaryTypeName", - "src": "8709:4:3" + "src": "8654:4:2" } ], - "id": 1063, + "id": 969, "name": "VariableDeclaration", - "src": "8709:10:3" + "src": "8654:10:2" } ], - "id": 1064, + "id": 970, "name": "VariableDeclarationStatement", - "src": "8709:10:3" + "src": "8654:10:2" }, { "children": [ @@ -13038,18 +12203,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1063, + "referencedDeclaration": 969, "type": "bool", "value": "found" }, - "id": 1065, + "id": 971, "name": "Identifier", - "src": "8734:5:3" + "src": "8679:5:2" } ], - "id": 1066, + "id": 972, "name": "TupleExpression", - "src": "8733:11:3" + "src": "8678:11:2" }, { "attributes": { @@ -13097,13 +12262,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 682, + "referencedDeclaration": 611, "type": "function (address,string memory,string memory,string memory,string memory,string memory) view returns (bool,uint256,bool)", "value": "userAddressByAddress" }, - "id": 1067, + "id": 973, "name": "Identifier", - "src": "8747:20:3" + "src": "8692:20:2" }, { "attributes": { @@ -13123,18 +12288,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1068, + "id": 974, "name": "Identifier", - "src": "8768:3:3" + "src": "8713:3:2" } ], - "id": 1069, + "id": 975, "name": "MemberAccess", - "src": "8768:10:3" + "src": "8713:10:2" }, { "attributes": { @@ -13142,13 +12307,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 952, + "referencedDeclaration": 858, "type": "string memory", "value": "country" }, - "id": 1070, + "id": 976, "name": "Identifier", - "src": "8780:7:3" + "src": "8725:7:2" }, { "attributes": { @@ -13156,13 +12321,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 954, + "referencedDeclaration": 860, "type": "string memory", "value": "state" }, - "id": 1071, + "id": 977, "name": "Identifier", - "src": "8789:5:3" + "src": "8734:5:2" }, { "attributes": { @@ -13170,13 +12335,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 956, + "referencedDeclaration": 862, "type": "string memory", "value": "city" }, - "id": 1072, + "id": 978, "name": "Identifier", - "src": "8796:4:3" + "src": "8741:4:2" }, { "attributes": { @@ -13184,13 +12349,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 958, + "referencedDeclaration": 864, "type": "string memory", "value": "location" }, - "id": 1073, + "id": 979, "name": "Identifier", - "src": "8802:8:3" + "src": "8747:8:2" }, { "attributes": { @@ -13198,28 +12363,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 960, + "referencedDeclaration": 866, "type": "string memory", "value": "zip" }, - "id": 1074, + "id": 980, "name": "Identifier", - "src": "8812:3:3" + "src": "8757:3:2" } ], - "id": 1075, + "id": 981, "name": "FunctionCall", - "src": "8747:69:3" + "src": "8692:69:2" } ], - "id": 1076, + "id": 982, "name": "Assignment", - "src": "8733:83:3" + "src": "8678:83:2" } ], - "id": 1077, + "id": 983, "name": "ExpressionStatement", - "src": "8733:83:3" + "src": "8678:83:2" }, { "children": [ @@ -13249,13 +12414,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 1078, + "id": 984, "name": "Identifier", - "src": "8831:7:3" + "src": "8776:7:2" }, { "attributes": { @@ -13275,33 +12440,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1063, + "referencedDeclaration": 969, "type": "bool", "value": "found" }, - "id": 1079, + "id": 985, "name": "Identifier", - "src": "8840:5:3" + "src": "8785:5:2" } ], - "id": 1080, + "id": 986, "name": "UnaryOperation", - "src": "8839:6:3" + "src": "8784:6:2" } ], - "id": 1081, + "id": 987, "name": "FunctionCall", - "src": "8831:15:3" + "src": "8776:15:2" } ], - "id": 1082, + "id": 988, "name": "ExpressionStatement", - "src": "8831:15:3" + "src": "8776:15:2" } ], - "id": 1083, + "id": 989, "name": "Block", - "src": "8636:221:3" + "src": "8581:221:2" }, { "children": [ @@ -13326,7 +12491,7 @@ "isPure": false, "lValueRequested": true, "member_name": "creationBlock", - "referencedDeclaration": 264, + "referencedDeclaration": 207, "type": "uint256" }, "children": [ @@ -13346,13 +12511,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1084, + "id": 990, "name": "Identifier", - "src": "8901:5:3" + "src": "8846:5:2" }, { "attributes": { @@ -13372,28 +12537,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1085, + "id": 991, "name": "Identifier", - "src": "8907:3:3" + "src": "8852:3:2" } ], - "id": 1086, + "id": 992, "name": "MemberAccess", - "src": "8907:10:3" + "src": "8852:10:2" } ], - "id": 1087, + "id": 993, "name": "IndexAccess", - "src": "8901:17:3" + "src": "8846:17:2" } ], - "id": 1088, + "id": 994, "name": "MemberAccess", - "src": "8901:31:3" + "src": "8846:31:2" }, { "attributes": { @@ -13413,28 +12578,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1422, + "referencedDeclaration": 1318, "type": "block", "value": "block" }, - "id": 1089, + "id": 995, "name": "Identifier", - "src": "8935:5:3" + "src": "8880:5:2" } ], - "id": 1090, + "id": 996, "name": "MemberAccess", - "src": "8935:12:3" + "src": "8880:12:2" } ], - "id": 1091, + "id": 997, "name": "Assignment", - "src": "8901:46:3" + "src": "8846:46:2" } ], - "id": 1092, + "id": 998, "name": "ExpressionStatement", - "src": "8901:46:3" + "src": "8846:46:2" }, { "children": [ @@ -13455,13 +12620,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 274, + "referencedDeclaration": 217, "type": "uint64", "value": "totalUsers" }, - "id": 1093, + "id": 999, "name": "Identifier", - "src": "8962:10:3" + "src": "8907:10:2" }, { "attributes": { @@ -13476,29 +12641,29 @@ "type": "int_const 1", "value": "1" }, - "id": 1094, + "id": 1000, "name": "Literal", - "src": "8976:1:3" + "src": "8921:1:2" } ], - "id": 1095, + "id": 1001, "name": "Assignment", - "src": "8962:15:3" + "src": "8907:15:2" } ], - "id": 1096, + "id": 1002, "name": "ExpressionStatement", - "src": "8962:15:3" + "src": "8907:15:2" } ], - "id": 1097, + "id": 1003, "name": "Block", - "src": "8863:125:3" + "src": "8808:125:2" } ], - "id": 1098, + "id": 1004, "name": "IfStatement", - "src": "8608:380:3" + "src": "8553:380:2" }, { "attributes": { @@ -13512,7 +12677,7 @@ "attributes": { "constant": false, "name": "pa", - "scope": 1177, + "scope": 1083, "stateVariable": false, "storageLocation": "memory", "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", @@ -13524,22 +12689,22 @@ "attributes": { "contractScope": null, "name": "PhysicalAddress", - "referencedDeclaration": 241, + "referencedDeclaration": 184, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage pointer" }, - "id": 1099, + "id": 1005, "name": "UserDefinedTypeName", - "src": "8998:15:3" + "src": "8943:15:2" } ], - "id": 1100, + "id": 1006, "name": "VariableDeclaration", - "src": "8998:25:3" + "src": "8943:25:2" } ], - "id": 1101, + "id": 1007, "name": "VariableDeclarationStatement", - "src": "8998:25:3" + "src": "8943:25:2" }, { "children": [ @@ -13562,7 +12727,7 @@ "isPure": false, "lValueRequested": true, "member_name": "name", - "referencedDeclaration": 224, + "referencedDeclaration": 167, "type": "string memory" }, "children": [ @@ -13572,18 +12737,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1100, + "referencedDeclaration": 1006, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1102, + "id": 1008, "name": "Identifier", - "src": "9034:2:3" + "src": "8979:2:2" } ], - "id": 1104, + "id": 1010, "name": "MemberAccess", - "src": "9034:7:3" + "src": "8979:7:2" }, { "attributes": { @@ -13591,23 +12756,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 950, + "referencedDeclaration": 856, "type": "string memory", "value": "name" }, - "id": 1105, + "id": 1011, "name": "Identifier", - "src": "9044:4:3" + "src": "8989:4:2" } ], - "id": 1106, + "id": 1012, "name": "Assignment", - "src": "9034:14:3" + "src": "8979:14:2" } ], - "id": 1107, + "id": 1013, "name": "ExpressionStatement", - "src": "9034:14:3" + "src": "8979:14:2" }, { "children": [ @@ -13630,7 +12795,7 @@ "isPure": false, "lValueRequested": true, "member_name": "country", - "referencedDeclaration": 226, + "referencedDeclaration": 169, "type": "string memory" }, "children": [ @@ -13640,18 +12805,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1100, + "referencedDeclaration": 1006, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1108, + "id": 1014, "name": "Identifier", - "src": "9058:2:3" + "src": "9003:2:2" } ], - "id": 1110, + "id": 1016, "name": "MemberAccess", - "src": "9058:10:3" + "src": "9003:10:2" }, { "attributes": { @@ -13659,23 +12824,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 952, + "referencedDeclaration": 858, "type": "string memory", "value": "country" }, - "id": 1111, + "id": 1017, "name": "Identifier", - "src": "9071:7:3" + "src": "9016:7:2" } ], - "id": 1112, + "id": 1018, "name": "Assignment", - "src": "9058:20:3" + "src": "9003:20:2" } ], - "id": 1113, + "id": 1019, "name": "ExpressionStatement", - "src": "9058:20:3" + "src": "9003:20:2" }, { "children": [ @@ -13698,7 +12863,7 @@ "isPure": false, "lValueRequested": true, "member_name": "state", - "referencedDeclaration": 228, + "referencedDeclaration": 171, "type": "string memory" }, "children": [ @@ -13708,18 +12873,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1100, + "referencedDeclaration": 1006, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1114, + "id": 1020, "name": "Identifier", - "src": "9088:2:3" + "src": "9033:2:2" } ], - "id": 1116, + "id": 1022, "name": "MemberAccess", - "src": "9088:8:3" + "src": "9033:8:2" }, { "attributes": { @@ -13727,23 +12892,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 954, + "referencedDeclaration": 860, "type": "string memory", "value": "state" }, - "id": 1117, + "id": 1023, "name": "Identifier", - "src": "9099:5:3" + "src": "9044:5:2" } ], - "id": 1118, + "id": 1024, "name": "Assignment", - "src": "9088:16:3" + "src": "9033:16:2" } ], - "id": 1119, + "id": 1025, "name": "ExpressionStatement", - "src": "9088:16:3" + "src": "9033:16:2" }, { "children": [ @@ -13766,7 +12931,7 @@ "isPure": false, "lValueRequested": true, "member_name": "city", - "referencedDeclaration": 230, + "referencedDeclaration": 173, "type": "string memory" }, "children": [ @@ -13776,18 +12941,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1100, + "referencedDeclaration": 1006, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1120, + "id": 1026, "name": "Identifier", - "src": "9114:2:3" + "src": "9059:2:2" } ], - "id": 1122, + "id": 1028, "name": "MemberAccess", - "src": "9114:7:3" + "src": "9059:7:2" }, { "attributes": { @@ -13795,23 +12960,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 956, + "referencedDeclaration": 862, "type": "string memory", "value": "city" }, - "id": 1123, + "id": 1029, "name": "Identifier", - "src": "9124:4:3" + "src": "9069:4:2" } ], - "id": 1124, + "id": 1030, "name": "Assignment", - "src": "9114:14:3" + "src": "9059:14:2" } ], - "id": 1125, + "id": 1031, "name": "ExpressionStatement", - "src": "9114:14:3" + "src": "9059:14:2" }, { "children": [ @@ -13834,7 +12999,7 @@ "isPure": false, "lValueRequested": true, "member_name": "location", - "referencedDeclaration": 232, + "referencedDeclaration": 175, "type": "string memory" }, "children": [ @@ -13844,18 +13009,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1100, + "referencedDeclaration": 1006, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1126, + "id": 1032, "name": "Identifier", - "src": "9138:2:3" + "src": "9083:2:2" } ], - "id": 1128, + "id": 1034, "name": "MemberAccess", - "src": "9138:11:3" + "src": "9083:11:2" }, { "attributes": { @@ -13863,23 +13028,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 958, + "referencedDeclaration": 864, "type": "string memory", "value": "location" }, - "id": 1129, + "id": 1035, "name": "Identifier", - "src": "9152:8:3" + "src": "9097:8:2" } ], - "id": 1130, + "id": 1036, "name": "Assignment", - "src": "9138:22:3" + "src": "9083:22:2" } ], - "id": 1131, + "id": 1037, "name": "ExpressionStatement", - "src": "9138:22:3" + "src": "9083:22:2" }, { "children": [ @@ -13902,7 +13067,7 @@ "isPure": false, "lValueRequested": true, "member_name": "zip", - "referencedDeclaration": 234, + "referencedDeclaration": 177, "type": "string memory" }, "children": [ @@ -13912,18 +13077,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1100, + "referencedDeclaration": 1006, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1132, + "id": 1038, "name": "Identifier", - "src": "9170:2:3" + "src": "9115:2:2" } ], - "id": 1134, + "id": 1040, "name": "MemberAccess", - "src": "9170:6:3" + "src": "9115:6:2" }, { "attributes": { @@ -13931,23 +13096,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 960, + "referencedDeclaration": 866, "type": "string memory", "value": "zip" }, - "id": 1135, + "id": 1041, "name": "Identifier", - "src": "9179:3:3" + "src": "9124:3:2" } ], - "id": 1136, + "id": 1042, "name": "Assignment", - "src": "9170:12:3" + "src": "9115:12:2" } ], - "id": 1137, + "id": 1043, "name": "ExpressionStatement", - "src": "9170:12:3" + "src": "9115:12:2" }, { "children": [ @@ -13970,7 +13135,7 @@ "isPure": false, "lValueRequested": true, "member_name": "creationBlock", - "referencedDeclaration": 236, + "referencedDeclaration": 179, "type": "uint256" }, "children": [ @@ -13980,18 +13145,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1100, + "referencedDeclaration": 1006, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1138, + "id": 1044, "name": "Identifier", - "src": "9192:2:3" + "src": "9137:2:2" } ], - "id": 1140, + "id": 1046, "name": "MemberAccess", - "src": "9192:16:3" + "src": "9137:16:2" }, { "attributes": { @@ -14011,28 +13176,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1422, + "referencedDeclaration": 1318, "type": "block", "value": "block" }, - "id": 1141, + "id": 1047, "name": "Identifier", - "src": "9211:5:3" + "src": "9156:5:2" } ], - "id": 1142, + "id": 1048, "name": "MemberAccess", - "src": "9211:12:3" + "src": "9156:12:2" } ], - "id": 1143, + "id": 1049, "name": "Assignment", - "src": "9192:31:3" + "src": "9137:31:2" } ], - "id": 1144, + "id": 1050, "name": "ExpressionStatement", - "src": "9192:31:3" + "src": "9137:31:2" }, { "children": [ @@ -14055,7 +13220,7 @@ "isPure": false, "lValueRequested": true, "member_name": "confirmationCodeSha3", - "referencedDeclaration": 240, + "referencedDeclaration": 183, "type": "bytes32" }, "children": [ @@ -14065,18 +13230,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1100, + "referencedDeclaration": 1006, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1145, + "id": 1051, "name": "Identifier", - "src": "9233:2:3" + "src": "9178:2:2" } ], - "id": 1147, + "id": 1053, "name": "MemberAccess", - "src": "9233:23:3" + "src": "9178:23:2" }, { "attributes": { @@ -14084,23 +13249,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 964, + "referencedDeclaration": 870, "type": "bytes32", "value": "confirmationCodeSha3" }, - "id": 1148, + "id": 1054, "name": "Identifier", - "src": "9259:20:3" + "src": "9204:20:2" } ], - "id": 1149, + "id": 1055, "name": "Assignment", - "src": "9233:46:3" + "src": "9178:46:2" } ], - "id": 1150, + "id": 1056, "name": "ExpressionStatement", - "src": "9233:46:3" + "src": "9178:46:2" }, { "children": [ @@ -14123,7 +13288,7 @@ "isPure": false, "lValueRequested": true, "member_name": "keccakIdentifier", - "referencedDeclaration": 238, + "referencedDeclaration": 181, "type": "bytes32" }, "children": [ @@ -14133,18 +13298,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1100, + "referencedDeclaration": 1006, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1151, + "id": 1057, "name": "Identifier", - "src": "9289:2:3" + "src": "9234:2:2" } ], - "id": 1153, + "id": 1059, "name": "MemberAccess", - "src": "9289:19:3" + "src": "9234:19:2" }, { "attributes": { @@ -14188,13 +13353,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1424, + "referencedDeclaration": 1320, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1154, + "id": 1060, "name": "Identifier", - "src": "9311:9:3" + "src": "9256:9:2" }, { "attributes": { @@ -14202,13 +13367,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 952, + "referencedDeclaration": 858, "type": "string memory", "value": "country" }, - "id": 1155, + "id": 1061, "name": "Identifier", - "src": "9321:7:3" + "src": "9266:7:2" }, { "attributes": { @@ -14216,13 +13381,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 954, + "referencedDeclaration": 860, "type": "string memory", "value": "state" }, - "id": 1156, + "id": 1062, "name": "Identifier", - "src": "9330:5:3" + "src": "9275:5:2" }, { "attributes": { @@ -14230,13 +13395,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 956, + "referencedDeclaration": 862, "type": "string memory", "value": "city" }, - "id": 1157, + "id": 1063, "name": "Identifier", - "src": "9337:4:3" + "src": "9282:4:2" }, { "attributes": { @@ -14244,13 +13409,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 958, + "referencedDeclaration": 864, "type": "string memory", "value": "location" }, - "id": 1158, + "id": 1064, "name": "Identifier", - "src": "9343:8:3" + "src": "9288:8:2" }, { "attributes": { @@ -14258,28 +13423,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 960, + "referencedDeclaration": 866, "type": "string memory", "value": "zip" }, - "id": 1159, + "id": 1065, "name": "Identifier", - "src": "9353:3:3" + "src": "9298:3:2" } ], - "id": 1160, + "id": 1066, "name": "FunctionCall", - "src": "9311:46:3" + "src": "9256:46:2" } ], - "id": 1161, + "id": 1067, "name": "Assignment", - "src": "9289:68:3" + "src": "9234:68:2" } ], - "id": 1162, + "id": 1068, "name": "ExpressionStatement", - "src": "9289:68:3" + "src": "9234:68:2" }, { "children": [ @@ -14302,7 +13467,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_PhysicalAddress_$241_memory_ptr", + "typeIdentifier": "t_struct$_PhysicalAddress_$184_memory_ptr", "typeString": "struct ProofOfPhysicalAddress.PhysicalAddress memory" } ], @@ -14323,7 +13488,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -14343,13 +13508,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1163, + "id": 1069, "name": "Identifier", - "src": "9367:5:3" + "src": "9312:5:2" }, { "attributes": { @@ -14369,33 +13534,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1164, + "id": 1070, "name": "Identifier", - "src": "9373:3:3" + "src": "9318:3:2" } ], - "id": 1165, + "id": 1071, "name": "MemberAccess", - "src": "9373:10:3" + "src": "9318:10:2" } ], - "id": 1166, + "id": 1072, "name": "IndexAccess", - "src": "9367:17:3" + "src": "9312:17:2" } ], - "id": 1167, + "id": 1073, "name": "MemberAccess", - "src": "9367:35:3" + "src": "9312:35:2" } ], - "id": 1168, + "id": 1074, "name": "MemberAccess", - "src": "9367:40:3" + "src": "9312:40:2" }, { "attributes": { @@ -14403,23 +13568,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1100, + "referencedDeclaration": 1006, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1169, + "id": 1075, "name": "Identifier", - "src": "9408:2:3" + "src": "9353:2:2" } ], - "id": 1170, + "id": 1076, "name": "FunctionCall", - "src": "9367:44:3" + "src": "9312:44:2" } ], - "id": 1171, + "id": 1077, "name": "ExpressionStatement", - "src": "9367:44:3" + "src": "9312:44:2" }, { "children": [ @@ -14440,13 +13605,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 276, + "referencedDeclaration": 219, "type": "uint64", "value": "totalAddresses" }, - "id": 1172, + "id": 1078, "name": "Identifier", - "src": "9422:14:3" + "src": "9367:14:2" }, { "attributes": { @@ -14461,41 +13626,38 @@ "type": "int_const 1", "value": "1" }, - "id": 1173, + "id": 1079, "name": "Literal", - "src": "9440:1:3" + "src": "9385:1:2" } ], - "id": 1174, + "id": 1080, "name": "Assignment", - "src": "9422:19:3" + "src": "9367:19:2" } ], - "id": 1175, + "id": 1081, "name": "ExpressionStatement", - "src": "9422:19:3" + "src": "9367:19:2" } ], - "id": 1176, + "id": 1082, "name": "Block", - "src": "8008:1440:3" + "src": "7953:1440:2" } ], - "id": 1177, + "id": 1083, "name": "FunctionDefinition", - "src": "7754:1694:3" + "src": "7699:1694:2" }, { "attributes": { "constant": false, "implemented": true, "isConstructor": false, - "modifiers": [ - null - ], "name": "unregisterAddress", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -14507,7 +13669,7 @@ "attributes": { "constant": false, "name": "country", - "scope": 1320, + "scope": 1219, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -14520,20 +13682,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1178, + "id": 1084, "name": "ElementaryTypeName", - "src": "9481:6:3" + "src": "9426:6:2" } ], - "id": 1179, + "id": 1085, "name": "VariableDeclaration", - "src": "9481:14:3" + "src": "9426:14:2" }, { "attributes": { "constant": false, "name": "state", - "scope": 1320, + "scope": 1219, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -14546,46 +13708,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1180, + "id": 1086, "name": "ElementaryTypeName", - "src": "9497:6:3" + "src": "9442:6:2" } ], - "id": 1181, + "id": 1087, "name": "VariableDeclaration", - "src": "9497:12:3" + "src": "9442:12:2" }, { "attributes": { "constant": false, "name": "city", - "scope": 1320, - "stateVariable": false, - "storageLocation": "default", - "type": "string memory", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "string", - "type": "string storage pointer" - }, - "id": 1182, - "name": "ElementaryTypeName", - "src": "9511:6:3" - } - ], - "id": 1183, - "name": "VariableDeclaration", - "src": "9511:11:3" - }, - { - "attributes": { - "constant": false, - "name": "location", - "scope": 1320, + "scope": 1219, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -14598,175 +13734,137 @@ "name": "string", "type": "string storage pointer" }, - "id": 1184, + "id": 1088, "name": "ElementaryTypeName", - "src": "9524:6:3" + "src": "9456:6:2" } ], - "id": 1185, + "id": 1089, "name": "VariableDeclaration", - "src": "9524:15:3" + "src": "9456:11:2" }, { "attributes": { "constant": false, - "name": "zip", - "scope": 1320, - "stateVariable": false, - "storageLocation": "default", - "type": "string memory", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "string", - "type": "string storage pointer" - }, - "id": 1186, - "name": "ElementaryTypeName", - "src": "9541:6:3" - } - ], - "id": 1187, - "name": "VariableDeclaration", - "src": "9541:10:3" - } - ], - "id": 1188, - "name": "ParameterList", - "src": "9480:72:3" - }, - { - "attributes": { - "parameters": [ - null - ] - }, - "children": [], - "id": 1189, - "name": "ParameterList", - "src": "9560:0:3" - }, - { - "children": [ - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1433, - "type": "function (bool) pure", - "value": "require" - }, - "id": 1190, - "name": "Identifier", - "src": "9570:7:3" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "bool", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 424, - "type": "function (address) view returns (bool)", - "value": "userExists" - }, - "id": 1191, - "name": "Identifier", - "src": "9578:10:3" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "sender", - "referencedDeclaration": null, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1430, - "type": "msg", - "value": "msg" - }, - "id": 1192, - "name": "Identifier", - "src": "9589:3:3" - } - ], - "id": 1193, - "name": "MemberAccess", - "src": "9589:10:3" - } - ], - "id": 1194, - "name": "FunctionCall", - "src": "9578:22:3" - } - ], - "id": 1195, - "name": "FunctionCall", - "src": "9570:31:3" + "name": "location", + "scope": 1219, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 1090, + "name": "ElementaryTypeName", + "src": "9469:6:2" } ], - "id": 1196, - "name": "ExpressionStatement", - "src": "9570:31:3" + "id": 1091, + "name": "VariableDeclaration", + "src": "9469:15:2" + }, + { + "attributes": { + "constant": false, + "name": "zip", + "scope": 1219, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "9486:6:2" + } + ], + "id": 1093, + "name": "VariableDeclaration", + "src": "9486:10:2" + } + ], + "id": 1094, + "name": "ParameterList", + "src": "9425:72:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1099, + "name": "ParameterList", + "src": "9545:0:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 244, + "type": "modifier (address)", + "value": "checkUserExists" + }, + "id": 1095, + "name": "Identifier", + "src": "9513:15:2" }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1326, + "type": "msg", + "value": "msg" + }, + "id": 1096, + "name": "Identifier", + "src": "9529:3:2" + } + ], + "id": 1097, + "name": "MemberAccess", + "src": "9529:10:2" + } + ], + "id": 1098, + "name": "ModifierInvocation", + "src": "9513:27:2" + }, + { + "children": [ { "attributes": { "assignments": [ @@ -14779,7 +13877,7 @@ "attributes": { "constant": false, "name": "found", - "scope": 1320, + "scope": 1219, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -14792,19 +13890,19 @@ "name": "bool", "type": "bool" }, - "id": 1197, + "id": 1100, "name": "ElementaryTypeName", - "src": "9612:4:3" + "src": "9555:4:2" } ], - "id": 1198, + "id": 1101, "name": "VariableDeclaration", - "src": "9612:10:3" + "src": "9555:10:2" } ], - "id": 1199, + "id": 1102, "name": "VariableDeclarationStatement", - "src": "9612:10:3" + "src": "9555:10:2" }, { "attributes": { @@ -14818,7 +13916,7 @@ "attributes": { "constant": false, "name": "index", - "scope": 1320, + "scope": 1219, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -14831,19 +13929,19 @@ "name": "uint256", "type": "uint256" }, - "id": 1200, + "id": 1103, "name": "ElementaryTypeName", - "src": "9632:7:3" + "src": "9575:7:2" } ], - "id": 1201, + "id": 1104, "name": "VariableDeclaration", - "src": "9632:13:3" + "src": "9575:13:2" } ], - "id": 1202, + "id": 1105, "name": "VariableDeclarationStatement", - "src": "9632:13:3" + "src": "9575:13:2" }, { "children": [ @@ -14875,13 +13973,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1198, + "referencedDeclaration": 1101, "type": "bool", "value": "found" }, - "id": 1203, + "id": 1106, "name": "Identifier", - "src": "9656:5:3" + "src": "9599:5:2" }, { "attributes": { @@ -14889,18 +13987,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1201, + "referencedDeclaration": 1104, "type": "uint256", "value": "index" }, - "id": 1204, + "id": 1107, "name": "Identifier", - "src": "9663:5:3" + "src": "9606:5:2" } ], - "id": 1205, + "id": 1108, "name": "TupleExpression", - "src": "9655:16:3" + "src": "9598:16:2" }, { "attributes": { @@ -14948,13 +14046,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 682, + "referencedDeclaration": 611, "type": "function (address,string memory,string memory,string memory,string memory,string memory) view returns (bool,uint256,bool)", "value": "userAddressByAddress" }, - "id": 1206, + "id": 1109, "name": "Identifier", - "src": "9674:20:3" + "src": "9617:20:2" }, { "attributes": { @@ -14974,18 +14072,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1207, + "id": 1110, "name": "Identifier", - "src": "9695:3:3" + "src": "9638:3:2" } ], - "id": 1208, + "id": 1111, "name": "MemberAccess", - "src": "9695:10:3" + "src": "9638:10:2" }, { "attributes": { @@ -14993,13 +14091,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1179, + "referencedDeclaration": 1085, "type": "string memory", "value": "country" }, - "id": 1209, + "id": 1112, "name": "Identifier", - "src": "9707:7:3" + "src": "9650:7:2" }, { "attributes": { @@ -15007,13 +14105,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1181, + "referencedDeclaration": 1087, "type": "string memory", "value": "state" }, - "id": 1210, + "id": 1113, "name": "Identifier", - "src": "9716:5:3" + "src": "9659:5:2" }, { "attributes": { @@ -15021,13 +14119,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1183, + "referencedDeclaration": 1089, "type": "string memory", "value": "city" }, - "id": 1211, + "id": 1114, "name": "Identifier", - "src": "9723:4:3" + "src": "9666:4:2" }, { "attributes": { @@ -15035,13 +14133,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1185, + "referencedDeclaration": 1091, "type": "string memory", "value": "location" }, - "id": 1212, + "id": 1115, "name": "Identifier", - "src": "9729:8:3" + "src": "9672:8:2" }, { "attributes": { @@ -15049,28 +14147,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1187, + "referencedDeclaration": 1093, "type": "string memory", "value": "zip" }, - "id": 1213, + "id": 1116, "name": "Identifier", - "src": "9739:3:3" + "src": "9682:3:2" } ], - "id": 1214, + "id": 1117, "name": "FunctionCall", - "src": "9674:69:3" + "src": "9617:69:2" } ], - "id": 1215, + "id": 1118, "name": "Assignment", - "src": "9655:88:3" + "src": "9598:88:2" } ], - "id": 1216, + "id": 1119, "name": "ExpressionStatement", - "src": "9655:88:3" + "src": "9598:88:2" }, { "children": [ @@ -15100,13 +14198,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 1217, + "id": 1120, "name": "Identifier", - "src": "9753:7:3" + "src": "9696:7:2" }, { "attributes": { @@ -15114,184 +14212,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1198, + "referencedDeclaration": 1101, "type": "bool", "value": "found" }, - "id": 1218, + "id": 1121, "name": "Identifier", - "src": "9761:5:3" + "src": "9704:5:2" } ], - "id": 1219, + "id": 1122, "name": "FunctionCall", - "src": "9753:14:3" + "src": "9696:14:2" } ], - "id": 1220, + "id": 1123, "name": "ExpressionStatement", - "src": "9753:14:3" - }, - { - "attributes": { - "assignments": [ - 1222 - ] - }, - "children": [ - { - "attributes": { - "constant": false, - "name": "keccakIdentifier", - "scope": 1320, - "stateVariable": false, - "storageLocation": "default", - "type": "bytes32", - "value": null, - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "bytes32", - "type": "bytes32" - }, - "id": 1221, - "name": "ElementaryTypeName", - "src": "9778:7:3" - } - ], - "id": 1222, - "name": "VariableDeclaration", - "src": "9778:24:3" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "member_name": "keccakIdentifier", - "referencedDeclaration": 238, - "type": "bytes32" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "member_name": "physicalAddresses", - "referencedDeclaration": 267, - "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "type": "struct ProofOfPhysicalAddress.User storage ref" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 272, - "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", - "value": "users" - }, - "id": 1223, - "name": "Identifier", - "src": "9805:5:3" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "sender", - "referencedDeclaration": null, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1430, - "type": "msg", - "value": "msg" - }, - "id": 1224, - "name": "Identifier", - "src": "9811:3:3" - } - ], - "id": 1225, - "name": "MemberAccess", - "src": "9811:10:3" - } - ], - "id": 1226, - "name": "IndexAccess", - "src": "9805:17:3" - } - ], - "id": 1227, - "name": "MemberAccess", - "src": "9805:35:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1201, - "type": "uint256", - "value": "index" - }, - "id": 1228, - "name": "Identifier", - "src": "9841:5:3" - } - ], - "id": 1229, - "name": "IndexAccess", - "src": "9805:42:3" - } - ], - "id": 1230, - "name": "MemberAccess", - "src": "9805:59:3" - } - ], - "id": 1231, - "name": "VariableDeclarationStatement", - "src": "9778:86:3" + "src": "9696:14:2" }, { "children": [ @@ -15341,18 +14278,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 222, + "referencedDeclaration": 165, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 1232, + "id": 1124, "name": "Identifier", - "src": "9874:8:3" + "src": "9721:8:2" } ], - "id": 1234, + "id": 1126, "name": "MemberAccess", - "src": "9874:20:3" + "src": "9721:20:2" }, { "attributes": { @@ -15373,7 +14310,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1418", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1314", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -15384,9 +14321,9 @@ "type": "type(address)", "value": "address" }, - "id": 1235, + "id": 1127, "name": "ElementaryTypeNameExpression", - "src": "9895:7:3" + "src": "9755:7:2" }, { "attributes": { @@ -15394,18 +14331,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1447, + "referencedDeclaration": 1341, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 1236, + "id": 1128, "name": "Identifier", - "src": "9903:4:3" + "src": "9763:4:2" } ], - "id": 1237, + "id": 1129, "name": "FunctionCall", - "src": "9895:13:3" + "src": "9755:13:2" }, { "attributes": { @@ -15425,47 +14362,156 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1238, + "id": 1130, "name": "Identifier", - "src": "9910:3:3" + "src": "9782:3:2" + } + ], + "id": 1131, + "name": "MemberAccess", + "src": "9782:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "keccakIdentifier", + "referencedDeclaration": 181, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "physicalAddresses", + "referencedDeclaration": 210, + "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct ProofOfPhysicalAddress.User storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 215, + "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", + "value": "users" + }, + "id": 1132, + "name": "Identifier", + "src": "9806:5:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1326, + "type": "msg", + "value": "msg" + }, + "id": 1133, + "name": "Identifier", + "src": "9812:3:2" + } + ], + "id": 1134, + "name": "MemberAccess", + "src": "9812:10:2" + } + ], + "id": 1135, + "name": "IndexAccess", + "src": "9806:17:2" + } + ], + "id": 1136, + "name": "MemberAccess", + "src": "9806:35:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1104, + "type": "uint256", + "value": "index" + }, + "id": 1137, + "name": "Identifier", + "src": "9842:5:2" + } + ], + "id": 1138, + "name": "IndexAccess", + "src": "9806:42:2" } ], - "id": 1239, + "id": 1139, "name": "MemberAccess", - "src": "9910:10:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1222, - "type": "bytes32", - "value": "keccakIdentifier" - }, - "id": 1240, - "name": "Identifier", - "src": "9922:16:3" + "src": "9806:59:2" } ], - "id": 1241, + "id": 1140, "name": "FunctionCall", - "src": "9874:65:3" + "src": "9721:154:2" } ], - "id": 1242, + "id": 1141, "name": "ExpressionStatement", - "src": "9874:65:3" + "src": "9721:154:2" }, { "attributes": { "assignments": [ - 1244 + 1143 ] }, "children": [ @@ -15473,7 +14519,7 @@ "attributes": { "constant": false, "name": "length", - "scope": 1320, + "scope": 1219, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -15486,14 +14532,14 @@ "name": "uint256", "type": "uint256" }, - "id": 1243, + "id": 1142, "name": "ElementaryTypeName", - "src": "9995:7:3" + "src": "9931:7:2" } ], - "id": 1244, + "id": 1143, "name": "VariableDeclaration", - "src": "9995:14:3" + "src": "9931:14:2" }, { "attributes": { @@ -15515,7 +14561,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -15535,13 +14581,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1245, + "id": 1144, "name": "Identifier", - "src": "10012:5:3" + "src": "9948:5:2" }, { "attributes": { @@ -15561,45 +14607,45 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1246, + "id": 1145, "name": "Identifier", - "src": "10018:3:3" + "src": "9954:3:2" } ], - "id": 1247, + "id": 1146, "name": "MemberAccess", - "src": "10018:10:3" + "src": "9954:10:2" } ], - "id": 1248, + "id": 1147, "name": "IndexAccess", - "src": "10012:17:3" + "src": "9948:17:2" } ], - "id": 1249, + "id": 1148, "name": "MemberAccess", - "src": "10012:35:3" + "src": "9948:35:2" } ], - "id": 1250, + "id": 1149, "name": "MemberAccess", - "src": "10012:42:3" + "src": "9948:42:2" } ], - "id": 1251, + "id": 1150, "name": "VariableDeclarationStatement", - "src": "9995:59:3" + "src": "9931:59:2" }, { "children": [ { "attributes": { "assignments": [ - 1253 + 1152 ] }, "children": [ @@ -15607,7 +14653,7 @@ "attributes": { "constant": false, "name": "i", - "scope": 1320, + "scope": 1219, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -15620,14 +14666,14 @@ "name": "uint256", "type": "uint256" }, - "id": 1252, + "id": 1151, "name": "ElementaryTypeName", - "src": "10069:7:3" + "src": "10006:7:2" } ], - "id": 1253, + "id": 1152, "name": "VariableDeclaration", - "src": "10069:9:3" + "src": "10006:9:2" }, { "attributes": { @@ -15635,18 +14681,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1201, + "referencedDeclaration": 1104, "type": "uint256", "value": "index" }, - "id": 1254, + "id": 1153, "name": "Identifier", - "src": "10081:5:3" + "src": "10018:5:2" } ], - "id": 1255, + "id": 1154, "name": "VariableDeclarationStatement", - "src": "10069:17:3" + "src": "10006:17:2" }, { "attributes": { @@ -15669,13 +14715,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1253, + "referencedDeclaration": 1152, "type": "uint256", "value": "i" }, - "id": 1256, + "id": 1155, "name": "Identifier", - "src": "10088:1:3" + "src": "10025:1:2" }, { "attributes": { @@ -15698,13 +14744,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1244, + "referencedDeclaration": 1143, "type": "uint256", "value": "length" }, - "id": 1257, + "id": 1156, "name": "Identifier", - "src": "10092:6:3" + "src": "10029:6:2" }, { "attributes": { @@ -15719,19 +14765,19 @@ "type": "int_const 1", "value": "1" }, - "id": 1258, + "id": 1157, "name": "Literal", - "src": "10101:1:3" + "src": "10038:1:2" } ], - "id": 1259, + "id": 1158, "name": "BinaryOperation", - "src": "10092:10:3" + "src": "10029:10:2" } ], - "id": 1260, + "id": 1159, "name": "BinaryOperation", - "src": "10088:14:3" + "src": "10025:14:2" }, { "children": [ @@ -15753,23 +14799,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1253, + "referencedDeclaration": 1152, "type": "uint256", "value": "i" }, - "id": 1261, + "id": 1160, "name": "Identifier", - "src": "10104:1:3" + "src": "10041:1:2" } ], - "id": 1262, + "id": 1161, "name": "UnaryOperation", - "src": "10104:3:3" + "src": "10041:3:2" } ], - "id": 1263, + "id": 1162, "name": "ExpressionStatement", - "src": "10104:3:3" + "src": "10041:3:2" }, { "children": [ @@ -15804,7 +14850,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -15824,13 +14870,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1264, + "id": 1163, "name": "Identifier", - "src": "10122:5:3" + "src": "10060:5:2" }, { "attributes": { @@ -15850,28 +14896,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1265, + "id": 1164, "name": "Identifier", - "src": "10128:3:3" + "src": "10066:3:2" } ], - "id": 1266, + "id": 1165, "name": "MemberAccess", - "src": "10128:10:3" + "src": "10066:10:2" } ], - "id": 1267, + "id": 1166, "name": "IndexAccess", - "src": "10122:17:3" + "src": "10060:17:2" } ], - "id": 1268, + "id": 1167, "name": "MemberAccess", - "src": "10122:35:3" + "src": "10060:35:2" }, { "attributes": { @@ -15879,18 +14925,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1253, + "referencedDeclaration": 1152, "type": "uint256", "value": "i" }, - "id": 1269, + "id": 1168, "name": "Identifier", - "src": "10158:1:3" + "src": "10096:1:2" } ], - "id": 1270, + "id": 1169, "name": "IndexAccess", - "src": "10122:38:3" + "src": "10060:38:2" }, { "attributes": { @@ -15910,7 +14956,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -15930,13 +14976,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1271, + "id": 1170, "name": "Identifier", - "src": "10163:5:3" + "src": "10101:5:2" }, { "attributes": { @@ -15956,28 +15002,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1272, + "id": 1171, "name": "Identifier", - "src": "10169:3:3" + "src": "10107:3:2" } ], - "id": 1273, + "id": 1172, "name": "MemberAccess", - "src": "10169:10:3" + "src": "10107:10:2" } ], - "id": 1274, + "id": 1173, "name": "IndexAccess", - "src": "10163:17:3" + "src": "10101:17:2" } ], - "id": 1275, + "id": 1174, "name": "MemberAccess", - "src": "10163:35:3" + "src": "10101:35:2" }, { "attributes": { @@ -16000,13 +15046,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1253, + "referencedDeclaration": 1152, "type": "uint256", "value": "i" }, - "id": 1276, + "id": 1175, "name": "Identifier", - "src": "10199:1:3" + "src": "10137:1:2" }, { "attributes": { @@ -16021,39 +15067,39 @@ "type": "int_const 1", "value": "1" }, - "id": 1277, + "id": 1176, "name": "Literal", - "src": "10201:1:3" + "src": "10139:1:2" } ], - "id": 1278, + "id": 1177, "name": "BinaryOperation", - "src": "10199:3:3" + "src": "10137:3:2" } ], - "id": 1279, + "id": 1178, "name": "IndexAccess", - "src": "10163:40:3" + "src": "10101:40:2" } ], - "id": 1280, + "id": 1179, "name": "Assignment", - "src": "10122:81:3" + "src": "10060:81:2" } ], - "id": 1281, + "id": 1180, "name": "ExpressionStatement", - "src": "10122:81:3" + "src": "10060:81:2" } ], - "id": 1282, + "id": 1181, "name": "Block", - "src": "10108:106:3" + "src": "10046:106:2" } ], - "id": 1283, + "id": 1182, "name": "ForStatement", - "src": "10064:150:3" + "src": "10001:151:2" }, { "children": [ @@ -16087,7 +15133,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -16107,13 +15153,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1284, + "id": 1183, "name": "Identifier", - "src": "10230:5:3" + "src": "10169:5:2" }, { "attributes": { @@ -16133,28 +15179,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1285, + "id": 1184, "name": "Identifier", - "src": "10236:3:3" + "src": "10175:3:2" } ], - "id": 1286, + "id": 1185, "name": "MemberAccess", - "src": "10236:10:3" + "src": "10175:10:2" } ], - "id": 1287, + "id": 1186, "name": "IndexAccess", - "src": "10230:17:3" + "src": "10169:17:2" } ], - "id": 1288, + "id": 1187, "name": "MemberAccess", - "src": "10230:35:3" + "src": "10169:35:2" }, { "attributes": { @@ -16177,13 +15223,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1244, + "referencedDeclaration": 1143, "type": "uint256", "value": "length" }, - "id": 1289, + "id": 1188, "name": "Identifier", - "src": "10266:6:3" + "src": "10205:6:2" }, { "attributes": { @@ -16198,29 +15244,29 @@ "type": "int_const 1", "value": "1" }, - "id": 1290, + "id": 1189, "name": "Literal", - "src": "10275:1:3" + "src": "10214:1:2" } ], - "id": 1291, + "id": 1190, "name": "BinaryOperation", - "src": "10266:10:3" + "src": "10205:10:2" } ], - "id": 1292, + "id": 1191, "name": "IndexAccess", - "src": "10230:47:3" + "src": "10169:47:2" } ], - "id": 1293, + "id": 1192, "name": "UnaryOperation", - "src": "10223:54:3" + "src": "10162:54:2" } ], - "id": 1294, + "id": 1193, "name": "ExpressionStatement", - "src": "10223:54:3" + "src": "10162:54:2" }, { "children": [ @@ -16256,7 +15302,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -16276,13 +15322,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1295, + "id": 1194, "name": "Identifier", - "src": "10287:5:3" + "src": "10226:5:2" }, { "attributes": { @@ -16302,43 +15348,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1296, + "id": 1195, "name": "Identifier", - "src": "10293:3:3" + "src": "10232:3:2" } ], - "id": 1297, + "id": 1196, "name": "MemberAccess", - "src": "10293:10:3" + "src": "10232:10:2" } ], - "id": 1298, + "id": 1197, "name": "IndexAccess", - "src": "10287:17:3" + "src": "10226:17:2" } ], - "id": 1299, + "id": 1198, "name": "MemberAccess", - "src": "10287:35:3" + "src": "10226:35:2" } ], - "id": 1300, + "id": 1199, "name": "MemberAccess", - "src": "10287:42:3" + "src": "10226:42:2" } ], - "id": 1301, + "id": 1200, "name": "UnaryOperation", - "src": "10287:44:3" + "src": "10226:44:2" } ], - "id": 1302, + "id": 1201, "name": "ExpressionStatement", - "src": "10287:44:3" + "src": "10226:44:2" }, { "attributes": { @@ -16380,7 +15426,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 267, + "referencedDeclaration": 210, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -16400,13 +15446,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1303, + "id": 1202, "name": "Identifier", - "src": "10346:5:3" + "src": "10285:5:2" }, { "attributes": { @@ -16426,33 +15472,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1304, + "id": 1203, "name": "Identifier", - "src": "10352:3:3" + "src": "10291:3:2" } ], - "id": 1305, + "id": 1204, "name": "MemberAccess", - "src": "10352:10:3" + "src": "10291:10:2" } ], - "id": 1306, + "id": 1205, "name": "IndexAccess", - "src": "10346:17:3" + "src": "10285:17:2" } ], - "id": 1307, + "id": 1206, "name": "MemberAccess", - "src": "10346:35:3" + "src": "10285:35:2" } ], - "id": 1308, + "id": 1207, "name": "MemberAccess", - "src": "10346:42:3" + "src": "10285:42:2" }, { "attributes": { @@ -16467,14 +15513,14 @@ "type": "int_const 0", "value": "0" }, - "id": 1309, + "id": 1208, "name": "Literal", - "src": "10392:1:3" + "src": "10331:1:2" } ], - "id": 1310, + "id": 1209, "name": "BinaryOperation", - "src": "10346:47:3" + "src": "10285:47:2" }, { "children": [ @@ -16508,13 +15554,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 272, + "referencedDeclaration": 215, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1311, + "id": 1210, "name": "Identifier", - "src": "10414:5:3" + "src": "10355:5:2" }, { "attributes": { @@ -16534,65 +15580,62 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1312, + "id": 1211, "name": "Identifier", - "src": "10420:3:3" + "src": "10361:3:2" } ], - "id": 1313, + "id": 1212, "name": "MemberAccess", - "src": "10420:10:3" + "src": "10361:10:2" } ], - "id": 1314, + "id": 1213, "name": "IndexAccess", - "src": "10414:17:3" + "src": "10355:17:2" } ], - "id": 1315, + "id": 1214, "name": "UnaryOperation", - "src": "10407:24:3" + "src": "10348:24:2" } ], - "id": 1316, + "id": 1215, "name": "ExpressionStatement", - "src": "10407:24:3" + "src": "10348:24:2" } ], - "id": 1317, + "id": 1216, "name": "Block", - "src": "10395:47:3" + "src": "10334:49:2" } ], - "id": 1318, + "id": 1217, "name": "IfStatement", - "src": "10342:100:3" + "src": "10281:102:2" } ], - "id": 1319, + "id": 1218, "name": "Block", - "src": "9560:888:3" + "src": "9545:844:2" } ], - "id": 1320, + "id": 1219, "name": "FunctionDefinition", - "src": "9454:994:3" + "src": "9399:990:2" }, { "attributes": { "constant": false, "implemented": true, "isConstructor": false, - "modifiers": [ - null - ], "name": "confirmAddress", "payable": false, - "scope": 1418, + "scope": 1314, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -16604,7 +15647,7 @@ "attributes": { "constant": false, "name": "confirmationCodePlain", - "scope": 1417, + "scope": 1313, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -16617,20 +15660,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1321, + "id": 1220, "name": "ElementaryTypeName", - "src": "10478:6:3" + "src": "10419:6:2" } ], - "id": 1322, + "id": 1221, "name": "VariableDeclaration", - "src": "10478:28:3" + "src": "10419:28:2" }, { "attributes": { "constant": false, "name": "sigV", - "scope": 1417, + "scope": 1313, "stateVariable": false, "storageLocation": "default", "type": "uint8", @@ -16643,20 +15686,20 @@ "name": "uint8", "type": "uint8" }, - "id": 1323, + "id": 1222, "name": "ElementaryTypeName", - "src": "10508:5:3" + "src": "10449:5:2" } ], - "id": 1324, + "id": 1223, "name": "VariableDeclaration", - "src": "10508:10:3" + "src": "10449:10:2" }, { "attributes": { "constant": false, "name": "sigR", - "scope": 1417, + "scope": 1313, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -16669,20 +15712,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1325, + "id": 1224, "name": "ElementaryTypeName", - "src": "10520:7:3" + "src": "10461:7:2" } ], - "id": 1326, + "id": 1225, "name": "VariableDeclaration", - "src": "10520:12:3" + "src": "10461:12:2" }, { "attributes": { "constant": false, "name": "sigS", - "scope": 1417, + "scope": 1313, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -16695,19 +15738,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1327, + "id": 1226, "name": "ElementaryTypeName", - "src": "10534:7:3" + "src": "10475:7:2" } ], - "id": 1328, + "id": 1227, "name": "VariableDeclaration", - "src": "10534:12:3" + "src": "10475:12:2" } ], - "id": 1329, + "id": 1228, "name": "ParameterList", - "src": "10477:70:3" + "src": "10418:70:2" }, { "attributes": { @@ -16716,9 +15759,61 @@ ] }, "children": [], - "id": 1330, + "id": 1233, "name": "ParameterList", - "src": "10563:0:3" + "src": "10532:0:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 244, + "type": "modifier (address)", + "value": "checkUserExists" + }, + "id": 1229, + "name": "Identifier", + "src": "10500:15:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1326, + "type": "msg", + "value": "msg" + }, + "id": 1230, + "name": "Identifier", + "src": "10516:3:2" + } + ], + "id": 1231, + "name": "MemberAccess", + "src": "10516:10:2" + } + ], + "id": 1232, + "name": "ModifierInvocation", + "src": "10500:27:2" }, { "children": [ @@ -16750,13 +15845,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 1331, + "id": 1234, "name": "Identifier", - "src": "10573:7:3" + "src": "10542:7:2" }, { "attributes": { @@ -16815,9 +15910,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 1332, + "id": 1235, "name": "ElementaryTypeNameExpression", - "src": "10581:5:3" + "src": "10550:5:2" }, { "attributes": { @@ -16825,23 +15920,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1322, + "referencedDeclaration": 1221, "type": "string memory", "value": "confirmationCodePlain" }, - "id": 1333, + "id": 1236, "name": "Identifier", - "src": "10587:21:3" + "src": "10556:21:2" } ], - "id": 1334, + "id": 1237, "name": "FunctionCall", - "src": "10581:28:3" + "src": "10550:28:2" } ], - "id": 1335, + "id": 1238, "name": "MemberAccess", - "src": "10581:35:3" + "src": "10550:35:2" }, { "attributes": { @@ -16856,145 +15951,29 @@ "type": "int_const 0", "value": "0" }, - "id": 1336, + "id": 1239, "name": "Literal", - "src": "10619:1:3" + "src": "10588:1:2" } ], - "id": 1337, + "id": 1240, "name": "BinaryOperation", - "src": "10581:39:3" - } - ], - "id": 1338, - "name": "FunctionCall", - "src": "10573:48:3" - } - ], - "id": 1339, - "name": "ExpressionStatement", - "src": "10573:48:3" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "tuple()", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1433, - "type": "function (bool) pure", - "value": "require" - }, - "id": 1340, - "name": "Identifier", - "src": "10631:7:3" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "bool", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 424, - "type": "function (address) view returns (bool)", - "value": "userExists" - }, - "id": 1341, - "name": "Identifier", - "src": "10639:10:3" - }, - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "sender", - "referencedDeclaration": null, - "type": "address" - }, - "children": [ - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 1430, - "type": "msg", - "value": "msg" - }, - "id": 1342, - "name": "Identifier", - "src": "10650:3:3" - } - ], - "id": 1343, - "name": "MemberAccess", - "src": "10650:10:3" - } - ], - "id": 1344, - "name": "FunctionCall", - "src": "10639:22:3" + "src": "10550:39:2" } ], - "id": 1345, + "id": 1241, "name": "FunctionCall", - "src": "10631:31:3" + "src": "10542:48:2" } ], - "id": 1346, + "id": 1242, "name": "ExpressionStatement", - "src": "10631:31:3" + "src": "10542:48:2" }, { "attributes": { "assignments": [ - 1348 + 1244 ] }, "children": [ @@ -17002,7 +15981,7 @@ "attributes": { "constant": false, "name": "data", - "scope": 1417, + "scope": 1313, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -17015,14 +15994,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1347, + "id": 1243, "name": "ElementaryTypeName", - "src": "10673:7:3" + "src": "10601:7:2" } ], - "id": 1348, + "id": 1244, "name": "VariableDeclaration", - "src": "10673:12:3" + "src": "10601:12:2" }, { "attributes": { @@ -17054,13 +16033,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1424, + "referencedDeclaration": 1320, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1349, + "id": 1245, "name": "Identifier", - "src": "10688:9:3" + "src": "10616:9:2" }, { "attributes": { @@ -17080,18 +16059,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1350, + "id": 1246, "name": "Identifier", - "src": "10711:3:3" + "src": "10639:3:2" } ], - "id": 1351, + "id": 1247, "name": "MemberAccess", - "src": "10711:10:3" + "src": "10639:10:2" }, { "attributes": { @@ -17099,23 +16078,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1322, + "referencedDeclaration": 1221, "type": "string memory", "value": "confirmationCodePlain" }, - "id": 1352, + "id": 1248, "name": "Identifier", - "src": "10735:21:3" + "src": "10663:21:2" } ], - "id": 1353, + "id": 1249, "name": "FunctionCall", - "src": "10688:78:3" + "src": "10616:78:2" } ], - "id": 1354, + "id": 1250, "name": "VariableDeclarationStatement", - "src": "10673:93:3" + "src": "10601:93:2" }, { "children": [ @@ -17145,13 +16124,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 1355, + "id": 1251, "name": "Identifier", - "src": "10776:7:3" + "src": "10704:7:2" }, { "attributes": { @@ -17191,13 +16170,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 313, + "referencedDeclaration": 279, "type": "function (bytes32,uint8,bytes32,bytes32) view returns (bool)", "value": "signerIsValid" }, - "id": 1356, + "id": 1252, "name": "Identifier", - "src": "10784:13:3" + "src": "10712:13:2" }, { "attributes": { @@ -17205,13 +16184,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1348, + "referencedDeclaration": 1244, "type": "bytes32", "value": "data" }, - "id": 1357, + "id": 1253, "name": "Identifier", - "src": "10798:4:3" + "src": "10726:4:2" }, { "attributes": { @@ -17219,13 +16198,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1324, + "referencedDeclaration": 1223, "type": "uint8", "value": "sigV" }, - "id": 1358, + "id": 1254, "name": "Identifier", - "src": "10804:4:3" + "src": "10732:4:2" }, { "attributes": { @@ -17233,13 +16212,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1225, "type": "bytes32", "value": "sigR" }, - "id": 1359, + "id": 1255, "name": "Identifier", - "src": "10810:4:3" + "src": "10738:4:2" }, { "attributes": { @@ -17247,28 +16226,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1328, + "referencedDeclaration": 1227, "type": "bytes32", "value": "sigS" }, - "id": 1360, + "id": 1256, "name": "Identifier", - "src": "10816:4:3" + "src": "10744:4:2" } ], - "id": 1361, + "id": 1257, "name": "FunctionCall", - "src": "10784:37:3" + "src": "10712:37:2" } ], - "id": 1362, + "id": 1258, "name": "FunctionCall", - "src": "10776:46:3" + "src": "10704:46:2" } ], - "id": 1363, + "id": 1259, "name": "ExpressionStatement", - "src": "10776:46:3" + "src": "10704:46:2" }, { "attributes": { @@ -17282,7 +16261,7 @@ "attributes": { "constant": false, "name": "found", - "scope": 1417, + "scope": 1313, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -17295,19 +16274,19 @@ "name": "bool", "type": "bool" }, - "id": 1364, + "id": 1260, "name": "ElementaryTypeName", - "src": "10833:4:3" + "src": "10761:4:2" } ], - "id": 1365, + "id": 1261, "name": "VariableDeclaration", - "src": "10833:10:3" + "src": "10761:10:2" } ], - "id": 1366, + "id": 1262, "name": "VariableDeclarationStatement", - "src": "10833:10:3" + "src": "10761:10:2" }, { "attributes": { @@ -17321,7 +16300,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 1417, + "scope": 1313, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -17334,19 +16313,19 @@ "name": "uint", "type": "uint256" }, - "id": 1367, + "id": 1263, "name": "ElementaryTypeName", - "src": "10853:4:3" + "src": "10781:4:2" } ], - "id": 1368, + "id": 1264, "name": "VariableDeclaration", - "src": "10853:7:3" + "src": "10781:7:2" } ], - "id": 1369, + "id": 1265, "name": "VariableDeclarationStatement", - "src": "10853:7:3" + "src": "10781:7:2" }, { "attributes": { @@ -17360,7 +16339,7 @@ "attributes": { "constant": false, "name": "confirmed", - "scope": 1417, + "scope": 1313, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -17373,19 +16352,19 @@ "name": "bool", "type": "bool" }, - "id": 1370, + "id": 1266, "name": "ElementaryTypeName", - "src": "10870:4:3" + "src": "10798:4:2" } ], - "id": 1371, + "id": 1267, "name": "VariableDeclaration", - "src": "10870:14:3" + "src": "10798:14:2" } ], - "id": 1372, + "id": 1268, "name": "VariableDeclarationStatement", - "src": "10870:14:3" + "src": "10798:14:2" }, { "attributes": { @@ -17399,7 +16378,7 @@ "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 1417, + "scope": 1313, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -17412,19 +16391,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1373, + "id": 1269, "name": "ElementaryTypeName", - "src": "10894:7:3" + "src": "10822:7:2" } ], - "id": 1374, + "id": 1270, "name": "VariableDeclaration", - "src": "10894:24:3" + "src": "10822:24:2" } ], - "id": 1375, + "id": 1271, "name": "VariableDeclarationStatement", - "src": "10894:24:3" + "src": "10822:24:2" }, { "children": [ @@ -17456,13 +16435,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1365, + "referencedDeclaration": 1261, "type": "bool", "value": "found" }, - "id": 1376, + "id": 1272, "name": "Identifier", - "src": "10929:5:3" + "src": "10857:5:2" }, { "attributes": { @@ -17470,13 +16449,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1368, + "referencedDeclaration": 1264, "type": "uint256", "value": "ai" }, - "id": 1377, + "id": 1273, "name": "Identifier", - "src": "10936:2:3" + "src": "10864:2:2" }, { "attributes": { @@ -17484,13 +16463,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1371, + "referencedDeclaration": 1267, "type": "bool", "value": "confirmed" }, - "id": 1378, + "id": 1274, "name": "Identifier", - "src": "10940:9:3" + "src": "10868:9:2" }, { "attributes": { @@ -17498,18 +16477,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1374, + "referencedDeclaration": 1270, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 1379, + "id": 1275, "name": "Identifier", - "src": "10951:16:3" + "src": "10879:16:2" } ], - "id": 1380, + "id": 1276, "name": "TupleExpression", - "src": "10928:40:3" + "src": "10856:40:2" }, { "attributes": { @@ -17541,13 +16520,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 603, + "referencedDeclaration": 536, "type": "function (address,bytes32) view returns (bool,uint256,bool,bytes32)", "value": "userAddressByConfirmationCode" }, - "id": 1381, + "id": 1277, "name": "Identifier", - "src": "10971:29:3" + "src": "10899:29:2" }, { "attributes": { @@ -17567,18 +16546,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1382, + "id": 1278, "name": "Identifier", - "src": "11014:3:3" + "src": "10942:3:2" } ], - "id": 1383, + "id": 1279, "name": "MemberAccess", - "src": "11014:10:3" + "src": "10942:10:2" }, { "attributes": { @@ -17606,13 +16585,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1424, + "referencedDeclaration": 1320, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1384, + "id": 1280, "name": "Identifier", - "src": "11038:9:3" + "src": "10966:9:2" }, { "attributes": { @@ -17620,33 +16599,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1322, + "referencedDeclaration": 1221, "type": "string memory", "value": "confirmationCodePlain" }, - "id": 1385, + "id": 1281, "name": "Identifier", - "src": "11048:21:3" + "src": "10976:21:2" } ], - "id": 1386, + "id": 1282, "name": "FunctionCall", - "src": "11038:32:3" + "src": "10966:32:2" } ], - "id": 1387, + "id": 1283, "name": "FunctionCall", - "src": "10971:109:3" + "src": "10899:109:2" } ], - "id": 1388, + "id": 1284, "name": "Assignment", - "src": "10928:152:3" + "src": "10856:152:2" } ], - "id": 1389, + "id": 1285, "name": "ExpressionStatement", - "src": "10928:152:3" + "src": "10856:152:2" }, { "children": [ @@ -17676,13 +16655,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 1390, + "id": 1286, "name": "Identifier", - "src": "11090:7:3" + "src": "11018:7:2" }, { "attributes": { @@ -17690,23 +16669,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1365, + "referencedDeclaration": 1261, "type": "bool", "value": "found" }, - "id": 1391, + "id": 1287, "name": "Identifier", - "src": "11098:5:3" + "src": "11026:5:2" } ], - "id": 1392, + "id": 1288, "name": "FunctionCall", - "src": "11090:14:3" + "src": "11018:14:2" } ], - "id": 1393, + "id": 1289, "name": "ExpressionStatement", - "src": "11090:14:3" + "src": "11018:14:2" }, { "children": [ @@ -17736,13 +16715,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1433, + "referencedDeclaration": 1329, "type": "function (bool) pure", "value": "require" }, - "id": 1394, + "id": 1290, "name": "Identifier", - "src": "11114:7:3" + "src": "11042:7:2" }, { "attributes": { @@ -17762,28 +16741,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1371, + "referencedDeclaration": 1267, "type": "bool", "value": "confirmed" }, - "id": 1395, + "id": 1291, "name": "Identifier", - "src": "11123:9:3" + "src": "11051:9:2" } ], - "id": 1396, + "id": 1292, "name": "UnaryOperation", - "src": "11122:10:3" + "src": "11050:10:2" } ], - "id": 1397, + "id": 1293, "name": "FunctionCall", - "src": "11114:19:3" + "src": "11042:19:2" } ], - "id": 1398, + "id": 1294, "name": "ExpressionStatement", - "src": "11114:19:3" + "src": "11042:19:2" }, { "children": [ @@ -17833,18 +16812,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 222, + "referencedDeclaration": 165, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 1399, + "id": 1295, "name": "Identifier", - "src": "11144:8:3" + "src": "11072:8:2" } ], - "id": 1401, + "id": 1297, "name": "MemberAccess", - "src": "11144:17:3" + "src": "11072:17:2" }, { "attributes": { @@ -17864,18 +16843,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1430, + "referencedDeclaration": 1326, "type": "msg", "value": "msg" }, - "id": 1402, + "id": 1298, "name": "Identifier", - "src": "11162:3:3" + "src": "11090:3:2" } ], - "id": 1403, + "id": 1299, "name": "MemberAccess", - "src": "11162:10:3" + "src": "11090:10:2" }, { "attributes": { @@ -17883,13 +16862,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1374, + "referencedDeclaration": 1270, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 1404, + "id": 1300, "name": "Identifier", - "src": "11174:16:3" + "src": "11102:16:2" }, { "attributes": { @@ -17919,7 +16898,7 @@ "isPure": false, "lValueRequested": false, "member_name": "encode", - "referencedDeclaration": 151, + "referencedDeclaration": 94, "type": "function (uint256) pure returns (bytes32)" }, "children": [ @@ -17929,18 +16908,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 212, + "referencedDeclaration": 155, "type": "type(library PhysicalAddressClaim)", "value": "PhysicalAddressClaim" }, - "id": 1405, + "id": 1301, "name": "Identifier", - "src": "11192:20:3" + "src": "11120:20:2" } ], - "id": 1406, + "id": 1302, "name": "MemberAccess", - "src": "11192:27:3" + "src": "11120:27:2" }, { "attributes": { @@ -17960,33 +16939,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1422, + "referencedDeclaration": 1318, "type": "block", "value": "block" }, - "id": 1407, + "id": 1303, "name": "Identifier", - "src": "11220:5:3" + "src": "11148:5:2" } ], - "id": 1408, + "id": 1304, "name": "MemberAccess", - "src": "11220:12:3" + "src": "11148:12:2" } ], - "id": 1409, + "id": 1305, "name": "FunctionCall", - "src": "11192:41:3" + "src": "11120:41:2" } ], - "id": 1410, + "id": 1306, "name": "FunctionCall", - "src": "11144:90:3" + "src": "11072:90:2" } ], - "id": 1411, + "id": 1307, "name": "ExpressionStatement", - "src": "11144:90:3" + "src": "11072:90:2" }, { "children": [ @@ -18007,13 +16986,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 278, + "referencedDeclaration": 221, "type": "uint64", "value": "totalConfirmed" }, - "id": 1412, + "id": 1308, "name": "Identifier", - "src": "11244:14:3" + "src": "11172:14:2" }, { "attributes": { @@ -18028,39 +17007,39 @@ "type": "int_const 1", "value": "1" }, - "id": 1413, + "id": 1309, "name": "Literal", - "src": "11262:1:3" + "src": "11190:1:2" } ], - "id": 1414, + "id": 1310, "name": "Assignment", - "src": "11244:19:3" + "src": "11172:19:2" } ], - "id": 1415, + "id": 1311, "name": "ExpressionStatement", - "src": "11244:19:3" + "src": "11172:19:2" } ], - "id": 1416, + "id": 1312, "name": "Block", - "src": "10563:707:3" + "src": "10532:666:2" } ], - "id": 1417, + "id": 1313, "name": "FunctionDefinition", - "src": "10454:816:3" + "src": "10395:803:2" } ], - "id": 1418, + "id": 1314, "name": "ContractDefinition", - "src": "149:11123:3" + "src": "149:11051:2" } ], - "id": 1419, + "id": 1315, "name": "SourceUnit", - "src": "0:11273:3" + "src": "0:11201:2" }, "compiler": { "name": "solc", @@ -18083,5 +17062,5 @@ } }, "schemaVersion": "1.0.1", - "updatedAt": "2018-04-16T18:04:35.198Z" + "updatedAt": "2018-05-14T14:15:17.728Z" } \ No newline at end of file diff --git a/blockchain/contracts/ProofOfPhysicalAddress.sol b/blockchain/contracts/ProofOfPhysicalAddress.sol index 2fb7ae6e..543f3557 100644 --- a/blockchain/contracts/ProofOfPhysicalAddress.sol +++ b/blockchain/contracts/ProofOfPhysicalAddress.sol @@ -45,6 +45,17 @@ contract ProofOfPhysicalAddress { uint64 public totalAddresses; uint64 public totalConfirmed; + // Modifiers: + modifier onlyOwner() { + require(msg.sender == owner); + _; + } + + modifier checkUserExists(address wallet) { + require(userExists(wallet)); + _; + } + // Helpers: function signerIsValid(bytes32 data, uint8 v, bytes32 r, bytes32 s) public constant returns (bool) @@ -57,30 +68,26 @@ contract ProofOfPhysicalAddress { // Methods: // set address that is used on server-side to calculate signatures // and on contract-side to verify them - function setSigner(address newSigner) public { - require(msg.sender == owner); + function setSigner(address newSigner) public onlyOwner { signer = newSigner; } - function setRegistry(address newRegistry) public { - require(msg.sender == owner); + function setRegistry(address newRegistry) public onlyOwner { registry = EthereumClaimsRegistryInterface(newRegistry); } // withdraw specified amount of eth in wei function withdrawSome(uint256 amountWei) - public + public onlyOwner { - require(msg.sender == owner); require(address(this).balance >= amountWei); owner.transfer(amountWei); } // withdraw all available eth function withdrawAll() - public + public onlyOwner { - require(msg.sender == owner); require(address(this).balance > 0); owner.transfer(address(this).balance); } @@ -92,9 +99,8 @@ contract ProofOfPhysicalAddress { } function userAddressConfirmed(address wallet, uint256 addressIndex) - public constant returns (bool) + public constant checkUserExists(wallet) returns (bool) { - require(userExists(wallet)); bytes32 keccakIdentifier = users[wallet].physicalAddresses[addressIndex].keccakIdentifier; if (keccakIdentifier == 0x0) { @@ -106,9 +112,8 @@ contract ProofOfPhysicalAddress { // returns (found/not found, index if found/0 if not found, confirmed/not confirmed) function userAddressByCreationBlock(address wallet, uint256 creationBlock) - public constant returns (bool, uint256, bool) + public constant checkUserExists(wallet) returns (bool, uint256, bool) { - require(userExists(wallet)); for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) { if (users[wallet].physicalAddresses[ai].creationBlock == creationBlock) { return (true, ai, userAddressConfirmed(wallet, ai)); @@ -124,9 +129,9 @@ contract ProofOfPhysicalAddress { ) public constant + checkUserExists(wallet) returns(bool, uint256, bool, bytes32) { - require(userExists(wallet)); for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) { if (users[wallet].physicalAddresses[ai].confirmationCodeSha3 == confirmationCodeSha3) { return ( @@ -142,9 +147,8 @@ contract ProofOfPhysicalAddress { // returns (found/not found, index if found/0 if not found, confirmed/not confirmed) function userAddressByAddress(address wallet, string country, string state, string city, string location, string zip) - public constant returns(bool, uint256, bool) + public constant checkUserExists(wallet) returns(bool, uint256, bool) { - require(userExists(wallet)); bytes32 keccakIdentifier = keccak256(country, state, city, location, zip); for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) { if (users[wallet].physicalAddresses[ai].keccakIdentifier == keccakIdentifier) { @@ -156,18 +160,15 @@ contract ProofOfPhysicalAddress { // returns last name submitted to PoPA contract function userLastSubmittedName(address wallet) - public constant returns (string) + public constant checkUserExists(wallet) returns (string) { - require(userExists(wallet)); return users[wallet].physicalAddresses[users[wallet].physicalAddresses.length-1].name; } // returns name from the last confirmed address. If no addresses were confirmed returns '' function userLastConfirmedName(address wallet) - public constant returns (string) + public constant checkUserExists(wallet) returns (string) { - require(userExists(wallet)); - for (uint256 ai = users[wallet].physicalAddresses.length; ai > 0;) { ai--; if (userAddressConfirmed(wallet, ai)) { @@ -198,10 +199,9 @@ contract ProofOfPhysicalAddress { } function userAddress(address wallet, uint256 addressIndex) - public constant returns ( + public constant checkUserExists(wallet) returns ( string country, string state, string city, string location, string zip) { - require(userExists(wallet)); return ( users[wallet].physicalAddresses[addressIndex].country, users[wallet].physicalAddresses[addressIndex].state, @@ -212,21 +212,21 @@ contract ProofOfPhysicalAddress { } function userAddressInfo(address wallet, uint256 addressIndex) - public constant returns ( + public constant checkUserExists(wallet) returns ( string name, uint256 creationBlock, uint256 confirmationBlock, bytes32 keccakIdentifier ) { - require(userExists(wallet)); + uint256 _confirmationBlock = PhysicalAddressClaim.decodeConfirmation(registry.getClaim( + address(this), + wallet, + users[wallet].physicalAddresses[addressIndex].keccakIdentifier) + ); return ( users[wallet].physicalAddresses[addressIndex].name, users[wallet].physicalAddresses[addressIndex].creationBlock, - PhysicalAddressClaim.decodeConfirmation(registry.getClaim( - address(this), - wallet, - users[wallet].physicalAddresses[addressIndex].keccakIdentifier) - ), + _confirmationBlock, users[wallet].physicalAddresses[addressIndex].keccakIdentifier ); } @@ -289,9 +289,9 @@ contract ProofOfPhysicalAddress { totalAddresses += 1; } - function unregisterAddress(string country, string state, string city, string location, string zip) public { - require(userExists(msg.sender)); - + function unregisterAddress(string country, string state, string city, string location, string zip) + public checkUserExists(msg.sender) + { bool found; uint256 index; (found, index, ) = userAddressByAddress(msg.sender, country, state, city, location, zip); @@ -319,10 +319,9 @@ contract ProofOfPhysicalAddress { } function confirmAddress(string confirmationCodePlain, uint8 sigV, bytes32 sigR, bytes32 sigS) - public + public checkUserExists(msg.sender) { require(bytes(confirmationCodePlain).length > 0); - require(userExists(msg.sender)); bytes32 data = keccak256( msg.sender, From 21a5bfbf2b3ffd71d428b71e65c34506ac56da22 Mon Sep 17 00:00:00 2001 From: Franco Victorio Date: Wed, 16 May 2018 12:32:38 -0300 Subject: [PATCH 2/3] Add claimTokens method --- .../contracts/ProofOfPhysicalAddress.json | 6710 ++++++++++------- blockchain/contracts/ERC20.sol | 14 + .../contracts/ProofOfPhysicalAddress.sol | 15 + 3 files changed, 3846 insertions(+), 2893 deletions(-) create mode 100644 blockchain/contracts/ERC20.sol diff --git a/blockchain/build/contracts/ProofOfPhysicalAddress.json b/blockchain/build/contracts/ProofOfPhysicalAddress.json index 90d709c9..59ee53ea 100644 --- a/blockchain/build/contracts/ProofOfPhysicalAddress.json +++ b/blockchain/build/contracts/ProofOfPhysicalAddress.json @@ -115,6 +115,28 @@ "stateMutability": "nonpayable", "type": "constructor" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "token", + "type": "address" + }, + { + "indexed": false, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "ClaimedTokens", + "type": "event" + }, { "constant": true, "inputs": [ @@ -611,20 +633,38 @@ "payable": false, "stateMutability": "nonpayable", "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + } + ], + "name": "claimTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" } ], - "bytecode": "0x6060604052341561000f57600080fd5b6040516020806140cc83398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050613fae8061011e6000396000f300606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305831776146101595780630e666e49146101c5578063238ac933146102165780632c2a178e1461026b5780634028a0f1146104485780636c19e783146104855780637b103999146104be578063853828b6146105135780638da5cb5b14610528578063a5db3d021461057d578063a87430ba14610600578063a91ee0dc1461064d578063ae9b051c14610686578063b4778e2d146106a9578063b55fbd0414610914578063bff1f9e1146109c6578063c0fe077f14610a03578063c228251b14610a82578063c94f2c1b14610beb578063cfad527714610c38578063d673560414610c75578063d956be1014610d27578063de3d702e14610d8c578063e585332e14610dd9578063f0486ab414610f8b578063feea980814610fe5575b600080fd5b341561016457600080fd5b610199600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110bd565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b34156101d057600080fd5b6101fc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111cf565b604051808215151515815260200191505060405180910390f35b341561022157600080fd5b61022961121d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610446600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080356000191690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611243565b005b341561045357600080fd5b61045b6119b5565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561049057600080fd5b6104bc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119cf565b005b34156104c957600080fd5b6104d1611a6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561051e57600080fd5b610526611a94565b005b341561053357600080fd5b61053b611b8f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058857600080fd5b6105fe600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611bb4565b005b341561060b57600080fd5b610637600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f01565b6040518082815260200191505060405180910390f35b341561065857600080fd5b610684600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f1f565b005b341561069157600080fd5b6106a76004808035906020019091905050611fbe565b005b34156106b457600080fd5b6106e9600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506120a3565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019080838360005b8381101561073957808201518184015260208101905061071e565b50505050905090810190601f1680156107665780820380516001836020036101000a031916815260200191505b5086810385528a818151815260200191508051906020019080838360005b8381101561079f578082015181840152602081019050610784565b50505050905090810190601f1680156107cc5780820380516001836020036101000a031916815260200191505b50868103845289818151815260200191508051906020019080838360005b838110156108055780820151818401526020810190506107ea565b50505050905090810190601f1680156108325780820380516001836020036101000a031916815260200191505b50868103835288818151815260200191508051906020019080838360005b8381101561086b578082015181840152602081019050610850565b50505050905090810190601f1680156108985780820380516001836020036101000a031916815260200191505b50868103825287818151815260200191508051906020019080838360005b838110156108d15780820151818401526020810190506108b6565b50505050905090810190601f1680156108fe5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561091f57600080fd5b61094b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506125e1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098b578082015181840152602081019050610970565b50505050905090810190601f1680156109b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109d157600080fd5b6109d961278a565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610a0e57600080fd5b610a47600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035600019169060200190919050506127a4565b604051808515151515815260200184815260200183151515158152602001826000191660001916815260200194505050505060405180910390f35b3415610a8d57600080fd5b610be9600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061292e565b005b3415610bf657600080fd5b610c22600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612f04565b6040518082815260200191505060405180910390f35b3415610c4357600080fd5b610c4b612f8b565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610c8057600080fd5b610cac600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612fa5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cec578082015181840152602081019050610cd1565b50505050905090810190601f168015610d195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610d3257600080fd5b610d7260048080356000191690602001909190803560ff16906020019091908035600019169060200190919080356000191690602001909190505061310b565b604051808215151515815260200191505060405180910390f35b3415610d9757600080fd5b610dc3600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506132a7565b6040518082815260200191505060405180910390f35b3415610de457600080fd5b610f5f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506132f6565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b3415610f9657600080fd5b610fcb600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506135d1565b604051808215151515815260200191505060405180910390f35b3415610ff057600080fd5b611025600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061382c565b60405180806020018581526020018481526020018360001916600019168152602001828103825286818151815260200191508051906020019080838360005b8381101561107f578082015181840152602081019050611064565b50505050905090810190601f1680156110ac5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b600080600080856110cd816111cf565b15156110d857600080fd5b600091505b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508210156111b75785600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561117a57fe5b90600052602060002090600902016006015414156111aa5760018261119f89856135d1565b9450945094506111c6565b81806001019250506110dd565b60008060008191509450945094505b50509250925092565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061124e613c3c565b60008e5111151561125e57600080fd5b60008d5111151561126e57600080fd5b60008c5111151561127e57600080fd5b60008b5111151561128e57600080fd5b60008a5111151561129e57600080fd5b600089511115156112ae57600080fd5b8734101515156112bd57600080fd5b338e8e8e8e8e8e8e8e604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189805190602001908083835b60208310151561133c5780518252602082019150602081019050602083039250611317565b6001836020036101000a03801982511681845116808217855250505050505090500188805190602001908083835b60208310151561138f578051825260208201915060208101905060208303925061136a565b6001836020036101000a03801982511681845116808217855250505050505090500187805190602001908083835b6020831015156113e257805182526020820191506020810190506020830392506113bd565b6001836020036101000a03801982511681845116808217855250505050505090500186805190602001908083835b6020831015156114355780518252602082019150602081019050602083039250611410565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156114885780518252602082019150602081019050602083039250611463565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156114db57805182526020820191506020810190506020830392506114b6565b6001836020036101000a03801982511681845116808217855250505050505090500183815260200182600019166000191681526020019950505050505050505050604051809103902092506115328387878761310b565b151561153d57600080fd5b611546336111cf565b1561157257611559338e8e8e8e8e6132f6565b905050809250508115151561156d57600080fd5b6115fd565b43600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506001600460008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8d81600001819052508c81602001819052508b81604001819052508a8160600181905250898160800181905250888160a00181905250438160c00181815250508681610100019060001916908160001916815250508c8c8c8c8c6040518086805190602001908083835b60208310151561168c5780518252602082019150602081019050602083039250611667565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156116df57805182526020820191506020810190506020830392506116ba565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515611732578051825260208201915060208101905060208303925061170d565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831015156117855780518252602082019150602081019050602083039250611760565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156117d857805182526020820191506020810190506020830392506117b3565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390208160e001906000191690816000191681525050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180548060010182816118709190613cb3565b9160005260206000209060090201600083909190915060008201518160000190805190602001906118a2929190613ce5565b5060208201518160010190805190602001906118bf929190613ce5565b5060408201518160020190805190602001906118dc929190613ce5565b5060608201518160030190805190602001906118f9929190613ce5565b506080820151816004019080519060200190611916929190613ce5565b5060a0820151816005019080519060200190611933929190613ce5565b5060c0820151816006015560e0820151816007019060001916905561010082015181600801906000191690555050506001600460088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050505050505050505050505050565b600460109054906101000a900467ffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a2a57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aef57600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff1631111515611b1557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611b8d57600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600033611bc6816111cf565b1515611bd157600080fd5b60008a51111515611be157600080fd5b338a604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182805190602001908083835b602083101515611c595780518252602082019150602081019050602083039250611c34565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405180910390209550611c95868a8a8a61310b565b1515611ca057600080fd5b611d0c338b6040518082805190602001908083835b602083101515611cda5780518252602082019150602081019050602083039250611cb5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206127a4565b80955081965082975083985050505050841515611d2857600080fd5b82151515611d3557600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639918925d338473__PhysicalAddressClaim__________________63deb21fa2436000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1515611de857600080fd5b6102c65a03f41515611df957600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182600019166000191681526020019350505050600060405180830381600087803b1515611e9e57600080fd5b6102c65a03f11515611eaf57600080fd5b5050506001600460108282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050505050505050565b60036020528060005260406000206000915090508060000154905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f7a57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561201957600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561203f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156120a057600080fd5b50565b6120ab613d65565b6120b3613d65565b6120bb613d65565b6120c3613d65565b6120cb613d65565b866120d5816111cf565b15156120e057600080fd5b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018781548110151561212f57fe5b9060005260206000209060090201600101600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018881548110151561218f57fe5b9060005260206000209060090201600201600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101898154811015156121ef57fe5b9060005260206000209060090201600301600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a81548110151561224f57fe5b9060005260206000209060090201600401600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018b8154811015156122af57fe5b9060005260206000209060090201600501848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123555780601f1061232a57610100808354040283529160200191612355565b820191906000526020600020905b81548152906001019060200180831161233857829003601f168201915b50505050509450838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123f15780601f106123c6576101008083540402835291602001916123f1565b820191906000526020600020905b8154815290600101906020018083116123d457829003601f168201915b50505050509350828054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561248d5780601f106124625761010080835404028352916020019161248d565b820191906000526020600020905b81548152906001019060200180831161247057829003601f168201915b50505050509250818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125295780601f106124fe57610100808354040283529160200191612529565b820191906000526020600020905b81548152906001019060200180831161250c57829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125c55780601f1061259a576101008083540402835291602001916125c5565b820191906000526020600020905b8154815290600101906020018083116125a857829003601f168201915b5050505050905095509550955095509550509295509295909350565b6125e9613d65565b6000826125f5816111cf565b151561260057600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905091505b600082111561276f5781806001900392505061266584836135d1565b1561276a57600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101828154811015156126b957fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561275e5780601f106127335761010080835404028352916020019161275e565b820191906000526020600020905b81548152906001019060200180831161274157829003601f168201915b50505050509250612783565b612649565b602060405190810160405280600081525092505b5050919050565b600460009054906101000a900467ffffffffffffffff1681565b6000806000806000866127b6816111cf565b15156127c157600080fd5b600091505b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905082101561290b578660001916600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561286757fe5b9060005260206000209060090201600801546000191614156128fe576001826128908a856135d1565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101858154811015156128df57fe5b9060005260206000209060090201600701549550955095509550612923565b81806001019250506127c6565b60008060008082925080600102905095509550955095505b505092959194509250565b6000806000803361293e816111cf565b151561294957600080fd5b612957338b8b8b8b8b6132f6565b50809550819650505084151561296c57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7508ec73033600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101888154811015156129fb57fe5b9060005260206000209060090201600701546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b1515612acc57600080fd5b6102c65a03f11515612add57600080fd5b505050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905092508391505b60018303821015612d1e57600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018301815481101515612b8957fe5b9060005260206000209060090201600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183815481101515612be657fe5b906000526020600020906009020160008201816000019080546001816001161561010002031660029004612c1b929190613d79565b5060018201816001019080546001816001161561010002031660029004612c43929190613d79565b5060028201816002019080546001816001161561010002031660029004612c6b929190613d79565b5060038201816003019080546001816001161561010002031660029004612c93929190613d79565b5060048201816004019080546001816001161561010002031660029004612cbb929190613d79565b5060058201816005019080546001816001161561010002031660029004612ce3929190613d79565b506006820154816006015560078201548160070190600019169055600882015481600801906000191690559050508180600101925050612b2c565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018403815481101515612d7057fe5b906000526020600020906009020160008082016000612d8f9190613e00565b600182016000612d9f9190613e00565b600282016000612daf9190613e00565b600382016000612dbf9190613e00565b600482016000612dcf9190613e00565b600582016000612ddf9190613e00565b6006820160009055600782016000905560088201600090555050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480919060019003612e4e9190613e48565b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490501415612ef857600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000612ef59190613e7a565b50505b50505050505050505050565b6000806000809150600090505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050811015612f8157612f6884826135d1565b15612f74576001820191505b8080600101915050612f11565b8192505050919050565b600460089054906101000a900467ffffffffffffffff1681565b612fad613d65565b81612fb7816111cf565b1515612fc257600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381548110151561305957fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156130fe5780601f106130d3576101008083540402835291602001916130fe565b820191906000526020600020905b8154815290600101906020018083116130e157829003601f168201915b5050505050915050919050565b6000613115613e9e565b60006040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250915081876040518083805190602001908083835b6020831015156131865780518252602082019150602081019050602083039250613161565b6001836020036101000a03801982511681845116808217855250505050505090500182600019166000191681526020019250505060405180910390209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600182888888604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f1151561327b57600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490509050919050565b60008060008060008a613308816111cf565b151561331357600080fd5b8a8a8a8a8a6040518086805190602001908083835b60208310151561334d5780518252602082019150602081019050602083039250613328565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156133a0578051825260208201915060208101905060208303925061337b565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156133f357805182526020820191506020810190506020830392506133ce565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831015156134465780518252602082019150602081019050602083039250613421565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156134995780518252602082019150602081019050602083039250613474565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390209250600091505b600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508210156135b3578260001916600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561357257fe5b9060005260206000209060090201600701546000191614156135a65760018261359b8e856135d1565b9550955095506135c2565b81806001019250506134d1565b60008060008191509550955095505b50505096509650969350505050565b600080836135de816111cf565b15156135e957600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561363857fe5b90600052602060002090600902016007015491506000600102826000191614156136655760009250613824565b600073__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308a886000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b151561378a57600080fd5b6102c65a03f1151561379b57600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b151561380557600080fd5b6102c65a03f4151561381657600080fd5b505050604051805190501192505b505092915050565b613834613d65565b60008060008086613844816111cf565b151561384f57600080fd5b73__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308c600360008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018d8154811015156138f857fe5b9060005260206000209060090201600701546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b15156139d257600080fd5b6102c65a03f115156139e357600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b1515613a4d57600080fd5b6102c65a03f41515613a5e57600080fd5b505050604051805190509150600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515613ab957fe5b9060005260206000209060090201600001600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010188815481101515613b1957fe5b90600052602060002090600902016006015483600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a815481101515613b7b57fe5b906000526020600020906009020160070154838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613c225780601f10613bf757610100808354040283529160200191613c22565b820191906000526020600020905b815481529060010190602001808311613c0557829003601f168201915b505050505093509550955095509550505092959194509250565b61012060405190810160405280613c51613eb2565b8152602001613c5e613eb2565b8152602001613c6b613eb2565b8152602001613c78613eb2565b8152602001613c85613eb2565b8152602001613c92613eb2565b81526020016000815260200160008019168152602001600080191681525090565b815481835581811511613ce057600902816009028360005260206000209182019101613cdf9190613ec6565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613d2657805160ff1916838001178555613d54565b82800160010185558215613d54579182015b82811115613d53578251825591602001919060010190613d38565b5b509050613d619190613f5d565b5090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613db25780548555613def565b82800160010185558215613def57600052602060002091601f016020900482015b82811115613dee578254825591600101919060010190613dd3565b5b509050613dfc9190613f5d565b5090565b50805460018160011615610100020316600290046000825580601f10613e265750613e45565b601f016020900490600052602060002090810190613e449190613f5d565b5b50565b815481835581811511613e7557600902816009028360005260206000209182019101613e749190613ec6565b5b505050565b5080546000825560090290600052602060002090810190613e9b9190613ec6565b50565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b613f5a91905b80821115613f565760008082016000613ee59190613e00565b600182016000613ef59190613e00565b600282016000613f059190613e00565b600382016000613f159190613e00565b600482016000613f259190613e00565b600582016000613f359190613e00565b60068201600090556007820160009055600882016000905550600901613ecc565b5090565b90565b613f7f91905b80821115613f7b576000816000905550600101613f63565b5090565b905600a165627a7a72305820fac0df76ebf6d4119e004e0bb55b63d7cb09c09270cadca76180194b74e2577b0029", - "deployedBytecode": "0x606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305831776146101595780630e666e49146101c5578063238ac933146102165780632c2a178e1461026b5780634028a0f1146104485780636c19e783146104855780637b103999146104be578063853828b6146105135780638da5cb5b14610528578063a5db3d021461057d578063a87430ba14610600578063a91ee0dc1461064d578063ae9b051c14610686578063b4778e2d146106a9578063b55fbd0414610914578063bff1f9e1146109c6578063c0fe077f14610a03578063c228251b14610a82578063c94f2c1b14610beb578063cfad527714610c38578063d673560414610c75578063d956be1014610d27578063de3d702e14610d8c578063e585332e14610dd9578063f0486ab414610f8b578063feea980814610fe5575b600080fd5b341561016457600080fd5b610199600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110bd565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b34156101d057600080fd5b6101fc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111cf565b604051808215151515815260200191505060405180910390f35b341561022157600080fd5b61022961121d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610446600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080356000191690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611243565b005b341561045357600080fd5b61045b6119b5565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561049057600080fd5b6104bc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119cf565b005b34156104c957600080fd5b6104d1611a6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561051e57600080fd5b610526611a94565b005b341561053357600080fd5b61053b611b8f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058857600080fd5b6105fe600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611bb4565b005b341561060b57600080fd5b610637600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f01565b6040518082815260200191505060405180910390f35b341561065857600080fd5b610684600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f1f565b005b341561069157600080fd5b6106a76004808035906020019091905050611fbe565b005b34156106b457600080fd5b6106e9600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506120a3565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019080838360005b8381101561073957808201518184015260208101905061071e565b50505050905090810190601f1680156107665780820380516001836020036101000a031916815260200191505b5086810385528a818151815260200191508051906020019080838360005b8381101561079f578082015181840152602081019050610784565b50505050905090810190601f1680156107cc5780820380516001836020036101000a031916815260200191505b50868103845289818151815260200191508051906020019080838360005b838110156108055780820151818401526020810190506107ea565b50505050905090810190601f1680156108325780820380516001836020036101000a031916815260200191505b50868103835288818151815260200191508051906020019080838360005b8381101561086b578082015181840152602081019050610850565b50505050905090810190601f1680156108985780820380516001836020036101000a031916815260200191505b50868103825287818151815260200191508051906020019080838360005b838110156108d15780820151818401526020810190506108b6565b50505050905090810190601f1680156108fe5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561091f57600080fd5b61094b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506125e1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098b578082015181840152602081019050610970565b50505050905090810190601f1680156109b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109d157600080fd5b6109d961278a565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610a0e57600080fd5b610a47600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035600019169060200190919050506127a4565b604051808515151515815260200184815260200183151515158152602001826000191660001916815260200194505050505060405180910390f35b3415610a8d57600080fd5b610be9600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061292e565b005b3415610bf657600080fd5b610c22600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612f04565b6040518082815260200191505060405180910390f35b3415610c4357600080fd5b610c4b612f8b565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610c8057600080fd5b610cac600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612fa5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cec578082015181840152602081019050610cd1565b50505050905090810190601f168015610d195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610d3257600080fd5b610d7260048080356000191690602001909190803560ff16906020019091908035600019169060200190919080356000191690602001909190505061310b565b604051808215151515815260200191505060405180910390f35b3415610d9757600080fd5b610dc3600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506132a7565b6040518082815260200191505060405180910390f35b3415610de457600080fd5b610f5f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506132f6565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b3415610f9657600080fd5b610fcb600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506135d1565b604051808215151515815260200191505060405180910390f35b3415610ff057600080fd5b611025600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061382c565b60405180806020018581526020018481526020018360001916600019168152602001828103825286818151815260200191508051906020019080838360005b8381101561107f578082015181840152602081019050611064565b50505050905090810190601f1680156110ac5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b600080600080856110cd816111cf565b15156110d857600080fd5b600091505b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508210156111b75785600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561117a57fe5b90600052602060002090600902016006015414156111aa5760018261119f89856135d1565b9450945094506111c6565b81806001019250506110dd565b60008060008191509450945094505b50509250925092565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061124e613c3c565b60008e5111151561125e57600080fd5b60008d5111151561126e57600080fd5b60008c5111151561127e57600080fd5b60008b5111151561128e57600080fd5b60008a5111151561129e57600080fd5b600089511115156112ae57600080fd5b8734101515156112bd57600080fd5b338e8e8e8e8e8e8e8e604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189805190602001908083835b60208310151561133c5780518252602082019150602081019050602083039250611317565b6001836020036101000a03801982511681845116808217855250505050505090500188805190602001908083835b60208310151561138f578051825260208201915060208101905060208303925061136a565b6001836020036101000a03801982511681845116808217855250505050505090500187805190602001908083835b6020831015156113e257805182526020820191506020810190506020830392506113bd565b6001836020036101000a03801982511681845116808217855250505050505090500186805190602001908083835b6020831015156114355780518252602082019150602081019050602083039250611410565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156114885780518252602082019150602081019050602083039250611463565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156114db57805182526020820191506020810190506020830392506114b6565b6001836020036101000a03801982511681845116808217855250505050505090500183815260200182600019166000191681526020019950505050505050505050604051809103902092506115328387878761310b565b151561153d57600080fd5b611546336111cf565b1561157257611559338e8e8e8e8e6132f6565b905050809250508115151561156d57600080fd5b6115fd565b43600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506001600460008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8d81600001819052508c81602001819052508b81604001819052508a8160600181905250898160800181905250888160a00181905250438160c00181815250508681610100019060001916908160001916815250508c8c8c8c8c6040518086805190602001908083835b60208310151561168c5780518252602082019150602081019050602083039250611667565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156116df57805182526020820191506020810190506020830392506116ba565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515611732578051825260208201915060208101905060208303925061170d565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831015156117855780518252602082019150602081019050602083039250611760565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156117d857805182526020820191506020810190506020830392506117b3565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390208160e001906000191690816000191681525050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180548060010182816118709190613cb3565b9160005260206000209060090201600083909190915060008201518160000190805190602001906118a2929190613ce5565b5060208201518160010190805190602001906118bf929190613ce5565b5060408201518160020190805190602001906118dc929190613ce5565b5060608201518160030190805190602001906118f9929190613ce5565b506080820151816004019080519060200190611916929190613ce5565b5060a0820151816005019080519060200190611933929190613ce5565b5060c0820151816006015560e0820151816007019060001916905561010082015181600801906000191690555050506001600460088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050505050505050505050505050565b600460109054906101000a900467ffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a2a57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aef57600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff1631111515611b1557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611b8d57600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600033611bc6816111cf565b1515611bd157600080fd5b60008a51111515611be157600080fd5b338a604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182805190602001908083835b602083101515611c595780518252602082019150602081019050602083039250611c34565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405180910390209550611c95868a8a8a61310b565b1515611ca057600080fd5b611d0c338b6040518082805190602001908083835b602083101515611cda5780518252602082019150602081019050602083039250611cb5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206127a4565b80955081965082975083985050505050841515611d2857600080fd5b82151515611d3557600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639918925d338473__PhysicalAddressClaim__________________63deb21fa2436000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1515611de857600080fd5b6102c65a03f41515611df957600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182600019166000191681526020019350505050600060405180830381600087803b1515611e9e57600080fd5b6102c65a03f11515611eaf57600080fd5b5050506001600460108282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050505050505050565b60036020528060005260406000206000915090508060000154905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f7a57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561201957600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561203f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156120a057600080fd5b50565b6120ab613d65565b6120b3613d65565b6120bb613d65565b6120c3613d65565b6120cb613d65565b866120d5816111cf565b15156120e057600080fd5b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018781548110151561212f57fe5b9060005260206000209060090201600101600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018881548110151561218f57fe5b9060005260206000209060090201600201600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101898154811015156121ef57fe5b9060005260206000209060090201600301600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a81548110151561224f57fe5b9060005260206000209060090201600401600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018b8154811015156122af57fe5b9060005260206000209060090201600501848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123555780601f1061232a57610100808354040283529160200191612355565b820191906000526020600020905b81548152906001019060200180831161233857829003601f168201915b50505050509450838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123f15780601f106123c6576101008083540402835291602001916123f1565b820191906000526020600020905b8154815290600101906020018083116123d457829003601f168201915b50505050509350828054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561248d5780601f106124625761010080835404028352916020019161248d565b820191906000526020600020905b81548152906001019060200180831161247057829003601f168201915b50505050509250818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125295780601f106124fe57610100808354040283529160200191612529565b820191906000526020600020905b81548152906001019060200180831161250c57829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125c55780601f1061259a576101008083540402835291602001916125c5565b820191906000526020600020905b8154815290600101906020018083116125a857829003601f168201915b5050505050905095509550955095509550509295509295909350565b6125e9613d65565b6000826125f5816111cf565b151561260057600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905091505b600082111561276f5781806001900392505061266584836135d1565b1561276a57600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101828154811015156126b957fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561275e5780601f106127335761010080835404028352916020019161275e565b820191906000526020600020905b81548152906001019060200180831161274157829003601f168201915b50505050509250612783565b612649565b602060405190810160405280600081525092505b5050919050565b600460009054906101000a900467ffffffffffffffff1681565b6000806000806000866127b6816111cf565b15156127c157600080fd5b600091505b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905082101561290b578660001916600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561286757fe5b9060005260206000209060090201600801546000191614156128fe576001826128908a856135d1565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101858154811015156128df57fe5b9060005260206000209060090201600701549550955095509550612923565b81806001019250506127c6565b60008060008082925080600102905095509550955095505b505092959194509250565b6000806000803361293e816111cf565b151561294957600080fd5b612957338b8b8b8b8b6132f6565b50809550819650505084151561296c57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7508ec73033600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101888154811015156129fb57fe5b9060005260206000209060090201600701546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b1515612acc57600080fd5b6102c65a03f11515612add57600080fd5b505050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905092508391505b60018303821015612d1e57600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018301815481101515612b8957fe5b9060005260206000209060090201600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183815481101515612be657fe5b906000526020600020906009020160008201816000019080546001816001161561010002031660029004612c1b929190613d79565b5060018201816001019080546001816001161561010002031660029004612c43929190613d79565b5060028201816002019080546001816001161561010002031660029004612c6b929190613d79565b5060038201816003019080546001816001161561010002031660029004612c93929190613d79565b5060048201816004019080546001816001161561010002031660029004612cbb929190613d79565b5060058201816005019080546001816001161561010002031660029004612ce3929190613d79565b506006820154816006015560078201548160070190600019169055600882015481600801906000191690559050508180600101925050612b2c565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018403815481101515612d7057fe5b906000526020600020906009020160008082016000612d8f9190613e00565b600182016000612d9f9190613e00565b600282016000612daf9190613e00565b600382016000612dbf9190613e00565b600482016000612dcf9190613e00565b600582016000612ddf9190613e00565b6006820160009055600782016000905560088201600090555050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480919060019003612e4e9190613e48565b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490501415612ef857600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000612ef59190613e7a565b50505b50505050505050505050565b6000806000809150600090505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050811015612f8157612f6884826135d1565b15612f74576001820191505b8080600101915050612f11565b8192505050919050565b600460089054906101000a900467ffffffffffffffff1681565b612fad613d65565b81612fb7816111cf565b1515612fc257600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381548110151561305957fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156130fe5780601f106130d3576101008083540402835291602001916130fe565b820191906000526020600020905b8154815290600101906020018083116130e157829003601f168201915b5050505050915050919050565b6000613115613e9e565b60006040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250915081876040518083805190602001908083835b6020831015156131865780518252602082019150602081019050602083039250613161565b6001836020036101000a03801982511681845116808217855250505050505090500182600019166000191681526020019250505060405180910390209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600182888888604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f1151561327b57600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490509050919050565b60008060008060008a613308816111cf565b151561331357600080fd5b8a8a8a8a8a6040518086805190602001908083835b60208310151561334d5780518252602082019150602081019050602083039250613328565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156133a0578051825260208201915060208101905060208303925061337b565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156133f357805182526020820191506020810190506020830392506133ce565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831015156134465780518252602082019150602081019050602083039250613421565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156134995780518252602082019150602081019050602083039250613474565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390209250600091505b600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508210156135b3578260001916600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561357257fe5b9060005260206000209060090201600701546000191614156135a65760018261359b8e856135d1565b9550955095506135c2565b81806001019250506134d1565b60008060008191509550955095505b50505096509650969350505050565b600080836135de816111cf565b15156135e957600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561363857fe5b90600052602060002090600902016007015491506000600102826000191614156136655760009250613824565b600073__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308a886000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b151561378a57600080fd5b6102c65a03f1151561379b57600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b151561380557600080fd5b6102c65a03f4151561381657600080fd5b505050604051805190501192505b505092915050565b613834613d65565b60008060008086613844816111cf565b151561384f57600080fd5b73__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308c600360008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018d8154811015156138f857fe5b9060005260206000209060090201600701546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b15156139d257600080fd5b6102c65a03f115156139e357600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b1515613a4d57600080fd5b6102c65a03f41515613a5e57600080fd5b505050604051805190509150600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515613ab957fe5b9060005260206000209060090201600001600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010188815481101515613b1957fe5b90600052602060002090600902016006015483600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a815481101515613b7b57fe5b906000526020600020906009020160070154838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613c225780601f10613bf757610100808354040283529160200191613c22565b820191906000526020600020905b815481529060010190602001808311613c0557829003601f168201915b505050505093509550955095509550505092959194509250565b61012060405190810160405280613c51613eb2565b8152602001613c5e613eb2565b8152602001613c6b613eb2565b8152602001613c78613eb2565b8152602001613c85613eb2565b8152602001613c92613eb2565b81526020016000815260200160008019168152602001600080191681525090565b815481835581811511613ce057600902816009028360005260206000209182019101613cdf9190613ec6565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613d2657805160ff1916838001178555613d54565b82800160010185558215613d54579182015b82811115613d53578251825591602001919060010190613d38565b5b509050613d619190613f5d565b5090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613db25780548555613def565b82800160010185558215613def57600052602060002091601f016020900482015b82811115613dee578254825591600101919060010190613dd3565b5b509050613dfc9190613f5d565b5090565b50805460018160011615610100020316600290046000825580601f10613e265750613e45565b601f016020900490600052602060002090810190613e449190613f5d565b5b50565b815481835581811511613e7557600902816009028360005260206000209182019101613e749190613ec6565b5b505050565b5080546000825560090290600052602060002090810190613e9b9190613ec6565b50565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b613f5a91905b80821115613f565760008082016000613ee59190613e00565b600182016000613ef59190613e00565b600282016000613f059190613e00565b600382016000613f159190613e00565b600482016000613f259190613e00565b600582016000613f359190613e00565b60068201600090556007820160009055600882016000905550600901613ecc565b5090565b90565b613f7f91905b80821115613f7b576000816000905550600101613f63565b5090565b905600a165627a7a72305820fac0df76ebf6d4119e004e0bb55b63d7cb09c09270cadca76180194b74e2577b0029", - "sourceMap": "149:11051:2:-;;;592:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;672:10;664:5;;:18;;;;;;;;;;;;;;;;;;701:5;;;;;;;;;;;692:6;;:14;;;;;;;;;;;;;;;;;;759:9;716:8;;:53;;;;;;;;;;;;;;;;;;592:184;149:11051;;;;;;", - "deployedSourceMap": "149:11051:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2986:455;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2319:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;213:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7699:1694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1007:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1686:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;240:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2167:146;;;;;;;;;;;;;;187:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10395:803;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;883:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1782:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;1966:161;;;;;;;;;;;;;;;;;;;;;;;;;;6356:558;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5284:374:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;943:24:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3536:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9399:990;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6025:325;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4969:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1261:289:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5760:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4325:586;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2457:434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6920:752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2986:455:2;3114:4;3120:7;3129:4;3154:10;3097:6;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;3167:1;3154:14;;3149:252;3175:5;:13;3181:6;3175:13;;;;;;;;;;;;;;;:31;;:38;;;;3170:2;:43;3149:252;;;3292:13;3239:5;:13;3245:6;3239:13;;;;;;;;;;;;;;;:31;;3271:2;3239:35;;;;;;;;;;;;;;;;;;;;:49;;;:66;3235:156;;;3333:4;3339:2;3343:32;3364:6;3372:2;3343:20;:32::i;:::-;3325:51;;;;;;;;3235:156;3215:4;;;;;;;3149:252;;;3418:5;3425:1;3428:5;3410:24;;;;;;;;;1231:1;2986:455;;;;;;;:::o;2319:132::-;2384:4;2442:1;2412:5;:13;2418:6;2412:13;;;;;;;;;;;;;;;:27;;;:31;2404:40;;2319:132;;;:::o;213:21::-;;;;;;;;;;;;;:::o;7699:1694::-;8257:12;8654:10;8943:25;;:::i;:::-;7992:1;7977:4;7971:18;:22;7963:31;;;;;;;;8036:1;8018:7;8012:21;:25;8004:34;;;;;;;;8078:1;8062:5;8056:19;:23;8048:32;;;;;;;;8119:1;8104:4;8098:18;:22;8090:31;;;;;;;;8164:1;8145:8;8139:22;:26;8131:35;;;;;;;;8204:1;8190:3;8184:17;:21;8176:30;;;;;;;;8237:8;8224:9;:21;;8216:30;;;;;;;;8295:10;8319:4;8337:7;8358:5;8377:4;8395:8;8417:3;8434:8;8456:20;8272:214;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8257:229:2;;8504:37;8518:4;8524;8530;8536;8504:13;:37::i;:::-;8496:46;;;;;;;;8557:22;8568:10;8557;:22::i;:::-;8553:380;;;8692:69;8713:10;8725:7;8734:5;8741:4;8747:8;8757:3;8692:20;:69::i;:::-;8678:83;;;;;;;8785:5;8784:6;8776:15;;;;;;;;8553:380;;;8880:12;8846:5;:17;8852:10;8846:17;;;;;;;;;;;;;;;:31;;:46;;;;8921:1;8907:10;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8553:380;8989:4;8979:2;:7;;:14;;;;9016:7;9003:2;:10;;:20;;;;9044:5;9033:2;:8;;:16;;;;9069:4;9059:2;:7;;:14;;;;9097:8;9083:2;:11;;:22;;;;9124:3;9115:2;:6;;:12;;;;9156;9137:2;:16;;:31;;;;;9204:20;9178:2;:23;;:46;;;;;;;;;;;;;9266:7;9275:5;9282:4;9288:8;9298:3;9256:46;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;9234:2:2;:19;;:68;;;;;;;;;;;;;9312:5;:17;9318:10;9312:17;;;;;;;;;;;;;;;:35;;:44;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;9353:2;9312:44;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9385:1;9367:14;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7699:1694;;;;;;;;;;;;;;:::o;1007:28::-;;;;;;;;;;;;;:::o;1686:90::-;1113:5;;;;;;;;;;;1099:19;;:10;:19;;;1091:28;;;;;;;;1760:9;1751:6;;:18;;;;;;;;;;;;;;;;;;1686:90;:::o;240:47::-;;;;;;;;;;;;;:::o;2167:146::-;1113:5;;;;;;;;;;;1099:19;;:10;:19;;;1091:28;;;;;;;;2257:1;2241:4;2233:21;;;:25;2225:34;;;;;;;;2269:5;;;;;;;;;;;:14;;:37;2292:4;2284:21;;;2269:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2167:146::o;187:20::-;;;;;;;;;;;;;:::o;10395:803::-;10601:12;10761:10;10781:7;10798:14;10822:24;10516:10;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;10588:1;10556:21;10550:35;:39;10542:48;;;;;;;;10639:10;10663:21;10616:78;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;10601:93:2;;10712:37;10726:4;10732;10738;10744;10712:13;:37::i;:::-;10704:46;;;;;;;;10899:109;10942:10;10976:21;10966:32;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;10899:29:2;:109::i;:::-;10856:152;;;;;;;;;;;;;;;;11026:5;11018:14;;;;;;;;11051:9;11050:10;11042:19;;;;;;;;11072:8;;;;;;;;;;;:17;;;11090:10;11102:16;11120:20;:27;11148:12;11120:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11072:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11190:1;11172:14;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10395:803;;;;;;;;;;:::o;883:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;1782:131::-;1113:5;;;;;;;;;;;1099:19;;:10;:19;;;1091:28;;;;;;;;1894:11;1851:8;;:55;;;;;;;;;;;;;;;;;;1782:131;:::o;1966:161::-;1113:5;;;;;;;;;;;1099:19;;:10;:19;;;1091:28;;;;;;;;2075:9;2058:4;2050:21;;;:34;;2042:43;;;;;;;;2095:5;;;;;;;;;;;:14;;:25;2110:9;2095:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1966:161;:::o;6356:558::-;6477:14;;:::i;:::-;6493:12;;:::i;:::-;6507:11;;:::i;:::-;6520:15;;:::i;:::-;6537:10;;:::i;:::-;6451:6;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;6584:5;:13;6590:6;6584:13;;;;;;;;;;;;;;;:31;;6616:12;6584:45;;;;;;;;;;;;;;;;;;;;:53;;6651:5;:13;6657:6;6651:13;;;;;;;;;;;;;;;:31;;6683:12;6651:45;;;;;;;;;;;;;;;;;;;;:51;;6716:5;:13;6722:6;6716:13;;;;;;;;;;;;;;;:31;;6748:12;6716:45;;;;;;;;;;;;;;;;;;;;:50;;6780:5;:13;6786:6;6780:13;;;;;;;;;;;;;;;:31;;6812:12;6780:45;;;;;;;;;;;;;;;;;;;;:54;;6848:5;:13;6854:6;6848:13;;;;;;;;;;;;;;;:31;;6880:12;6848:45;;;;;;;;;;;;;;;;;;;;:49;;6563:344;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6356:558;;;;;;;;;:::o;5284:374::-;5384:6;;:::i;:::-;5411:10;5367:6;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;5424:5;:13;5430:6;5424:13;;;;;;;;;;;;;;;:31;;:38;;;;5411:51;;5406:227;5469:1;5464:2;:6;5406:227;;;5487:4;;;;;;;;5509:32;5530:6;5538:2;5509:20;:32::i;:::-;5505:118;;;5568:5;:13;5574:6;5568:13;;;;;;;;;;;;;;;:31;;5600:2;5568:35;;;;;;;;;;;;;;;;;;;;:40;;5561:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5505:118;5406:227;;;5642:9;;;;;;;;;;;;;;;1231:1;5284:374;;;;;:::o;943:24::-;;;;;;;;;;;;;:::o;3536:694::-;3723:4;3729:7;3738:4;3744:7;3772:10;3699:6;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;3785:1;3772:14;;3767:418;3793:5;:13;3799:6;3793:13;;;;;;;;;;;;;;;:31;;:38;;;;3788:2;:43;3767:418;;;3917:20;3857:80;;;:5;:13;3863:6;3857:13;;;;;;;;;;;;;;;:31;;3889:2;3857:35;;;;;;;;;;;;;;;;;;;;:56;;;:80;;;;3853:322;;;3986:4;4012:2;4036:32;4057:6;4065:2;4036:20;:32::i;:::-;4090:5;:13;4096:6;4090:13;;;;;;;;;;;;;;;:31;;4122:2;4090:35;;;;;;;;;;;;;;;;;;;;:52;;;3957:203;;;;;;;;;;3853:322;3833:4;;;;;;;3767:418;;;4202:5;4209:1;4212:5;4219:3;4194:29;;;;;;;;;;;;;;;;1231:1;3536:694;;;;;;;;;:::o;9399:990::-;9555:10;9575:13;9931:14;10006:9;9529:10;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;9617:69;9638:10;9650:7;9659:5;9666:4;9672:8;9682:3;9617:20;:69::i;:::-;9598:88;;;;;;;;;9704:5;9696:14;;;;;;;;9721:8;;;;;;;;;;;:20;;;9763:4;9782:10;9806:5;:17;9812:10;9806:17;;;;;;;;;;;;;;;:35;;9842:5;9806:42;;;;;;;;;;;;;;;;;;;;:59;;;9721:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9948:5;:17;9954:10;9948:17;;;;;;;;;;;;;;;:35;;:42;;;;9931:59;;10018:5;10006:17;;10001:151;10038:1;10029:6;:10;10025:1;:14;10001:151;;;10101:5;:17;10107:10;10101:17;;;;;;;;;;;;;;;:35;;10139:1;10137;:3;10101:40;;;;;;;;;;;;;;;;;;;;10060:5;:17;10066:10;10060:17;;;;;;;;;;;;;;;:35;;10096:1;10060:38;;;;;;;;;;;;;;;;;;;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10041:3;;;;;;;10001:151;;;10169:5;:17;10175:10;10169:17;;;;;;;;;;;;;;;:35;;10214:1;10205:6;:10;10169:47;;;;;;;;;;;;;;;;;;;;;10162:54;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10226:5;:17;10232:10;10226:17;;;;;;;;;;;;;;;:35;;:44;;;;;;;;;;;;:::i;:::-;;10331:1;10285:5;:17;10291:10;10285:17;;;;;;;;;;;;;;;:35;;:42;;;;:47;10281:102;;;10355:5;:17;10361:10;10355:17;;;;;;;;;;;;;;;;10348:24;;;;;;;;;;;;;;:::i;:::-;;;10281:102;9399:990;;;;;;;;;;:::o;6025:325::-;6107:7;6130:9;6158:10;6142:1;6130:13;;6171:1;6158:14;;6153:173;6179:5;:13;6185:6;6179:13;;;;;;;;;;;;;;;:31;;:38;;;;6174:2;:43;6153:173;;;6243:32;6264:6;6272:2;6243:20;:32::i;:::-;6239:77;;;6300:1;6295:6;;;;6239:77;6219:4;;;;;;;6153:173;;;6342:1;6335:8;;6025:325;;;;;:::o;973:28::-;;;;;;;;;;;;;:::o;4969:214::-;5069:6;;:::i;:::-;5052;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;5098:5;:13;5104:6;5098:13;;;;;;;;;;;;;;;:31;;5169:1;5130:5;:13;5136:6;5130:13;;;;;;;;;;;;;;;:31;;:38;;;;:40;5098:73;;;;;;;;;;;;;;;;;;;;:78;;5091:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4969:214;;;;:::o;1261:289::-;1358:4;1378:19;;:::i;:::-;1444:16;1378:56;;;;;;;;;;;;;;;;;;;;1473:6;1481:4;1463:23;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1444:42:2;;1536:6;;;;;;;;;;;1504:38;;:28;1514:8;1524:1;1527;1530;1504:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1496:47;;1261:289;;;;;;;;:::o;5760:157::-;5842:7;5872:5;:13;5878:6;5872:13;;;;;;;;;;;;;;;:31;;:38;;;;5865:45;;5760:157;;;:::o;4325:586::-;4495:4;4501:7;4510:4;4530:24;4618:10;4479:6;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;4567:7;4576:5;4583:4;4589:8;4599:3;4557:46;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;4530:73:2;;4631:1;4618:14;;4613:258;4639:5;:13;4645:6;4639:13;;;;;;;;;;;;;;;:31;;:38;;;;4634:2;:43;4613:258;;;4759:16;4703:72;;;:5;:13;4709:6;4703:13;;;;;;;;;;;;;;;:31;;4735:2;4703:35;;;;;;;;;;;;;;;;;;;;:52;;;:72;;;;4699:162;;;4803:4;4809:2;4813:32;4834:6;4842:2;4813:20;:32::i;:::-;4795:51;;;;;;;;4699:162;4679:4;;;;;;;4613:258;;;4888:5;4895:1;4898:5;4880:24;;;;;;;;;1231:1;4325:586;;;;;;;;;;;;;:::o;2457:434::-;2578:4;2598:24;2561:6;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;2625:5;:13;2631:6;2625:13;;;;;;;;;;;;;;;:31;;2657:12;2625:45;;;;;;;;;;;;;;;;;;;;:62;;;2598:89;;2722:3;2702:23;;:16;:23;;;;2698:66;;;2748:5;2741:12;;;;2698:66;2883:1;2781:20;:39;2821:8;;;;;;;;;;;:17;;;2847:4;2854:6;2862:16;2821:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2781:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:103;2774:110;;1231:1;2457:434;;;;;;:::o;6920:752::-;7045:11;;:::i;:::-;7066:21;7097:25;7132:24;7173:26;7019:6;1202:18;1213:6;1202:10;:18::i;:::-;1194:27;;;;;;;;7202:20;:39;7242:8;;;;;;;;;;;:17;;;7281:4;7300:6;7320:5;:13;7326:6;7320:13;;;;;;;;;;;;;;;:31;;7352:12;7320:45;;;;;;;;;;;;;;;;;;;;:62;;;7242:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7202:191;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7173:220;;7424:5;:13;7430:6;7424:13;;;;;;;;;;;;;;;:31;;7456:12;7424:45;;;;;;;;;;;;;;;;;;;;:50;;7488:5;:13;7494:6;7488:13;;;;;;;;;;;;;;;:31;;7520:12;7488:45;;;;;;;;;;;;;;;;;;;;:59;;;7561:18;7593:5;:13;7599:6;7593:13;;;;;;;;;;;;;;;:31;;7625:12;7593:45;;;;;;;;;;;;;;;;;;;;:62;;;7403:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6920:752;;;;;;;;;:::o;149:11051::-;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.19;\n\nimport \"./EthereumClaimsRegistryInterface.sol\";\nimport \"./PhysicalAddressClaim.sol\";\n\n\n// Checks -> Effects -> Interactions\ncontract ProofOfPhysicalAddress {\n address public owner;\n address public signer;\n EthereumClaimsRegistryInterface public registry;\n\n // Main structures:\n struct PhysicalAddress {\n string name;\n\n string country;\n string state;\n string city;\n string location;\n string zip;\n\n uint256 creationBlock;\n bytes32 keccakIdentifier;\n bytes32 confirmationCodeSha3;\n }\n\n function ProofOfPhysicalAddress(address _registry) public\n {\n owner = msg.sender;\n signer = owner;\n registry = EthereumClaimsRegistryInterface(_registry);\n }\n\n struct User {\n uint256 creationBlock;\n PhysicalAddress[] physicalAddresses;\n }\n\n mapping (address => User) public users;\n\n // Stats:\n\n uint64 public totalUsers;\n uint64 public totalAddresses;\n uint64 public totalConfirmed;\n\n // Modifiers:\n modifier onlyOwner() {\n require(msg.sender == owner);\n _;\n }\n\n modifier checkUserExists(address wallet) {\n require(userExists(wallet));\n _;\n }\n\n // Helpers:\n function signerIsValid(bytes32 data, uint8 v, bytes32 r, bytes32 s)\n public constant returns (bool)\n {\n bytes memory prefix = \"\\x19Ethereum Signed Message:\\n32\";\n bytes32 prefixed = keccak256(prefix, data);\n return (ecrecover(prefixed, v, r, s) == signer);\n }\n\n // Methods:\n // set address that is used on server-side to calculate signatures\n // and on contract-side to verify them\n function setSigner(address newSigner) public onlyOwner {\n signer = newSigner;\n }\n\n function setRegistry(address newRegistry) public onlyOwner {\n registry = EthereumClaimsRegistryInterface(newRegistry);\n }\n\n // withdraw specified amount of eth in wei\n function withdrawSome(uint256 amountWei)\n public onlyOwner\n {\n require(address(this).balance >= amountWei);\n owner.transfer(amountWei);\n }\n\n // withdraw all available eth\n function withdrawAll()\n public onlyOwner\n {\n require(address(this).balance > 0);\n owner.transfer(address(this).balance);\n }\n\n function userExists(address wallet)\n public constant returns (bool)\n {\n return (users[wallet].creationBlock > 0);\n }\n\n function userAddressConfirmed(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (bool)\n {\n bytes32 keccakIdentifier = users[wallet].physicalAddresses[addressIndex].keccakIdentifier;\n\n if (keccakIdentifier == 0x0) {\n return false;\n }\n\n return PhysicalAddressClaim.decodeConfirmation(registry.getClaim(address(this), wallet, keccakIdentifier)) > 0;\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByCreationBlock(address wallet, uint256 creationBlock)\n public constant checkUserExists(wallet) returns (bool, uint256, bool)\n {\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].creationBlock == creationBlock) {\n return (true, ai, userAddressConfirmed(wallet, ai));\n }\n }\n return (false, 0, false);\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByConfirmationCode(\n address wallet,\n bytes32 confirmationCodeSha3\n )\n public\n constant\n checkUserExists(wallet)\n returns(bool, uint256, bool, bytes32)\n {\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].confirmationCodeSha3 == confirmationCodeSha3) {\n return (\n true,\n ai,\n userAddressConfirmed(wallet, ai),\n users[wallet].physicalAddresses[ai].keccakIdentifier\n );\n }\n }\n return (false, 0, false, 0x0);\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByAddress(address wallet, string country, string state, string city, string location, string zip)\n public constant checkUserExists(wallet) returns(bool, uint256, bool)\n {\n bytes32 keccakIdentifier = keccak256(country, state, city, location, zip);\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].keccakIdentifier == keccakIdentifier) {\n return (true, ai, userAddressConfirmed(wallet, ai));\n }\n }\n return (false, 0, false);\n }\n\n // returns last name submitted to PoPA contract\n function userLastSubmittedName(address wallet)\n public constant checkUserExists(wallet) returns (string)\n {\n return users[wallet].physicalAddresses[users[wallet].physicalAddresses.length-1].name;\n }\n\n // returns name from the last confirmed address. If no addresses were confirmed returns ''\n function userLastConfirmedName(address wallet)\n public constant checkUserExists(wallet) returns (string)\n {\n for (uint256 ai = users[wallet].physicalAddresses.length; ai > 0;) {\n ai--;\n if (userAddressConfirmed(wallet, ai)) {\n return users[wallet].physicalAddresses[ai].name;\n }\n }\n return \"\";\n }\n\n // returns how many addresses there are in PoPA contract. If user does not exist, returns 0\n function userSubmittedAddressesCount(address wallet)\n public constant returns (uint256)\n {\n return users[wallet].physicalAddresses.length;\n }\n\n // returns how many addresses from PoPA contract are confirmed. If user does not exist, returns 0\n function userConfirmedAddressesCount(address wallet)\n public constant returns (uint256)\n {\n uint256 c = 0;\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (userAddressConfirmed(wallet, ai)) {\n c += 1;\n }\n }\n return c;\n }\n\n function userAddress(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (\n string country, string state, string city, string location, string zip)\n {\n return (\n users[wallet].physicalAddresses[addressIndex].country,\n users[wallet].physicalAddresses[addressIndex].state,\n users[wallet].physicalAddresses[addressIndex].city,\n users[wallet].physicalAddresses[addressIndex].location,\n users[wallet].physicalAddresses[addressIndex].zip\n );\n }\n\n function userAddressInfo(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (\n string name,\n uint256 creationBlock,\n uint256 confirmationBlock,\n bytes32 keccakIdentifier\n ) {\n uint256 _confirmationBlock = PhysicalAddressClaim.decodeConfirmation(registry.getClaim(\n address(this),\n wallet,\n users[wallet].physicalAddresses[addressIndex].keccakIdentifier)\n );\n return (\n users[wallet].physicalAddresses[addressIndex].name,\n users[wallet].physicalAddresses[addressIndex].creationBlock,\n _confirmationBlock,\n users[wallet].physicalAddresses[addressIndex].keccakIdentifier\n );\n }\n\n // Main methods:\n function registerAddress(\n string name,\n string country, string state, string city, string location, string zip,\n uint256 priceWei,\n bytes32 confirmationCodeSha3, uint8 sigV, bytes32 sigR, bytes32 sigS)\n public payable\n {\n require(bytes(name).length > 0);\n require(bytes(country).length > 0);\n require(bytes(state).length > 0);\n require(bytes(city).length > 0);\n require(bytes(location).length > 0);\n require(bytes(zip).length > 0);\n require(msg.value >= priceWei);\n\n bytes32 data = keccak256(\n msg.sender,\n name,\n country,\n state,\n city,\n location,\n zip,\n priceWei,\n confirmationCodeSha3\n );\n require(signerIsValid(data, sigV, sigR, sigS));\n\n if (userExists(msg.sender)) {\n // check if this address is already registered\n bool found;\n (found, , ) = userAddressByAddress(msg.sender, country, state, city, location, zip);\n\n require(!found);\n } else {\n // new user\n users[msg.sender].creationBlock = block.number;\n\n totalUsers += 1;\n }\n\n PhysicalAddress memory pa;\n\n pa.name = name;\n pa.country = country;\n pa.state = state;\n pa.city = city;\n pa.location = location;\n pa.zip = zip;\n pa.creationBlock = block.number;\n pa.confirmationCodeSha3 = confirmationCodeSha3;\n pa.keccakIdentifier = keccak256(country, state, city, location, zip);\n users[msg.sender].physicalAddresses.push(pa);\n\n totalAddresses += 1;\n }\n\n function unregisterAddress(string country, string state, string city, string location, string zip)\n public checkUserExists(msg.sender)\n {\n bool found;\n uint256 index;\n (found, index, ) = userAddressByAddress(msg.sender, country, state, city, location, zip);\n require(found);\n\n registry.removeClaim(\n address(this),\n msg.sender,\n users[msg.sender].physicalAddresses[index].keccakIdentifier\n );\n\n // Remove physical address from list\n uint256 length = users[msg.sender].physicalAddresses.length;\n\n for (uint256 i = index; i < length - 1; i++) {\n users[msg.sender].physicalAddresses[i] = users[msg.sender].physicalAddresses[i+1];\n }\n\n delete users[msg.sender].physicalAddresses[length - 1];\n users[msg.sender].physicalAddresses.length--;\n\n if (users[msg.sender].physicalAddresses.length == 0) {\n delete users[msg.sender];\n }\n }\n\n function confirmAddress(string confirmationCodePlain, uint8 sigV, bytes32 sigR, bytes32 sigS)\n public checkUserExists(msg.sender)\n {\n require(bytes(confirmationCodePlain).length > 0);\n\n bytes32 data = keccak256(\n msg.sender,\n confirmationCodePlain\n );\n require(signerIsValid(data, sigV, sigR, sigS));\n\n bool found;\n uint ai;\n bool confirmed;\n bytes32 keccakIdentifier;\n (found, ai, confirmed, keccakIdentifier) = userAddressByConfirmationCode(\n msg.sender,\n keccak256(confirmationCodePlain)\n );\n require(found);\n require(!confirmed);\n\n registry.setClaim(msg.sender, keccakIdentifier, PhysicalAddressClaim.encode(block.number));\n totalConfirmed += 1;\n }\n}\n", + "bytecode": "0x6060604052341561000f57600080fd5b60405160208061443483398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506143168061011e6000396000f30060606040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305831776146101645780630e666e49146101d0578063238ac933146102215780632c2a178e146102765780634028a0f11461045357806369ffa08a146104905780636c19e783146104e85780637b10399914610521578063853828b6146105765780638da5cb5b1461058b578063a5db3d02146105e0578063a87430ba14610663578063a91ee0dc146106b0578063ae9b051c146106e9578063b4778e2d1461070c578063b55fbd0414610977578063bff1f9e114610a29578063c0fe077f14610a66578063c228251b14610ae5578063c94f2c1b14610c4e578063cfad527714610c9b578063d673560414610cd8578063d956be1014610d8a578063de3d702e14610def578063e585332e14610e3c578063f0486ab414610fee578063feea980814611048575b600080fd5b341561016f57600080fd5b6101a4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611120565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b34156101db57600080fd5b610207600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611232565b604051808215151515815260200191505060405180910390f35b341561022c57600080fd5b610234611280565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610451600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080356000191690602001909190803560ff1690602001909190803560001916906020019091908035600019169060200190919050506112a6565b005b341561045e57600080fd5b610466611a18565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561049b57600080fd5b6104e6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a32565b005b34156104f357600080fd5b61051f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d37565b005b341561052c57600080fd5b610534611dd6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058157600080fd5b610589611dfc565b005b341561059657600080fd5b61059e611ef7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105eb57600080fd5b610661600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611f1c565b005b341561066e57600080fd5b61069a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612269565b6040518082815260200191505060405180910390f35b34156106bb57600080fd5b6106e7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612287565b005b34156106f457600080fd5b61070a6004808035906020019091905050612326565b005b341561071757600080fd5b61074c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061240b565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019080838360005b8381101561079c578082015181840152602081019050610781565b50505050905090810190601f1680156107c95780820380516001836020036101000a031916815260200191505b5086810385528a818151815260200191508051906020019080838360005b838110156108025780820151818401526020810190506107e7565b50505050905090810190601f16801561082f5780820380516001836020036101000a031916815260200191505b50868103845289818151815260200191508051906020019080838360005b8381101561086857808201518184015260208101905061084d565b50505050905090810190601f1680156108955780820380516001836020036101000a031916815260200191505b50868103835288818151815260200191508051906020019080838360005b838110156108ce5780820151818401526020810190506108b3565b50505050905090810190601f1680156108fb5780820380516001836020036101000a031916815260200191505b50868103825287818151815260200191508051906020019080838360005b83811015610934578082015181840152602081019050610919565b50505050905090810190601f1680156109615780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561098257600080fd5b6109ae600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612949565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109ee5780820151818401526020810190506109d3565b50505050905090810190601f168015610a1b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610a3457600080fd5b610a3c612af2565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610a7157600080fd5b610aaa600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091905050612b0c565b604051808515151515815260200184815260200183151515158152602001826000191660001916815260200194505050505060405180910390f35b3415610af057600080fd5b610c4c600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612c96565b005b3415610c5957600080fd5b610c85600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061326c565b6040518082815260200191505060405180910390f35b3415610ca657600080fd5b610cae6132f3565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610ce357600080fd5b610d0f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061330d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d4f578082015181840152602081019050610d34565b50505050905090810190601f168015610d7c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610d9557600080fd5b610dd560048080356000191690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050613473565b604051808215151515815260200191505060405180910390f35b3415610dfa57600080fd5b610e26600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061360f565b6040518082815260200191505060405180910390f35b3415610e4757600080fd5b610fc2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061365e565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b3415610ff957600080fd5b61102e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613939565b604051808215151515815260200191505060405180910390f35b341561105357600080fd5b611088600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613b94565b60405180806020018581526020018481526020018360001916600019168152602001828103825286818151815260200191508051906020019080838360005b838110156110e25780820151818401526020810190506110c7565b50505050905090810190601f16801561110f5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6000806000808561113081611232565b151561113b57600080fd5b600091505b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905082101561121a5785600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101838154811015156111dd57fe5b906000526020600020906009020160060154141561120d576001826112028985613939565b945094509450611229565b8180600101925050611140565b60008060008191509450945094505b50509250925092565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806112b1613fa4565b60008e511115156112c157600080fd5b60008d511115156112d157600080fd5b60008c511115156112e157600080fd5b60008b511115156112f157600080fd5b60008a5111151561130157600080fd5b6000895111151561131157600080fd5b87341015151561132057600080fd5b338e8e8e8e8e8e8e8e604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189805190602001908083835b60208310151561139f578051825260208201915060208101905060208303925061137a565b6001836020036101000a03801982511681845116808217855250505050505090500188805190602001908083835b6020831015156113f257805182526020820191506020810190506020830392506113cd565b6001836020036101000a03801982511681845116808217855250505050505090500187805190602001908083835b6020831015156114455780518252602082019150602081019050602083039250611420565b6001836020036101000a03801982511681845116808217855250505050505090500186805190602001908083835b6020831015156114985780518252602082019150602081019050602083039250611473565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156114eb57805182526020820191506020810190506020830392506114c6565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b60208310151561153e5780518252602082019150602081019050602083039250611519565b6001836020036101000a038019825116818451168082178552505050505050905001838152602001826000191660001916815260200199505050505050505050506040518091039020925061159583878787613473565b15156115a057600080fd5b6115a933611232565b156115d5576115bc338e8e8e8e8e61365e565b90505080925050811515156115d057600080fd5b611660565b43600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506001600460008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8d81600001819052508c81602001819052508b81604001819052508a8160600181905250898160800181905250888160a00181905250438160c00181815250508681610100019060001916908160001916815250508c8c8c8c8c6040518086805190602001908083835b6020831015156116ef57805182526020820191506020810190506020830392506116ca565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515611742578051825260208201915060208101905060208303925061171d565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156117955780518252602082019150602081019050602083039250611770565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831015156117e857805182526020820191506020810190506020830392506117c3565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310151561183b5780518252602082019150602081019050602083039250611816565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390208160e001906000191690816000191681525050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180548060010182816118d3919061401b565b91600052602060002090600902016000839091909150600082015181600001908051906020019061190592919061404d565b50602082015181600101908051906020019061192292919061404d565b50604082015181600201908051906020019061193f92919061404d565b50606082015181600301908051906020019061195c92919061404d565b50608082015181600401908051906020019061197992919061404d565b5060a082015181600501908051906020019061199692919061404d565b5060c0820151816006015560e0820151816007019060001916905561010082015181600801906000191690555050506001600460088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050505050505050505050505050565b600460109054906101000a900467ffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a9057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515611acc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611b0857600080fd5b8391508173ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611bae57600080fd5b6102c65a03f11515611bbf57600080fd5b5050506040518051905090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611c7657600080fd5b6102c65a03f11515611c8757600080fd5b50505060405180519050507ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c848483604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a150505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d9257600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e5757600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff1631111515611e7d57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611ef557600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600033611f2e81611232565b1515611f3957600080fd5b60008a51111515611f4957600080fd5b338a604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182805190602001908083835b602083101515611fc15780518252602082019150602081019050602083039250611f9c565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405180910390209550611ffd868a8a8a613473565b151561200857600080fd5b612074338b6040518082805190602001908083835b602083101515612042578051825260208201915060208101905060208303925061201d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020612b0c565b8095508196508297508398505050505084151561209057600080fd5b8215151561209d57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639918925d338473__PhysicalAddressClaim__________________63deb21fa2436000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b151561215057600080fd5b6102c65a03f4151561216157600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182600019166000191681526020019350505050600060405180830381600087803b151561220657600080fd5b6102c65a03f1151561221757600080fd5b5050506001600460108282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050505050505050565b60036020528060005260406000206000915090508060000154905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122e257600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561238157600080fd5b803073ffffffffffffffffffffffffffffffffffffffff1631101515156123a757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561240857600080fd5b50565b6124136140cd565b61241b6140cd565b6124236140cd565b61242b6140cd565b6124336140cd565b8661243d81611232565b151561244857600080fd5b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018781548110151561249757fe5b9060005260206000209060090201600101600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101888154811015156124f757fe5b9060005260206000209060090201600201600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018981548110151561255757fe5b9060005260206000209060090201600301600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a8154811015156125b757fe5b9060005260206000209060090201600401600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018b81548110151561261757fe5b9060005260206000209060090201600501848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126bd5780601f10612692576101008083540402835291602001916126bd565b820191906000526020600020905b8154815290600101906020018083116126a057829003601f168201915b50505050509450838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127595780601f1061272e57610100808354040283529160200191612759565b820191906000526020600020905b81548152906001019060200180831161273c57829003601f168201915b50505050509350828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127f55780601f106127ca576101008083540402835291602001916127f5565b820191906000526020600020905b8154815290600101906020018083116127d857829003601f168201915b50505050509250818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128915780601f1061286657610100808354040283529160200191612891565b820191906000526020600020905b81548152906001019060200180831161287457829003601f168201915b50505050509150808054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561292d5780601f106129025761010080835404028352916020019161292d565b820191906000526020600020905b81548152906001019060200180831161291057829003601f168201915b5050505050905095509550955095509550509295509295909350565b6129516140cd565b60008261295d81611232565b151561296857600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905091505b6000821115612ad7578180600190039250506129cd8483613939565b15612ad257600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515612a2157fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612ac65780601f10612a9b57610100808354040283529160200191612ac6565b820191906000526020600020905b815481529060010190602001808311612aa957829003601f168201915b50505050509250612aeb565b6129b1565b602060405190810160405280600081525092505b5050919050565b600460009054906101000a900467ffffffffffffffff1681565b600080600080600086612b1e81611232565b1515612b2957600080fd5b600091505b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050821015612c73578660001916600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183815481101515612bcf57fe5b906000526020600020906009020160080154600019161415612c6657600182612bf88a85613939565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010185815481101515612c4757fe5b9060005260206000209060090201600701549550955095509550612c8b565b8180600101925050612b2e565b60008060008082925080600102905095509550955095505b505092959194509250565b60008060008033612ca681611232565b1515612cb157600080fd5b612cbf338b8b8b8b8b61365e565b508095508196505050841515612cd457600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7508ec73033600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010188815481101515612d6357fe5b9060005260206000209060090201600701546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b1515612e3457600080fd5b6102c65a03f11515612e4557600080fd5b505050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905092508391505b6001830382101561308657600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018301815481101515612ef157fe5b9060005260206000209060090201600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183815481101515612f4e57fe5b906000526020600020906009020160008201816000019080546001816001161561010002031660029004612f839291906140e1565b5060018201816001019080546001816001161561010002031660029004612fab9291906140e1565b5060028201816002019080546001816001161561010002031660029004612fd39291906140e1565b5060038201816003019080546001816001161561010002031660029004612ffb9291906140e1565b50600482018160040190805460018160011615610100020316600290046130239291906140e1565b506005820181600501908054600181600116156101000203166002900461304b9291906140e1565b506006820154816006015560078201548160070190600019169055600882015481600801906000191690559050508180600101925050612e94565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600184038154811015156130d857fe5b9060005260206000209060090201600080820160006130f79190614168565b6001820160006131079190614168565b6002820160006131179190614168565b6003820160006131279190614168565b6004820160006131379190614168565b6005820160006131479190614168565b6006820160009055600782016000905560088201600090555050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054809190600190036131b691906141b0565b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050141561326057600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600061325d91906141e2565b50505b50505050505050505050565b6000806000809150600090505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508110156132e9576132d08482613939565b156132dc576001820191505b8080600101915050613279565b8192505050919050565b600460089054906101000a900467ffffffffffffffff1681565b6133156140cd565b8161331f81611232565b151561332a57600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050038154811015156133c157fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156134665780601f1061343b57610100808354040283529160200191613466565b820191906000526020600020905b81548152906001019060200180831161344957829003601f168201915b5050505050915050919050565b600061347d614206565b60006040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250915081876040518083805190602001908083835b6020831015156134ee57805182526020820191506020810190506020830392506134c9565b6001836020036101000a03801982511681845116808217855250505050505090500182600019166000191681526020019250505060405180910390209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600182888888604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f115156135e357600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490509050919050565b60008060008060008a61367081611232565b151561367b57600080fd5b8a8a8a8a8a6040518086805190602001908083835b6020831015156136b55780518252602082019150602081019050602083039250613690565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b60208310151561370857805182526020820191506020810190506020830392506136e3565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b60208310151561375b5780518252602082019150602081019050602083039250613736565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831015156137ae5780518252602082019150602081019050602083039250613789565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310151561380157805182526020820191506020810190506020830392506137dc565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390209250600091505b600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905082101561391b578260001916600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101838154811015156138da57fe5b90600052602060002090600902016007015460001916141561390e576001826139038e85613939565b95509550955061392a565b8180600101925050613839565b60008060008191509550955095505b50505096509650969350505050565b6000808361394681611232565b151561395157600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101848154811015156139a057fe5b90600052602060002090600902016007015491506000600102826000191614156139cd5760009250613b8c565b600073__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308a886000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b1515613af257600080fd5b6102c65a03f11515613b0357600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b1515613b6d57600080fd5b6102c65a03f41515613b7e57600080fd5b505050604051805190501192505b505092915050565b613b9c6140cd565b60008060008086613bac81611232565b1515613bb757600080fd5b73__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308c600360008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018d815481101515613c6057fe5b9060005260206000209060090201600701546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b1515613d3a57600080fd5b6102c65a03f11515613d4b57600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b1515613db557600080fd5b6102c65a03f41515613dc657600080fd5b505050604051805190509150600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515613e2157fe5b9060005260206000209060090201600001600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010188815481101515613e8157fe5b90600052602060002090600902016006015483600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a815481101515613ee357fe5b906000526020600020906009020160070154838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613f8a5780601f10613f5f57610100808354040283529160200191613f8a565b820191906000526020600020905b815481529060010190602001808311613f6d57829003601f168201915b505050505093509550955095509550505092959194509250565b61012060405190810160405280613fb961421a565b8152602001613fc661421a565b8152602001613fd361421a565b8152602001613fe061421a565b8152602001613fed61421a565b8152602001613ffa61421a565b81526020016000815260200160008019168152602001600080191681525090565b81548183558181151161404857600902816009028360005260206000209182019101614047919061422e565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061408e57805160ff19168380011785556140bc565b828001600101855582156140bc579182015b828111156140bb5782518255916020019190600101906140a0565b5b5090506140c991906142c5565b5090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061411a5780548555614157565b8280016001018555821561415757600052602060002091601f016020900482015b8281111561415657825482559160010191906001019061413b565b5b50905061416491906142c5565b5090565b50805460018160011615610100020316600290046000825580601f1061418e57506141ad565b601f0160209004906000526020600020908101906141ac91906142c5565b5b50565b8154818355818115116141dd576009028160090283600052602060002091820191016141dc919061422e565b5b505050565b5080546000825560090290600052602060002090810190614203919061422e565b50565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b6142c291905b808211156142be576000808201600061424d9190614168565b60018201600061425d9190614168565b60028201600061426d9190614168565b60038201600061427d9190614168565b60048201600061428d9190614168565b60058201600061429d9190614168565b60068201600090556007820160009055600882016000905550600901614234565b5090565b90565b6142e791905b808211156142e35760008160009055506001016142cb565b5090565b905600a165627a7a723058202a6cd20c7d0acad3fb48cb24e735b032488c4d0cfc43122fbb518ab6b72f3e960029", + "deployedBytecode": "0x60606040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305831776146101645780630e666e49146101d0578063238ac933146102215780632c2a178e146102765780634028a0f11461045357806369ffa08a146104905780636c19e783146104e85780637b10399914610521578063853828b6146105765780638da5cb5b1461058b578063a5db3d02146105e0578063a87430ba14610663578063a91ee0dc146106b0578063ae9b051c146106e9578063b4778e2d1461070c578063b55fbd0414610977578063bff1f9e114610a29578063c0fe077f14610a66578063c228251b14610ae5578063c94f2c1b14610c4e578063cfad527714610c9b578063d673560414610cd8578063d956be1014610d8a578063de3d702e14610def578063e585332e14610e3c578063f0486ab414610fee578063feea980814611048575b600080fd5b341561016f57600080fd5b6101a4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611120565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b34156101db57600080fd5b610207600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611232565b604051808215151515815260200191505060405180910390f35b341561022c57600080fd5b610234611280565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610451600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080356000191690602001909190803560ff1690602001909190803560001916906020019091908035600019169060200190919050506112a6565b005b341561045e57600080fd5b610466611a18565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561049b57600080fd5b6104e6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a32565b005b34156104f357600080fd5b61051f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d37565b005b341561052c57600080fd5b610534611dd6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058157600080fd5b610589611dfc565b005b341561059657600080fd5b61059e611ef7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105eb57600080fd5b610661600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611f1c565b005b341561066e57600080fd5b61069a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612269565b6040518082815260200191505060405180910390f35b34156106bb57600080fd5b6106e7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612287565b005b34156106f457600080fd5b61070a6004808035906020019091905050612326565b005b341561071757600080fd5b61074c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061240b565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019080838360005b8381101561079c578082015181840152602081019050610781565b50505050905090810190601f1680156107c95780820380516001836020036101000a031916815260200191505b5086810385528a818151815260200191508051906020019080838360005b838110156108025780820151818401526020810190506107e7565b50505050905090810190601f16801561082f5780820380516001836020036101000a031916815260200191505b50868103845289818151815260200191508051906020019080838360005b8381101561086857808201518184015260208101905061084d565b50505050905090810190601f1680156108955780820380516001836020036101000a031916815260200191505b50868103835288818151815260200191508051906020019080838360005b838110156108ce5780820151818401526020810190506108b3565b50505050905090810190601f1680156108fb5780820380516001836020036101000a031916815260200191505b50868103825287818151815260200191508051906020019080838360005b83811015610934578082015181840152602081019050610919565b50505050905090810190601f1680156109615780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561098257600080fd5b6109ae600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612949565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109ee5780820151818401526020810190506109d3565b50505050905090810190601f168015610a1b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610a3457600080fd5b610a3c612af2565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610a7157600080fd5b610aaa600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091905050612b0c565b604051808515151515815260200184815260200183151515158152602001826000191660001916815260200194505050505060405180910390f35b3415610af057600080fd5b610c4c600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612c96565b005b3415610c5957600080fd5b610c85600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061326c565b6040518082815260200191505060405180910390f35b3415610ca657600080fd5b610cae6132f3565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610ce357600080fd5b610d0f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061330d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d4f578082015181840152602081019050610d34565b50505050905090810190601f168015610d7c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610d9557600080fd5b610dd560048080356000191690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050613473565b604051808215151515815260200191505060405180910390f35b3415610dfa57600080fd5b610e26600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061360f565b6040518082815260200191505060405180910390f35b3415610e4757600080fd5b610fc2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061365e565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b3415610ff957600080fd5b61102e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613939565b604051808215151515815260200191505060405180910390f35b341561105357600080fd5b611088600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613b94565b60405180806020018581526020018481526020018360001916600019168152602001828103825286818151815260200191508051906020019080838360005b838110156110e25780820151818401526020810190506110c7565b50505050905090810190601f16801561110f5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6000806000808561113081611232565b151561113b57600080fd5b600091505b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905082101561121a5785600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101838154811015156111dd57fe5b906000526020600020906009020160060154141561120d576001826112028985613939565b945094509450611229565b8180600101925050611140565b60008060008191509450945094505b50509250925092565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806112b1613fa4565b60008e511115156112c157600080fd5b60008d511115156112d157600080fd5b60008c511115156112e157600080fd5b60008b511115156112f157600080fd5b60008a5111151561130157600080fd5b6000895111151561131157600080fd5b87341015151561132057600080fd5b338e8e8e8e8e8e8e8e604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189805190602001908083835b60208310151561139f578051825260208201915060208101905060208303925061137a565b6001836020036101000a03801982511681845116808217855250505050505090500188805190602001908083835b6020831015156113f257805182526020820191506020810190506020830392506113cd565b6001836020036101000a03801982511681845116808217855250505050505090500187805190602001908083835b6020831015156114455780518252602082019150602081019050602083039250611420565b6001836020036101000a03801982511681845116808217855250505050505090500186805190602001908083835b6020831015156114985780518252602082019150602081019050602083039250611473565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156114eb57805182526020820191506020810190506020830392506114c6565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b60208310151561153e5780518252602082019150602081019050602083039250611519565b6001836020036101000a038019825116818451168082178552505050505050905001838152602001826000191660001916815260200199505050505050505050506040518091039020925061159583878787613473565b15156115a057600080fd5b6115a933611232565b156115d5576115bc338e8e8e8e8e61365e565b90505080925050811515156115d057600080fd5b611660565b43600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506001600460008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8d81600001819052508c81602001819052508b81604001819052508a8160600181905250898160800181905250888160a00181905250438160c00181815250508681610100019060001916908160001916815250508c8c8c8c8c6040518086805190602001908083835b6020831015156116ef57805182526020820191506020810190506020830392506116ca565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515611742578051825260208201915060208101905060208303925061171d565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156117955780518252602082019150602081019050602083039250611770565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831015156117e857805182526020820191506020810190506020830392506117c3565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310151561183b5780518252602082019150602081019050602083039250611816565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390208160e001906000191690816000191681525050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180548060010182816118d3919061401b565b91600052602060002090600902016000839091909150600082015181600001908051906020019061190592919061404d565b50602082015181600101908051906020019061192292919061404d565b50604082015181600201908051906020019061193f92919061404d565b50606082015181600301908051906020019061195c92919061404d565b50608082015181600401908051906020019061197992919061404d565b5060a082015181600501908051906020019061199692919061404d565b5060c0820151816006015560e0820151816007019060001916905561010082015181600801906000191690555050506001600460088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050505050505050505050505050565b600460109054906101000a900467ffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a9057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515611acc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611b0857600080fd5b8391508173ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611bae57600080fd5b6102c65a03f11515611bbf57600080fd5b5050506040518051905090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611c7657600080fd5b6102c65a03f11515611c8757600080fd5b50505060405180519050507ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c848483604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a150505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d9257600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e5757600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff1631111515611e7d57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611ef557600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600033611f2e81611232565b1515611f3957600080fd5b60008a51111515611f4957600080fd5b338a604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182805190602001908083835b602083101515611fc15780518252602082019150602081019050602083039250611f9c565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405180910390209550611ffd868a8a8a613473565b151561200857600080fd5b612074338b6040518082805190602001908083835b602083101515612042578051825260208201915060208101905060208303925061201d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020612b0c565b8095508196508297508398505050505084151561209057600080fd5b8215151561209d57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639918925d338473__PhysicalAddressClaim__________________63deb21fa2436000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b151561215057600080fd5b6102c65a03f4151561216157600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182600019166000191681526020019350505050600060405180830381600087803b151561220657600080fd5b6102c65a03f1151561221757600080fd5b5050506001600460108282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050505050505050565b60036020528060005260406000206000915090508060000154905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122e257600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561238157600080fd5b803073ffffffffffffffffffffffffffffffffffffffff1631101515156123a757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561240857600080fd5b50565b6124136140cd565b61241b6140cd565b6124236140cd565b61242b6140cd565b6124336140cd565b8661243d81611232565b151561244857600080fd5b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018781548110151561249757fe5b9060005260206000209060090201600101600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101888154811015156124f757fe5b9060005260206000209060090201600201600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018981548110151561255757fe5b9060005260206000209060090201600301600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a8154811015156125b757fe5b9060005260206000209060090201600401600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018b81548110151561261757fe5b9060005260206000209060090201600501848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126bd5780601f10612692576101008083540402835291602001916126bd565b820191906000526020600020905b8154815290600101906020018083116126a057829003601f168201915b50505050509450838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127595780601f1061272e57610100808354040283529160200191612759565b820191906000526020600020905b81548152906001019060200180831161273c57829003601f168201915b50505050509350828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127f55780601f106127ca576101008083540402835291602001916127f5565b820191906000526020600020905b8154815290600101906020018083116127d857829003601f168201915b50505050509250818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128915780601f1061286657610100808354040283529160200191612891565b820191906000526020600020905b81548152906001019060200180831161287457829003601f168201915b50505050509150808054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561292d5780601f106129025761010080835404028352916020019161292d565b820191906000526020600020905b81548152906001019060200180831161291057829003601f168201915b5050505050905095509550955095509550509295509295909350565b6129516140cd565b60008261295d81611232565b151561296857600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905091505b6000821115612ad7578180600190039250506129cd8483613939565b15612ad257600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515612a2157fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612ac65780601f10612a9b57610100808354040283529160200191612ac6565b820191906000526020600020905b815481529060010190602001808311612aa957829003601f168201915b50505050509250612aeb565b6129b1565b602060405190810160405280600081525092505b5050919050565b600460009054906101000a900467ffffffffffffffff1681565b600080600080600086612b1e81611232565b1515612b2957600080fd5b600091505b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050821015612c73578660001916600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183815481101515612bcf57fe5b906000526020600020906009020160080154600019161415612c6657600182612bf88a85613939565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010185815481101515612c4757fe5b9060005260206000209060090201600701549550955095509550612c8b565b8180600101925050612b2e565b60008060008082925080600102905095509550955095505b505092959194509250565b60008060008033612ca681611232565b1515612cb157600080fd5b612cbf338b8b8b8b8b61365e565b508095508196505050841515612cd457600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7508ec73033600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010188815481101515612d6357fe5b9060005260206000209060090201600701546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b1515612e3457600080fd5b6102c65a03f11515612e4557600080fd5b505050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905092508391505b6001830382101561308657600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018301815481101515612ef157fe5b9060005260206000209060090201600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183815481101515612f4e57fe5b906000526020600020906009020160008201816000019080546001816001161561010002031660029004612f839291906140e1565b5060018201816001019080546001816001161561010002031660029004612fab9291906140e1565b5060028201816002019080546001816001161561010002031660029004612fd39291906140e1565b5060038201816003019080546001816001161561010002031660029004612ffb9291906140e1565b50600482018160040190805460018160011615610100020316600290046130239291906140e1565b506005820181600501908054600181600116156101000203166002900461304b9291906140e1565b506006820154816006015560078201548160070190600019169055600882015481600801906000191690559050508180600101925050612e94565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600184038154811015156130d857fe5b9060005260206000209060090201600080820160006130f79190614168565b6001820160006131079190614168565b6002820160006131179190614168565b6003820160006131279190614168565b6004820160006131379190614168565b6005820160006131479190614168565b6006820160009055600782016000905560088201600090555050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054809190600190036131b691906141b0565b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050141561326057600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600061325d91906141e2565b50505b50505050505050505050565b6000806000809150600090505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508110156132e9576132d08482613939565b156132dc576001820191505b8080600101915050613279565b8192505050919050565b600460089054906101000a900467ffffffffffffffff1681565b6133156140cd565b8161331f81611232565b151561332a57600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050038154811015156133c157fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156134665780601f1061343b57610100808354040283529160200191613466565b820191906000526020600020905b81548152906001019060200180831161344957829003601f168201915b5050505050915050919050565b600061347d614206565b60006040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250915081876040518083805190602001908083835b6020831015156134ee57805182526020820191506020810190506020830392506134c9565b6001836020036101000a03801982511681845116808217855250505050505090500182600019166000191681526020019250505060405180910390209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600182888888604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f115156135e357600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490509050919050565b60008060008060008a61367081611232565b151561367b57600080fd5b8a8a8a8a8a6040518086805190602001908083835b6020831015156136b55780518252602082019150602081019050602083039250613690565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b60208310151561370857805182526020820191506020810190506020830392506136e3565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b60208310151561375b5780518252602082019150602081019050602083039250613736565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831015156137ae5780518252602082019150602081019050602083039250613789565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310151561380157805182526020820191506020810190506020830392506137dc565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390209250600091505b600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905082101561391b578260001916600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101838154811015156138da57fe5b90600052602060002090600902016007015460001916141561390e576001826139038e85613939565b95509550955061392a565b8180600101925050613839565b60008060008191509550955095505b50505096509650969350505050565b6000808361394681611232565b151561395157600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101848154811015156139a057fe5b90600052602060002090600902016007015491506000600102826000191614156139cd5760009250613b8c565b600073__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308a886000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b1515613af257600080fd5b6102c65a03f11515613b0357600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b1515613b6d57600080fd5b6102c65a03f41515613b7e57600080fd5b505050604051805190501192505b505092915050565b613b9c6140cd565b60008060008086613bac81611232565b1515613bb757600080fd5b73__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308c600360008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018d815481101515613c6057fe5b9060005260206000209060090201600701546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b1515613d3a57600080fd5b6102c65a03f11515613d4b57600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b1515613db557600080fd5b6102c65a03f41515613dc657600080fd5b505050604051805190509150600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515613e2157fe5b9060005260206000209060090201600001600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010188815481101515613e8157fe5b90600052602060002090600902016006015483600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a815481101515613ee357fe5b906000526020600020906009020160070154838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613f8a5780601f10613f5f57610100808354040283529160200191613f8a565b820191906000526020600020905b815481529060010190602001808311613f6d57829003601f168201915b505050505093509550955095509550505092959194509250565b61012060405190810160405280613fb961421a565b8152602001613fc661421a565b8152602001613fd361421a565b8152602001613fe061421a565b8152602001613fed61421a565b8152602001613ffa61421a565b81526020016000815260200160008019168152602001600080191681525090565b81548183558181151161404857600902816009028360005260206000209182019101614047919061422e565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061408e57805160ff19168380011785556140bc565b828001600101855582156140bc579182015b828111156140bb5782518255916020019190600101906140a0565b5b5090506140c991906142c5565b5090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061411a5780548555614157565b8280016001018555821561415757600052602060002091601f016020900482015b8281111561415657825482559160010191906001019061413b565b5b50905061416491906142c5565b5090565b50805460018160011615610100020316600290046000825580601f1061418e57506141ad565b601f0160209004906000526020600020908101906141ac91906142c5565b5b50565b8154818355818115116141dd576009028160090283600052602060002091820191016141dc919061422e565b5b505050565b5080546000825560090290600052602060002090810190614203919061422e565b50565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b6142c291905b808211156142be576000808201600061424d9190614168565b60018201600061425d9190614168565b60028201600061426d9190614168565b60038201600061427d9190614168565b60048201600061428d9190614168565b60058201600061429d9190614168565b60068201600090556007820160009055600882016000905550600901614234565b5090565b90565b6142e791905b808211156142e35760008160009055506001016142cb565b5090565b905600a165627a7a723058202a6cd20c7d0acad3fb48cb24e735b032488c4d0cfc43122fbb518ab6b72f3e960029", + "sourceMap": "171:11461:3:-;;;614:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;694:10;686:5;;:18;;;;;;;;;;;;;;;;;;723:5;;;;;;;;;;;714:6;;:14;;;;;;;;;;;;;;;;;;781:9;738:8;;:53;;;;;;;;;;;;;;;;;;614:184;171:11461;;;;;;", + "deployedSourceMap": "171:11461:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3093:455;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2426:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;235:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7806:1694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1029:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11311:319;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1793:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2274:146;;;;;;;;;;;;;;209:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10502:803;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;905:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1889:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;2073:161;;;;;;;;;;;;;;;;;;;;;;;;;;6463:558;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5391:374:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;965:24:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3643:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9506:990;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6132:325;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;995:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5076:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1368:289:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5867:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4432:586;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2564:434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7027:752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3093:455:3;3221:4;3227:7;3236:4;3261:10;3204:6;1309:18;1320:6;1309:10;:18::i;:::-;1301:27;;;;;;;;3274:1;3261:14;;3256:252;3282:5;:13;3288:6;3282:13;;;;;;;;;;;;;;;:31;;:38;;;;3277:2;:43;3256:252;;;3399:13;3346:5;:13;3352:6;3346:13;;;;;;;;;;;;;;;:31;;3378:2;3346:35;;;;;;;;;;;;;;;;;;;;:49;;;:66;3342:156;;;3440:4;3446:2;3450:32;3471:6;3479:2;3450:20;:32::i;:::-;3432:51;;;;;;;;3342:156;3322:4;;;;;;;3256:252;;;3525:5;3532:1;3535:5;3517:24;;;;;;;;;1338:1;3093:455;;;;;;;:::o;2426:132::-;2491:4;2549:1;2519:5;:13;2525:6;2519:13;;;;;;;;;;;;;;;:27;;;:31;2511:40;;2426:132;;;:::o;235:21::-;;;;;;;;;;;;;:::o;7806:1694::-;8364:12;8761:10;9050:25;;:::i;:::-;8099:1;8084:4;8078:18;:22;8070:31;;;;;;;;8143:1;8125:7;8119:21;:25;8111:34;;;;;;;;8185:1;8169:5;8163:19;:23;8155:32;;;;;;;;8226:1;8211:4;8205:18;:22;8197:31;;;;;;;;8271:1;8252:8;8246:22;:26;8238:35;;;;;;;;8311:1;8297:3;8291:17;:21;8283:30;;;;;;;;8344:8;8331:9;:21;;8323:30;;;;;;;;8402:10;8426:4;8444:7;8465:5;8484:4;8502:8;8524:3;8541:8;8563:20;8379:214;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8364:229:3;;8611:37;8625:4;8631;8637;8643;8611:13;:37::i;:::-;8603:46;;;;;;;;8664:22;8675:10;8664;:22::i;:::-;8660:380;;;8799:69;8820:10;8832:7;8841:5;8848:4;8854:8;8864:3;8799:20;:69::i;:::-;8785:83;;;;;;;8892:5;8891:6;8883:15;;;;;;;;8660:380;;;8987:12;8953:5;:17;8959:10;8953:17;;;;;;;;;;;;;;;:31;;:46;;;;9028:1;9014:10;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8660:380;9096:4;9086:2;:7;;:14;;;;9123:7;9110:2;:10;;:20;;;;9151:5;9140:2;:8;;:16;;;;9176:4;9166:2;:7;;:14;;;;9204:8;9190:2;:11;;:22;;;;9231:3;9222:2;:6;;:12;;;;9263;9244:2;:16;;:31;;;;;9311:20;9285:2;:23;;:46;;;;;;;;;;;;;9373:7;9382:5;9389:4;9395:8;9405:3;9363:46;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;9341:2:3;:19;;:68;;;;;;;;;;;;;9419:5;:17;9425:10;9419:17;;;;;;;;;;;;;;;:35;;:44;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;9460:2;9419:44;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9492:1;9474:14;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7806:1694;;;;;;;;;;;;;;:::o;1029:28::-;;;;;;;;;;;;;:::o;11311:319::-;11464:11;11501:15;1220:5;;;;;;;;;;;1206:19;;:10;:19;;;1198:28;;;;;;;;11414:1;11396:20;;:6;:20;;;;11388:29;;;;;;;;11450:1;11435:17;;:3;:17;;;;11427:26;;;;;;;;11484:6;11464:27;;11519:5;:15;;;11535:4;11519:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11501:39;;11550:5;:14;;;11565:3;11570:7;11550:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11588:35;11602:6;11610:3;11615:7;11588:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11311:319;;;;:::o;1793:90::-;1220:5;;;;;;;;;;;1206:19;;:10;:19;;;1198:28;;;;;;;;1867:9;1858:6;;:18;;;;;;;;;;;;;;;;;;1793:90;:::o;262:47::-;;;;;;;;;;;;;:::o;2274:146::-;1220:5;;;;;;;;;;;1206:19;;:10;:19;;;1198:28;;;;;;;;2364:1;2348:4;2340:21;;;:25;2332:34;;;;;;;;2376:5;;;;;;;;;;;:14;;:37;2399:4;2391:21;;;2376:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2274:146::o;209:20::-;;;;;;;;;;;;;:::o;10502:803::-;10708:12;10868:10;10888:7;10905:14;10929:24;10623:10;1309:18;1320:6;1309:10;:18::i;:::-;1301:27;;;;;;;;10695:1;10663:21;10657:35;:39;10649:48;;;;;;;;10746:10;10770:21;10723:78;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;10708:93:3;;10819:37;10833:4;10839;10845;10851;10819:13;:37::i;:::-;10811:46;;;;;;;;11006:109;11049:10;11083:21;11073:32;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;11006:29:3;:109::i;:::-;10963:152;;;;;;;;;;;;;;;;11133:5;11125:14;;;;;;;;11158:9;11157:10;11149:19;;;;;;;;11179:8;;;;;;;;;;;:17;;;11197:10;11209:16;11227:20;:27;11255:12;11227:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11179:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11297:1;11279:14;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10502:803;;;;;;;;;;:::o;905:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;1889:131::-;1220:5;;;;;;;;;;;1206:19;;:10;:19;;;1198:28;;;;;;;;2001:11;1958:8;;:55;;;;;;;;;;;;;;;;;;1889:131;:::o;2073:161::-;1220:5;;;;;;;;;;;1206:19;;:10;:19;;;1198:28;;;;;;;;2182:9;2165:4;2157:21;;;:34;;2149:43;;;;;;;;2202:5;;;;;;;;;;;:14;;:25;2217:9;2202:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2073:161;:::o;6463:558::-;6584:14;;:::i;:::-;6600:12;;:::i;:::-;6614:11;;:::i;:::-;6627:15;;:::i;:::-;6644:10;;:::i;:::-;6558:6;1309:18;1320:6;1309:10;:18::i;:::-;1301:27;;;;;;;;6691:5;:13;6697:6;6691:13;;;;;;;;;;;;;;;:31;;6723:12;6691:45;;;;;;;;;;;;;;;;;;;;:53;;6758:5;:13;6764:6;6758:13;;;;;;;;;;;;;;;:31;;6790:12;6758:45;;;;;;;;;;;;;;;;;;;;:51;;6823:5;:13;6829:6;6823:13;;;;;;;;;;;;;;;:31;;6855:12;6823:45;;;;;;;;;;;;;;;;;;;;:50;;6887:5;:13;6893:6;6887:13;;;;;;;;;;;;;;;:31;;6919:12;6887:45;;;;;;;;;;;;;;;;;;;;:54;;6955:5;:13;6961:6;6955:13;;;;;;;;;;;;;;;:31;;6987:12;6955:45;;;;;;;;;;;;;;;;;;;;:49;;6670:344;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6463:558;;;;;;;;;:::o;5391:374::-;5491:6;;:::i;:::-;5518:10;5474:6;1309:18;1320:6;1309:10;:18::i;:::-;1301:27;;;;;;;;5531:5;:13;5537:6;5531:13;;;;;;;;;;;;;;;:31;;:38;;;;5518:51;;5513:227;5576:1;5571:2;:6;5513:227;;;5594:4;;;;;;;;5616:32;5637:6;5645:2;5616:20;:32::i;:::-;5612:118;;;5675:5;:13;5681:6;5675:13;;;;;;;;;;;;;;;:31;;5707:2;5675:35;;;;;;;;;;;;;;;;;;;;:40;;5668:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5612:118;5513:227;;;5749:9;;;;;;;;;;;;;;;1338:1;5391:374;;;;;:::o;965:24::-;;;;;;;;;;;;;:::o;3643:694::-;3830:4;3836:7;3845:4;3851:7;3879:10;3806:6;1309:18;1320:6;1309:10;:18::i;:::-;1301:27;;;;;;;;3892:1;3879:14;;3874:418;3900:5;:13;3906:6;3900:13;;;;;;;;;;;;;;;:31;;:38;;;;3895:2;:43;3874:418;;;4024:20;3964:80;;;:5;:13;3970:6;3964:13;;;;;;;;;;;;;;;:31;;3996:2;3964:35;;;;;;;;;;;;;;;;;;;;:56;;;:80;;;;3960:322;;;4093:4;4119:2;4143:32;4164:6;4172:2;4143:20;:32::i;:::-;4197:5;:13;4203:6;4197:13;;;;;;;;;;;;;;;:31;;4229:2;4197:35;;;;;;;;;;;;;;;;;;;;:52;;;4064:203;;;;;;;;;;3960:322;3940:4;;;;;;;3874:418;;;4309:5;4316:1;4319:5;4326:3;4301:29;;;;;;;;;;;;;;;;1338:1;3643:694;;;;;;;;;:::o;9506:990::-;9662:10;9682:13;10038:14;10113:9;9636:10;1309:18;1320:6;1309:10;:18::i;:::-;1301:27;;;;;;;;9724:69;9745:10;9757:7;9766:5;9773:4;9779:8;9789:3;9724:20;:69::i;:::-;9705:88;;;;;;;;;9811:5;9803:14;;;;;;;;9828:8;;;;;;;;;;;:20;;;9870:4;9889:10;9913:5;:17;9919:10;9913:17;;;;;;;;;;;;;;;:35;;9949:5;9913:42;;;;;;;;;;;;;;;;;;;;:59;;;9828:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10055:5;:17;10061:10;10055:17;;;;;;;;;;;;;;;:35;;:42;;;;10038:59;;10125:5;10113:17;;10108:151;10145:1;10136:6;:10;10132:1;:14;10108:151;;;10208:5;:17;10214:10;10208:17;;;;;;;;;;;;;;;:35;;10246:1;10244;:3;10208:40;;;;;;;;;;;;;;;;;;;;10167:5;:17;10173:10;10167:17;;;;;;;;;;;;;;;:35;;10203:1;10167:38;;;;;;;;;;;;;;;;;;;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10148:3;;;;;;;10108:151;;;10276:5;:17;10282:10;10276:17;;;;;;;;;;;;;;;:35;;10321:1;10312:6;:10;10276:47;;;;;;;;;;;;;;;;;;;;;10269:54;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10333:5;:17;10339:10;10333:17;;;;;;;;;;;;;;;:35;;:44;;;;;;;;;;;;:::i;:::-;;10438:1;10392:5;:17;10398:10;10392:17;;;;;;;;;;;;;;;:35;;:42;;;;:47;10388:102;;;10462:5;:17;10468:10;10462:17;;;;;;;;;;;;;;;;10455:24;;;;;;;;;;;;;;:::i;:::-;;;10388:102;9506:990;;;;;;;;;;:::o;6132:325::-;6214:7;6237:9;6265:10;6249:1;6237:13;;6278:1;6265:14;;6260:173;6286:5;:13;6292:6;6286:13;;;;;;;;;;;;;;;:31;;:38;;;;6281:2;:43;6260:173;;;6350:32;6371:6;6379:2;6350:20;:32::i;:::-;6346:77;;;6407:1;6402:6;;;;6346:77;6326:4;;;;;;;6260:173;;;6449:1;6442:8;;6132:325;;;;;:::o;995:28::-;;;;;;;;;;;;;:::o;5076:214::-;5176:6;;:::i;:::-;5159;1309:18;1320:6;1309:10;:18::i;:::-;1301:27;;;;;;;;5205:5;:13;5211:6;5205:13;;;;;;;;;;;;;;;:31;;5276:1;5237:5;:13;5243:6;5237:13;;;;;;;;;;;;;;;:31;;:38;;;;:40;5205:73;;;;;;;;;;;;;;;;;;;;:78;;5198:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5076:214;;;;:::o;1368:289::-;1465:4;1485:19;;:::i;:::-;1551:16;1485:56;;;;;;;;;;;;;;;;;;;;1580:6;1588:4;1570:23;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1551:42:3;;1643:6;;;;;;;;;;;1611:38;;:28;1621:8;1631:1;1634;1637;1611:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1603:47;;1368:289;;;;;;;;:::o;5867:157::-;5949:7;5979:5;:13;5985:6;5979:13;;;;;;;;;;;;;;;:31;;:38;;;;5972:45;;5867:157;;;:::o;4432:586::-;4602:4;4608:7;4617:4;4637:24;4725:10;4586:6;1309:18;1320:6;1309:10;:18::i;:::-;1301:27;;;;;;;;4674:7;4683:5;4690:4;4696:8;4706:3;4664:46;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;4637:73:3;;4738:1;4725:14;;4720:258;4746:5;:13;4752:6;4746:13;;;;;;;;;;;;;;;:31;;:38;;;;4741:2;:43;4720:258;;;4866:16;4810:72;;;:5;:13;4816:6;4810:13;;;;;;;;;;;;;;;:31;;4842:2;4810:35;;;;;;;;;;;;;;;;;;;;:52;;;:72;;;;4806:162;;;4910:4;4916:2;4920:32;4941:6;4949:2;4920:20;:32::i;:::-;4902:51;;;;;;;;4806:162;4786:4;;;;;;;4720:258;;;4995:5;5002:1;5005:5;4987:24;;;;;;;;;1338:1;4432:586;;;;;;;;;;;;;:::o;2564:434::-;2685:4;2705:24;2668:6;1309:18;1320:6;1309:10;:18::i;:::-;1301:27;;;;;;;;2732:5;:13;2738:6;2732:13;;;;;;;;;;;;;;;:31;;2764:12;2732:45;;;;;;;;;;;;;;;;;;;;:62;;;2705:89;;2829:3;2809:23;;:16;:23;;;;2805:66;;;2855:5;2848:12;;;;2805:66;2990:1;2888:20;:39;2928:8;;;;;;;;;;;:17;;;2954:4;2961:6;2969:16;2928:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2888:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:103;2881:110;;1338:1;2564:434;;;;;;:::o;7027:752::-;7152:11;;:::i;:::-;7173:21;7204:25;7239:24;7280:26;7126:6;1309:18;1320:6;1309:10;:18::i;:::-;1301:27;;;;;;;;7309:20;:39;7349:8;;;;;;;;;;;:17;;;7388:4;7407:6;7427:5;:13;7433:6;7427:13;;;;;;;;;;;;;;;:31;;7459:12;7427:45;;;;;;;;;;;;;;;;;;;;:62;;;7349:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7309:191;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7280:220;;7531:5;:13;7537:6;7531:13;;;;;;;;;;;;;;;:31;;7563:12;7531:45;;;;;;;;;;;;;;;;;;;;:50;;7595:5;:13;7601:6;7595:13;;;;;;;;;;;;;;;:31;;7627:12;7595:45;;;;;;;;;;;;;;;;;;;;:59;;;7668:18;7700:5;:13;7706:6;7700:13;;;;;;;;;;;;;;;:31;;7732:12;7700:45;;;;;;;;;;;;;;;;;;;;:62;;;7510:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7027:752;;;;;;;;;:::o;171:11461::-;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity 0.4.19;\n\nimport \"./EthereumClaimsRegistryInterface.sol\";\nimport \"./PhysicalAddressClaim.sol\";\nimport \"./ERC20.sol\";\n\n\n// Checks -> Effects -> Interactions\ncontract ProofOfPhysicalAddress {\n address public owner;\n address public signer;\n EthereumClaimsRegistryInterface public registry;\n\n // Main structures:\n struct PhysicalAddress {\n string name;\n\n string country;\n string state;\n string city;\n string location;\n string zip;\n\n uint256 creationBlock;\n bytes32 keccakIdentifier;\n bytes32 confirmationCodeSha3;\n }\n\n function ProofOfPhysicalAddress(address _registry) public\n {\n owner = msg.sender;\n signer = owner;\n registry = EthereumClaimsRegistryInterface(_registry);\n }\n\n struct User {\n uint256 creationBlock;\n PhysicalAddress[] physicalAddresses;\n }\n\n mapping (address => User) public users;\n\n // Stats:\n\n uint64 public totalUsers;\n uint64 public totalAddresses;\n uint64 public totalConfirmed;\n\n // Events:\n\n event ClaimedTokens(address token, address to, uint256 amount);\n\n // Modifiers:\n modifier onlyOwner() {\n require(msg.sender == owner);\n _;\n }\n\n modifier checkUserExists(address wallet) {\n require(userExists(wallet));\n _;\n }\n\n // Helpers:\n function signerIsValid(bytes32 data, uint8 v, bytes32 r, bytes32 s)\n public constant returns (bool)\n {\n bytes memory prefix = \"\\x19Ethereum Signed Message:\\n32\";\n bytes32 prefixed = keccak256(prefix, data);\n return (ecrecover(prefixed, v, r, s) == signer);\n }\n\n // Methods:\n // set address that is used on server-side to calculate signatures\n // and on contract-side to verify them\n function setSigner(address newSigner) public onlyOwner {\n signer = newSigner;\n }\n\n function setRegistry(address newRegistry) public onlyOwner {\n registry = EthereumClaimsRegistryInterface(newRegistry);\n }\n\n // withdraw specified amount of eth in wei\n function withdrawSome(uint256 amountWei)\n public onlyOwner\n {\n require(address(this).balance >= amountWei);\n owner.transfer(amountWei);\n }\n\n // withdraw all available eth\n function withdrawAll()\n public onlyOwner\n {\n require(address(this).balance > 0);\n owner.transfer(address(this).balance);\n }\n\n function userExists(address wallet)\n public constant returns (bool)\n {\n return (users[wallet].creationBlock > 0);\n }\n\n function userAddressConfirmed(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (bool)\n {\n bytes32 keccakIdentifier = users[wallet].physicalAddresses[addressIndex].keccakIdentifier;\n\n if (keccakIdentifier == 0x0) {\n return false;\n }\n\n return PhysicalAddressClaim.decodeConfirmation(registry.getClaim(address(this), wallet, keccakIdentifier)) > 0;\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByCreationBlock(address wallet, uint256 creationBlock)\n public constant checkUserExists(wallet) returns (bool, uint256, bool)\n {\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].creationBlock == creationBlock) {\n return (true, ai, userAddressConfirmed(wallet, ai));\n }\n }\n return (false, 0, false);\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByConfirmationCode(\n address wallet,\n bytes32 confirmationCodeSha3\n )\n public\n constant\n checkUserExists(wallet)\n returns(bool, uint256, bool, bytes32)\n {\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].confirmationCodeSha3 == confirmationCodeSha3) {\n return (\n true,\n ai,\n userAddressConfirmed(wallet, ai),\n users[wallet].physicalAddresses[ai].keccakIdentifier\n );\n }\n }\n return (false, 0, false, 0x0);\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByAddress(address wallet, string country, string state, string city, string location, string zip)\n public constant checkUserExists(wallet) returns(bool, uint256, bool)\n {\n bytes32 keccakIdentifier = keccak256(country, state, city, location, zip);\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].keccakIdentifier == keccakIdentifier) {\n return (true, ai, userAddressConfirmed(wallet, ai));\n }\n }\n return (false, 0, false);\n }\n\n // returns last name submitted to PoPA contract\n function userLastSubmittedName(address wallet)\n public constant checkUserExists(wallet) returns (string)\n {\n return users[wallet].physicalAddresses[users[wallet].physicalAddresses.length-1].name;\n }\n\n // returns name from the last confirmed address. If no addresses were confirmed returns ''\n function userLastConfirmedName(address wallet)\n public constant checkUserExists(wallet) returns (string)\n {\n for (uint256 ai = users[wallet].physicalAddresses.length; ai > 0;) {\n ai--;\n if (userAddressConfirmed(wallet, ai)) {\n return users[wallet].physicalAddresses[ai].name;\n }\n }\n return \"\";\n }\n\n // returns how many addresses there are in PoPA contract. If user does not exist, returns 0\n function userSubmittedAddressesCount(address wallet)\n public constant returns (uint256)\n {\n return users[wallet].physicalAddresses.length;\n }\n\n // returns how many addresses from PoPA contract are confirmed. If user does not exist, returns 0\n function userConfirmedAddressesCount(address wallet)\n public constant returns (uint256)\n {\n uint256 c = 0;\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (userAddressConfirmed(wallet, ai)) {\n c += 1;\n }\n }\n return c;\n }\n\n function userAddress(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (\n string country, string state, string city, string location, string zip)\n {\n return (\n users[wallet].physicalAddresses[addressIndex].country,\n users[wallet].physicalAddresses[addressIndex].state,\n users[wallet].physicalAddresses[addressIndex].city,\n users[wallet].physicalAddresses[addressIndex].location,\n users[wallet].physicalAddresses[addressIndex].zip\n );\n }\n\n function userAddressInfo(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (\n string name,\n uint256 creationBlock,\n uint256 confirmationBlock,\n bytes32 keccakIdentifier\n ) {\n uint256 _confirmationBlock = PhysicalAddressClaim.decodeConfirmation(registry.getClaim(\n address(this),\n wallet,\n users[wallet].physicalAddresses[addressIndex].keccakIdentifier)\n );\n return (\n users[wallet].physicalAddresses[addressIndex].name,\n users[wallet].physicalAddresses[addressIndex].creationBlock,\n _confirmationBlock,\n users[wallet].physicalAddresses[addressIndex].keccakIdentifier\n );\n }\n\n // Main methods:\n function registerAddress(\n string name,\n string country, string state, string city, string location, string zip,\n uint256 priceWei,\n bytes32 confirmationCodeSha3, uint8 sigV, bytes32 sigR, bytes32 sigS)\n public payable\n {\n require(bytes(name).length > 0);\n require(bytes(country).length > 0);\n require(bytes(state).length > 0);\n require(bytes(city).length > 0);\n require(bytes(location).length > 0);\n require(bytes(zip).length > 0);\n require(msg.value >= priceWei);\n\n bytes32 data = keccak256(\n msg.sender,\n name,\n country,\n state,\n city,\n location,\n zip,\n priceWei,\n confirmationCodeSha3\n );\n require(signerIsValid(data, sigV, sigR, sigS));\n\n if (userExists(msg.sender)) {\n // check if this address is already registered\n bool found;\n (found, , ) = userAddressByAddress(msg.sender, country, state, city, location, zip);\n\n require(!found);\n } else {\n // new user\n users[msg.sender].creationBlock = block.number;\n\n totalUsers += 1;\n }\n\n PhysicalAddress memory pa;\n\n pa.name = name;\n pa.country = country;\n pa.state = state;\n pa.city = city;\n pa.location = location;\n pa.zip = zip;\n pa.creationBlock = block.number;\n pa.confirmationCodeSha3 = confirmationCodeSha3;\n pa.keccakIdentifier = keccak256(country, state, city, location, zip);\n users[msg.sender].physicalAddresses.push(pa);\n\n totalAddresses += 1;\n }\n\n function unregisterAddress(string country, string state, string city, string location, string zip)\n public checkUserExists(msg.sender)\n {\n bool found;\n uint256 index;\n (found, index, ) = userAddressByAddress(msg.sender, country, state, city, location, zip);\n require(found);\n\n registry.removeClaim(\n address(this),\n msg.sender,\n users[msg.sender].physicalAddresses[index].keccakIdentifier\n );\n\n // Remove physical address from list\n uint256 length = users[msg.sender].physicalAddresses.length;\n\n for (uint256 i = index; i < length - 1; i++) {\n users[msg.sender].physicalAddresses[i] = users[msg.sender].physicalAddresses[i+1];\n }\n\n delete users[msg.sender].physicalAddresses[length - 1];\n users[msg.sender].physicalAddresses.length--;\n\n if (users[msg.sender].physicalAddresses.length == 0) {\n delete users[msg.sender];\n }\n }\n\n function confirmAddress(string confirmationCodePlain, uint8 sigV, bytes32 sigR, bytes32 sigS)\n public checkUserExists(msg.sender)\n {\n require(bytes(confirmationCodePlain).length > 0);\n\n bytes32 data = keccak256(\n msg.sender,\n confirmationCodePlain\n );\n require(signerIsValid(data, sigV, sigR, sigS));\n\n bool found;\n uint ai;\n bool confirmed;\n bytes32 keccakIdentifier;\n (found, ai, confirmed, keccakIdentifier) = userAddressByConfirmationCode(\n msg.sender,\n keccak256(confirmationCodePlain)\n );\n require(found);\n require(!confirmed);\n\n registry.setClaim(msg.sender, keccakIdentifier, PhysicalAddressClaim.encode(block.number));\n totalConfirmed += 1;\n }\n\n function claimTokens(address _token, address _to) public onlyOwner {\n require(_token != address(0));\n require(_to != address(0));\n\n ERC20 token = ERC20(_token);\n uint256 balance = token.balanceOf(this);\n token.transfer(_to, balance);\n ClaimedTokens(_token, _to, balance);\n }\n}\n", "sourcePath": "/home/fvictorio/repos/poa-popa/blockchain/contracts/ProofOfPhysicalAddress.sol", "ast": { "attributes": { "absolutePath": "/home/fvictorio/repos/poa-popa/blockchain/contracts/ProofOfPhysicalAddress.sol", "exportedSymbols": { "ProofOfPhysicalAddress": [ - 1314 + 1444 ] } }, @@ -637,39 +677,54 @@ ".19" ] }, - "id": 157, + "id": 226, "name": "PragmaDirective", - "src": "0:23:2" + "src": "0:23:3" }, { "attributes": { - "SourceUnit": 39, + "SourceUnit": 108, "absolutePath": "/home/fvictorio/repos/poa-popa/blockchain/contracts/EthereumClaimsRegistryInterface.sol", "file": "./EthereumClaimsRegistryInterface.sol", - "scope": 1315, + "scope": 1445, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 158, + "id": 227, "name": "ImportDirective", - "src": "25:47:2" + "src": "25:47:3" }, { "attributes": { - "SourceUnit": 156, + "SourceUnit": 225, "absolutePath": "/home/fvictorio/repos/poa-popa/blockchain/contracts/PhysicalAddressClaim.sol", "file": "./PhysicalAddressClaim.sol", - "scope": 1315, + "scope": 1445, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 228, + "name": "ImportDirective", + "src": "73:36:3" + }, + { + "attributes": { + "SourceUnit": 69, + "absolutePath": "/home/fvictorio/repos/poa-popa/blockchain/contracts/ERC20.sol", + "file": "./ERC20.sol", + "scope": 1445, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 159, + "id": 229, "name": "ImportDirective", - "src": "73:36:2" + "src": "110:21:3" }, { "attributes": { @@ -683,17 +738,17 @@ "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 1314 + 1444 ], "name": "ProofOfPhysicalAddress", - "scope": 1315 + "scope": 1445 }, "children": [ { "attributes": { "constant": false, "name": "owner", - "scope": 1314, + "scope": 1444, "stateVariable": true, "storageLocation": "default", "type": "address", @@ -706,20 +761,20 @@ "name": "address", "type": "address" }, - "id": 160, + "id": 230, "name": "ElementaryTypeName", - "src": "187:7:2" + "src": "209:7:3" } ], - "id": 161, + "id": 231, "name": "VariableDeclaration", - "src": "187:20:2" + "src": "209:20:3" }, { "attributes": { "constant": false, "name": "signer", - "scope": 1314, + "scope": 1444, "stateVariable": true, "storageLocation": "default", "type": "address", @@ -732,20 +787,20 @@ "name": "address", "type": "address" }, - "id": 162, + "id": 232, "name": "ElementaryTypeName", - "src": "213:7:2" + "src": "235:7:3" } ], - "id": 163, + "id": 233, "name": "VariableDeclaration", - "src": "213:21:2" + "src": "235:21:3" }, { "attributes": { "constant": false, "name": "registry", - "scope": 1314, + "scope": 1444, "stateVariable": true, "storageLocation": "default", "type": "contract EthereumClaimsRegistryInterface", @@ -757,23 +812,23 @@ "attributes": { "contractScope": null, "name": "EthereumClaimsRegistryInterface", - "referencedDeclaration": 38, + "referencedDeclaration": 107, "type": "contract EthereumClaimsRegistryInterface" }, - "id": 164, + "id": 234, "name": "UserDefinedTypeName", - "src": "240:31:2" + "src": "262:31:3" } ], - "id": 165, + "id": 235, "name": "VariableDeclaration", - "src": "240:47:2" + "src": "262:47:3" }, { "attributes": { "canonicalName": "ProofOfPhysicalAddress.PhysicalAddress", "name": "PhysicalAddress", - "scope": 1314, + "scope": 1444, "visibility": "public" }, "children": [ @@ -781,7 +836,7 @@ "attributes": { "constant": false, "name": "name", - "scope": 184, + "scope": 254, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -794,20 +849,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 166, + "id": 236, "name": "ElementaryTypeName", - "src": "351:6:2" + "src": "373:6:3" } ], - "id": 167, + "id": 237, "name": "VariableDeclaration", - "src": "351:11:2" + "src": "373:11:3" }, { "attributes": { "constant": false, "name": "country", - "scope": 184, + "scope": 254, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -820,20 +875,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 168, + "id": 238, "name": "ElementaryTypeName", - "src": "373:6:2" + "src": "395:6:3" } ], - "id": 169, + "id": 239, "name": "VariableDeclaration", - "src": "373:14:2" + "src": "395:14:3" }, { "attributes": { "constant": false, "name": "state", - "scope": 184, + "scope": 254, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -846,20 +901,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 170, + "id": 240, "name": "ElementaryTypeName", - "src": "397:6:2" + "src": "419:6:3" } ], - "id": 171, + "id": 241, "name": "VariableDeclaration", - "src": "397:12:2" + "src": "419:12:3" }, { "attributes": { "constant": false, "name": "city", - "scope": 184, + "scope": 254, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -872,20 +927,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 172, + "id": 242, "name": "ElementaryTypeName", - "src": "419:6:2" + "src": "441:6:3" } ], - "id": 173, + "id": 243, "name": "VariableDeclaration", - "src": "419:11:2" + "src": "441:11:3" }, { "attributes": { "constant": false, "name": "location", - "scope": 184, + "scope": 254, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -898,20 +953,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 174, + "id": 244, "name": "ElementaryTypeName", - "src": "440:6:2" + "src": "462:6:3" } ], - "id": 175, + "id": 245, "name": "VariableDeclaration", - "src": "440:15:2" + "src": "462:15:3" }, { "attributes": { "constant": false, "name": "zip", - "scope": 184, + "scope": 254, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -924,20 +979,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 176, + "id": 246, "name": "ElementaryTypeName", - "src": "465:6:2" + "src": "487:6:3" } ], - "id": 177, + "id": 247, "name": "VariableDeclaration", - "src": "465:10:2" + "src": "487:10:3" }, { "attributes": { "constant": false, "name": "creationBlock", - "scope": 184, + "scope": 254, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -950,20 +1005,20 @@ "name": "uint256", "type": "uint256" }, - "id": 178, + "id": 248, "name": "ElementaryTypeName", - "src": "486:7:2" + "src": "508:7:3" } ], - "id": 179, + "id": 249, "name": "VariableDeclaration", - "src": "486:21:2" + "src": "508:21:3" }, { "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 184, + "scope": 254, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -976,20 +1031,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 180, + "id": 250, "name": "ElementaryTypeName", - "src": "517:7:2" + "src": "539:7:3" } ], - "id": 181, + "id": 251, "name": "VariableDeclaration", - "src": "517:24:2" + "src": "539:24:3" }, { "attributes": { "constant": false, "name": "confirmationCodeSha3", - "scope": 184, + "scope": 254, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1002,19 +1057,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 182, + "id": 252, "name": "ElementaryTypeName", - "src": "551:7:2" + "src": "573:7:3" } ], - "id": 183, + "id": 253, "name": "VariableDeclaration", - "src": "551:28:2" + "src": "573:28:3" } ], - "id": 184, + "id": 254, "name": "StructDefinition", - "src": "318:268:2" + "src": "340:268:3" }, { "attributes": { @@ -1026,7 +1081,7 @@ ], "name": "ProofOfPhysicalAddress", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1038,7 +1093,7 @@ "attributes": { "constant": false, "name": "_registry", - "scope": 205, + "scope": 275, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1051,19 +1106,19 @@ "name": "address", "type": "address" }, - "id": 185, + "id": 255, "name": "ElementaryTypeName", - "src": "624:7:2" + "src": "646:7:3" } ], - "id": 186, + "id": 256, "name": "VariableDeclaration", - "src": "624:17:2" + "src": "646:17:3" } ], - "id": 187, + "id": 257, "name": "ParameterList", - "src": "623:19:2" + "src": "645:19:3" }, { "attributes": { @@ -1072,9 +1127,9 @@ ] }, "children": [], - "id": 188, + "id": 258, "name": "ParameterList", - "src": "654:0:2" + "src": "676:0:3" }, { "children": [ @@ -1097,13 +1152,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 161, + "referencedDeclaration": 231, "type": "address", "value": "owner" }, - "id": 189, + "id": 259, "name": "Identifier", - "src": "664:5:2" + "src": "686:5:3" }, { "attributes": { @@ -1123,28 +1178,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 190, + "id": 260, "name": "Identifier", - "src": "672:3:2" + "src": "694:3:3" } ], - "id": 191, + "id": 261, "name": "MemberAccess", - "src": "672:10:2" + "src": "694:10:3" } ], - "id": 192, + "id": 262, "name": "Assignment", - "src": "664:18:2" + "src": "686:18:3" } ], - "id": 193, + "id": 263, "name": "ExpressionStatement", - "src": "664:18:2" + "src": "686:18:3" }, { "children": [ @@ -1165,13 +1220,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 163, + "referencedDeclaration": 233, "type": "address", "value": "signer" }, - "id": 194, + "id": 264, "name": "Identifier", - "src": "692:6:2" + "src": "714:6:3" }, { "attributes": { @@ -1179,23 +1234,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 161, + "referencedDeclaration": 231, "type": "address", "value": "owner" }, - "id": 195, + "id": 265, "name": "Identifier", - "src": "701:5:2" + "src": "723:5:3" } ], - "id": 196, + "id": 266, "name": "Assignment", - "src": "692:14:2" + "src": "714:14:3" } ], - "id": 197, + "id": 267, "name": "ExpressionStatement", - "src": "692:14:2" + "src": "714:14:3" }, { "children": [ @@ -1216,13 +1271,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 165, + "referencedDeclaration": 235, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 198, + "id": 268, "name": "Identifier", - "src": "716:8:2" + "src": "738:8:3" }, { "attributes": { @@ -1250,13 +1305,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 38, + "referencedDeclaration": 107, "type": "type(contract EthereumClaimsRegistryInterface)", "value": "EthereumClaimsRegistryInterface" }, - "id": 199, + "id": 269, "name": "Identifier", - "src": "727:31:2" + "src": "749:31:3" }, { "attributes": { @@ -1264,44 +1319,44 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 186, + "referencedDeclaration": 256, "type": "address", "value": "_registry" }, - "id": 200, + "id": 270, "name": "Identifier", - "src": "759:9:2" + "src": "781:9:3" } ], - "id": 201, + "id": 271, "name": "FunctionCall", - "src": "727:42:2" + "src": "749:42:3" } ], - "id": 202, + "id": 272, "name": "Assignment", - "src": "716:53:2" + "src": "738:53:3" } ], - "id": 203, + "id": 273, "name": "ExpressionStatement", - "src": "716:53:2" + "src": "738:53:3" } ], - "id": 204, + "id": 274, "name": "Block", - "src": "654:122:2" + "src": "676:122:3" } ], - "id": 205, + "id": 275, "name": "FunctionDefinition", - "src": "592:184:2" + "src": "614:184:3" }, { "attributes": { "canonicalName": "ProofOfPhysicalAddress.User", "name": "User", - "scope": 1314, + "scope": 1444, "visibility": "public" }, "children": [ @@ -1309,7 +1364,7 @@ "attributes": { "constant": false, "name": "creationBlock", - "scope": 211, + "scope": 281, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -1322,20 +1377,20 @@ "name": "uint256", "type": "uint256" }, - "id": 206, + "id": 276, "name": "ElementaryTypeName", - "src": "804:7:2" + "src": "826:7:3" } ], - "id": 207, + "id": 277, "name": "VariableDeclaration", - "src": "804:21:2" + "src": "826:21:3" }, { "attributes": { "constant": false, "name": "physicalAddresses", - "scope": 211, + "scope": 281, "stateVariable": false, "storageLocation": "default", "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage pointer", @@ -1353,33 +1408,33 @@ "attributes": { "contractScope": null, "name": "PhysicalAddress", - "referencedDeclaration": 184, + "referencedDeclaration": 254, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage pointer" }, - "id": 208, + "id": 278, "name": "UserDefinedTypeName", - "src": "835:15:2" + "src": "857:15:3" } ], - "id": 209, + "id": 279, "name": "ArrayTypeName", - "src": "835:17:2" + "src": "857:17:3" } ], - "id": 210, + "id": 280, "name": "VariableDeclaration", - "src": "835:35:2" + "src": "857:35:3" } ], - "id": 211, + "id": 281, "name": "StructDefinition", - "src": "782:95:2" + "src": "804:95:3" }, { "attributes": { "constant": false, "name": "users", - "scope": 1314, + "scope": 1444, "stateVariable": true, "storageLocation": "default", "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", @@ -1397,36 +1452,36 @@ "name": "address", "type": "address" }, - "id": 212, + "id": 282, "name": "ElementaryTypeName", - "src": "892:7:2" + "src": "914:7:3" }, { "attributes": { "contractScope": null, "name": "User", - "referencedDeclaration": 211, + "referencedDeclaration": 281, "type": "struct ProofOfPhysicalAddress.User storage pointer" }, - "id": 213, + "id": 283, "name": "UserDefinedTypeName", - "src": "903:4:2" + "src": "925:4:3" } ], - "id": 214, + "id": 284, "name": "Mapping", - "src": "883:25:2" + "src": "905:25:3" } ], - "id": 215, + "id": 285, "name": "VariableDeclaration", - "src": "883:38:2" + "src": "905:38:3" }, { "attributes": { "constant": false, "name": "totalUsers", - "scope": 1314, + "scope": 1444, "stateVariable": true, "storageLocation": "default", "type": "uint64", @@ -1439,20 +1494,20 @@ "name": "uint64", "type": "uint64" }, - "id": 216, + "id": 286, "name": "ElementaryTypeName", - "src": "943:6:2" + "src": "965:6:3" } ], - "id": 217, + "id": 287, "name": "VariableDeclaration", - "src": "943:24:2" + "src": "965:24:3" }, { "attributes": { "constant": false, "name": "totalAddresses", - "scope": 1314, + "scope": 1444, "stateVariable": true, "storageLocation": "default", "type": "uint64", @@ -1465,20 +1520,20 @@ "name": "uint64", "type": "uint64" }, - "id": 218, + "id": 288, "name": "ElementaryTypeName", - "src": "973:6:2" + "src": "995:6:3" } ], - "id": 219, + "id": 289, "name": "VariableDeclaration", - "src": "973:28:2" + "src": "995:28:3" }, { "attributes": { "constant": false, "name": "totalConfirmed", - "scope": 1314, + "scope": 1444, "stateVariable": true, "storageLocation": "default", "type": "uint64", @@ -1491,14 +1546,113 @@ "name": "uint64", "type": "uint64" }, - "id": 220, + "id": 290, "name": "ElementaryTypeName", - "src": "1007:6:2" + "src": "1029:6:3" } ], - "id": 221, + "id": 291, "name": "VariableDeclaration", - "src": "1007:28:2" + "src": "1029:28:3" + }, + { + "attributes": { + "anonymous": false, + "name": "ClaimedTokens" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "token", + "scope": 299, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 292, + "name": "ElementaryTypeName", + "src": "1100:7:3" + } + ], + "id": 293, + "name": "VariableDeclaration", + "src": "1100:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "to", + "scope": 299, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 294, + "name": "ElementaryTypeName", + "src": "1115:7:3" + } + ], + "id": 295, + "name": "VariableDeclaration", + "src": "1115:10:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "amount", + "scope": 299, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 296, + "name": "ElementaryTypeName", + "src": "1127:7:3" + } + ], + "id": 297, + "name": "VariableDeclaration", + "src": "1127:14:3" + } + ], + "id": 298, + "name": "ParameterList", + "src": "1099:43:3" + } + ], + "id": 299, + "name": "EventDefinition", + "src": "1080:63:3" }, { "attributes": { @@ -1513,9 +1667,9 @@ ] }, "children": [], - "id": 222, + "id": 300, "name": "ParameterList", - "src": "1078:2:2" + "src": "1185:2:3" }, { "children": [ @@ -1547,13 +1701,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 223, + "id": 301, "name": "Identifier", - "src": "1091:7:2" + "src": "1198:7:3" }, { "attributes": { @@ -1588,18 +1742,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 224, + "id": 302, "name": "Identifier", - "src": "1099:3:2" + "src": "1206:3:3" } ], - "id": 225, + "id": 303, "name": "MemberAccess", - "src": "1099:10:2" + "src": "1206:10:3" }, { "attributes": { @@ -1607,43 +1761,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 161, + "referencedDeclaration": 231, "type": "address", "value": "owner" }, - "id": 226, + "id": 304, "name": "Identifier", - "src": "1113:5:2" + "src": "1220:5:3" } ], - "id": 227, + "id": 305, "name": "BinaryOperation", - "src": "1099:19:2" + "src": "1206:19:3" } ], - "id": 228, + "id": 306, "name": "FunctionCall", - "src": "1091:28:2" + "src": "1198:28:3" } ], - "id": 229, + "id": 307, "name": "ExpressionStatement", - "src": "1091:28:2" + "src": "1198:28:3" }, { - "id": 230, + "id": 308, "name": "PlaceholderStatement", - "src": "1129:1:2" + "src": "1236:1:3" } ], - "id": 231, + "id": 309, "name": "Block", - "src": "1081:56:2" + "src": "1188:56:3" } ], - "id": 232, + "id": 310, "name": "ModifierDefinition", - "src": "1060:77:2" + "src": "1167:77:3" }, { "attributes": { @@ -1657,7 +1811,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 244, + "scope": 322, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1670,19 +1824,19 @@ "name": "address", "type": "address" }, - "id": 233, + "id": 311, "name": "ElementaryTypeName", - "src": "1168:7:2" + "src": "1275:7:3" } ], - "id": 234, + "id": 312, "name": "VariableDeclaration", - "src": "1168:14:2" + "src": "1275:14:3" } ], - "id": 235, + "id": 313, "name": "ParameterList", - "src": "1167:16:2" + "src": "1274:16:3" }, { "children": [ @@ -1714,13 +1868,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 236, + "id": 314, "name": "Identifier", - "src": "1194:7:2" + "src": "1301:7:3" }, { "attributes": { @@ -1748,13 +1902,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 368, + "referencedDeclaration": 446, "type": "function (address) view returns (bool)", "value": "userExists" }, - "id": 237, + "id": 315, "name": "Identifier", - "src": "1202:10:2" + "src": "1309:10:3" }, { "attributes": { @@ -1762,43 +1916,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 234, + "referencedDeclaration": 312, "type": "address", "value": "wallet" }, - "id": 238, + "id": 316, "name": "Identifier", - "src": "1213:6:2" + "src": "1320:6:3" } ], - "id": 239, + "id": 317, "name": "FunctionCall", - "src": "1202:18:2" + "src": "1309:18:3" } ], - "id": 240, + "id": 318, "name": "FunctionCall", - "src": "1194:27:2" + "src": "1301:27:3" } ], - "id": 241, + "id": 319, "name": "ExpressionStatement", - "src": "1194:27:2" + "src": "1301:27:3" }, { - "id": 242, + "id": 320, "name": "PlaceholderStatement", - "src": "1231:1:2" + "src": "1338:1:3" } ], - "id": 243, + "id": 321, "name": "Block", - "src": "1184:55:2" + "src": "1291:55:3" } ], - "id": 244, + "id": 322, "name": "ModifierDefinition", - "src": "1143:96:2" + "src": "1250:96:3" }, { "attributes": { @@ -1810,7 +1964,7 @@ ], "name": "signerIsValid", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1822,7 +1976,7 @@ "attributes": { "constant": false, "name": "data", - "scope": 279, + "scope": 357, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1835,20 +1989,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 245, + "id": 323, "name": "ElementaryTypeName", - "src": "1284:7:2" + "src": "1391:7:3" } ], - "id": 246, + "id": 324, "name": "VariableDeclaration", - "src": "1284:12:2" + "src": "1391:12:3" }, { "attributes": { "constant": false, "name": "v", - "scope": 279, + "scope": 357, "stateVariable": false, "storageLocation": "default", "type": "uint8", @@ -1861,20 +2015,20 @@ "name": "uint8", "type": "uint8" }, - "id": 247, + "id": 325, "name": "ElementaryTypeName", - "src": "1298:5:2" + "src": "1405:5:3" } ], - "id": 248, + "id": 326, "name": "VariableDeclaration", - "src": "1298:7:2" + "src": "1405:7:3" }, { "attributes": { "constant": false, "name": "r", - "scope": 279, + "scope": 357, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1887,20 +2041,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 249, + "id": 327, "name": "ElementaryTypeName", - "src": "1307:7:2" + "src": "1414:7:3" } ], - "id": 250, + "id": 328, "name": "VariableDeclaration", - "src": "1307:9:2" + "src": "1414:9:3" }, { "attributes": { "constant": false, "name": "s", - "scope": 279, + "scope": 357, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1913,19 +2067,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 251, + "id": 329, "name": "ElementaryTypeName", - "src": "1318:7:2" + "src": "1425:7:3" } ], - "id": 252, + "id": 330, "name": "VariableDeclaration", - "src": "1318:9:2" + "src": "1425:9:3" } ], - "id": 253, + "id": 331, "name": "ParameterList", - "src": "1283:45:2" + "src": "1390:45:3" }, { "children": [ @@ -1933,7 +2087,7 @@ "attributes": { "constant": false, "name": "", - "scope": 279, + "scope": 357, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -1946,26 +2100,26 @@ "name": "bool", "type": "bool" }, - "id": 254, + "id": 332, "name": "ElementaryTypeName", - "src": "1358:4:2" + "src": "1465:4:3" } ], - "id": 255, + "id": 333, "name": "VariableDeclaration", - "src": "1358:4:2" + "src": "1465:4:3" } ], - "id": 256, + "id": 334, "name": "ParameterList", - "src": "1357:6:2" + "src": "1464:6:3" }, { "children": [ { "attributes": { "assignments": [ - 258 + 336 ] }, "children": [ @@ -1973,7 +2127,7 @@ "attributes": { "constant": false, "name": "prefix", - "scope": 279, + "scope": 357, "stateVariable": false, "storageLocation": "memory", "type": "bytes memory", @@ -1986,14 +2140,14 @@ "name": "bytes", "type": "bytes storage pointer" }, - "id": 257, + "id": 335, "name": "ElementaryTypeName", - "src": "1378:5:2" + "src": "1485:5:3" } ], - "id": 258, + "id": 336, "name": "VariableDeclaration", - "src": "1378:19:2" + "src": "1485:19:3" }, { "attributes": { @@ -2008,19 +2162,19 @@ "type": "literal_string \"\u0019Ethereum Signed Message:\n32\"", "value": "\u0019Ethereum Signed Message:\n32" }, - "id": 259, + "id": 337, "name": "Literal", - "src": "1400:34:2" + "src": "1507:34:3" } ], - "id": 260, + "id": 338, "name": "VariableDeclarationStatement", - "src": "1378:56:2" + "src": "1485:56:3" }, { "attributes": { "assignments": [ - 262 + 340 ] }, "children": [ @@ -2028,7 +2182,7 @@ "attributes": { "constant": false, "name": "prefixed", - "scope": 279, + "scope": 357, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -2041,14 +2195,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 261, + "id": 339, "name": "ElementaryTypeName", - "src": "1444:7:2" + "src": "1551:7:3" } ], - "id": 262, + "id": 340, "name": "VariableDeclaration", - "src": "1444:16:2" + "src": "1551:16:3" }, { "attributes": { @@ -2080,13 +2234,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1320, + "referencedDeclaration": 1580, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 263, + "id": 341, "name": "Identifier", - "src": "1463:9:2" + "src": "1570:9:3" }, { "attributes": { @@ -2094,13 +2248,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 258, + "referencedDeclaration": 336, "type": "bytes memory", "value": "prefix" }, - "id": 264, + "id": 342, "name": "Identifier", - "src": "1473:6:2" + "src": "1580:6:3" }, { "attributes": { @@ -2108,27 +2262,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 246, + "referencedDeclaration": 324, "type": "bytes32", "value": "data" }, - "id": 265, + "id": 343, "name": "Identifier", - "src": "1481:4:2" + "src": "1588:4:3" } ], - "id": 266, + "id": 344, "name": "FunctionCall", - "src": "1463:23:2" + "src": "1570:23:3" } ], - "id": 267, + "id": 345, "name": "VariableDeclarationStatement", - "src": "1444:42:2" + "src": "1551:42:3" }, { "attributes": { - "functionReturnParameters": 256 + "functionReturnParameters": 334 }, "children": [ { @@ -2195,13 +2349,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1319, + "referencedDeclaration": 1579, "type": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)", "value": "ecrecover" }, - "id": 268, + "id": 346, "name": "Identifier", - "src": "1504:9:2" + "src": "1611:9:3" }, { "attributes": { @@ -2209,13 +2363,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 262, + "referencedDeclaration": 340, "type": "bytes32", "value": "prefixed" }, - "id": 269, + "id": 347, "name": "Identifier", - "src": "1514:8:2" + "src": "1621:8:3" }, { "attributes": { @@ -2223,13 +2377,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 248, + "referencedDeclaration": 326, "type": "uint8", "value": "v" }, - "id": 270, + "id": 348, "name": "Identifier", - "src": "1524:1:2" + "src": "1631:1:3" }, { "attributes": { @@ -2237,13 +2391,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 250, + "referencedDeclaration": 328, "type": "bytes32", "value": "r" }, - "id": 271, + "id": 349, "name": "Identifier", - "src": "1527:1:2" + "src": "1634:1:3" }, { "attributes": { @@ -2251,18 +2405,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 252, + "referencedDeclaration": 330, "type": "bytes32", "value": "s" }, - "id": 272, + "id": 350, "name": "Identifier", - "src": "1530:1:2" + "src": "1637:1:3" } ], - "id": 273, + "id": 351, "name": "FunctionCall", - "src": "1504:28:2" + "src": "1611:28:3" }, { "attributes": { @@ -2270,38 +2424,38 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 163, + "referencedDeclaration": 233, "type": "address", "value": "signer" }, - "id": 274, + "id": 352, "name": "Identifier", - "src": "1536:6:2" + "src": "1643:6:3" } ], - "id": 275, + "id": 353, "name": "BinaryOperation", - "src": "1504:38:2" + "src": "1611:38:3" } ], - "id": 276, + "id": 354, "name": "TupleExpression", - "src": "1503:40:2" + "src": "1610:40:3" } ], - "id": 277, + "id": 355, "name": "Return", - "src": "1496:47:2" + "src": "1603:47:3" } ], - "id": 278, + "id": 356, "name": "Block", - "src": "1368:182:2" + "src": "1475:182:3" } ], - "id": 279, + "id": 357, "name": "FunctionDefinition", - "src": "1261:289:2" + "src": "1368:289:3" }, { "attributes": { @@ -2310,7 +2464,7 @@ "isConstructor": false, "name": "setSigner", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2322,7 +2476,7 @@ "attributes": { "constant": false, "name": "newSigner", - "scope": 291, + "scope": 369, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2335,19 +2489,19 @@ "name": "address", "type": "address" }, - "id": 280, + "id": 358, "name": "ElementaryTypeName", - "src": "1705:7:2" + "src": "1812:7:3" } ], - "id": 281, + "id": 359, "name": "VariableDeclaration", - "src": "1705:17:2" + "src": "1812:17:3" } ], - "id": 282, + "id": 360, "name": "ParameterList", - "src": "1704:19:2" + "src": "1811:19:3" }, { "attributes": { @@ -2356,9 +2510,9 @@ ] }, "children": [], - "id": 285, + "id": 363, "name": "ParameterList", - "src": "1741:0:2" + "src": "1848:0:3" }, { "attributes": { @@ -2373,18 +2527,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 232, + "referencedDeclaration": 310, "type": "modifier ()", "value": "onlyOwner" }, - "id": 283, + "id": 361, "name": "Identifier", - "src": "1731:9:2" + "src": "1838:9:3" } ], - "id": 284, + "id": 362, "name": "ModifierInvocation", - "src": "1731:9:2" + "src": "1838:9:3" }, { "children": [ @@ -2407,13 +2561,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 163, + "referencedDeclaration": 233, "type": "address", "value": "signer" }, - "id": 286, + "id": 364, "name": "Identifier", - "src": "1751:6:2" + "src": "1858:6:3" }, { "attributes": { @@ -2421,33 +2575,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 281, + "referencedDeclaration": 359, "type": "address", "value": "newSigner" }, - "id": 287, + "id": 365, "name": "Identifier", - "src": "1760:9:2" + "src": "1867:9:3" } ], - "id": 288, + "id": 366, "name": "Assignment", - "src": "1751:18:2" + "src": "1858:18:3" } ], - "id": 289, + "id": 367, "name": "ExpressionStatement", - "src": "1751:18:2" + "src": "1858:18:3" } ], - "id": 290, + "id": 368, "name": "Block", - "src": "1741:35:2" + "src": "1848:35:3" } ], - "id": 291, + "id": 369, "name": "FunctionDefinition", - "src": "1686:90:2" + "src": "1793:90:3" }, { "attributes": { @@ -2456,7 +2610,7 @@ "isConstructor": false, "name": "setRegistry", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2468,7 +2622,7 @@ "attributes": { "constant": false, "name": "newRegistry", - "scope": 305, + "scope": 383, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2481,19 +2635,19 @@ "name": "address", "type": "address" }, - "id": 292, + "id": 370, "name": "ElementaryTypeName", - "src": "1803:7:2" + "src": "1910:7:3" } ], - "id": 293, + "id": 371, "name": "VariableDeclaration", - "src": "1803:19:2" + "src": "1910:19:3" } ], - "id": 294, + "id": 372, "name": "ParameterList", - "src": "1802:21:2" + "src": "1909:21:3" }, { "attributes": { @@ -2502,9 +2656,9 @@ ] }, "children": [], - "id": 297, + "id": 375, "name": "ParameterList", - "src": "1841:0:2" + "src": "1948:0:3" }, { "attributes": { @@ -2519,18 +2673,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 232, + "referencedDeclaration": 310, "type": "modifier ()", "value": "onlyOwner" }, - "id": 295, + "id": 373, "name": "Identifier", - "src": "1831:9:2" + "src": "1938:9:3" } ], - "id": 296, + "id": 374, "name": "ModifierInvocation", - "src": "1831:9:2" + "src": "1938:9:3" }, { "children": [ @@ -2553,13 +2707,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 165, + "referencedDeclaration": 235, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 298, + "id": 376, "name": "Identifier", - "src": "1851:8:2" + "src": "1958:8:3" }, { "attributes": { @@ -2587,13 +2741,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 38, + "referencedDeclaration": 107, "type": "type(contract EthereumClaimsRegistryInterface)", "value": "EthereumClaimsRegistryInterface" }, - "id": 299, + "id": 377, "name": "Identifier", - "src": "1862:31:2" + "src": "1969:31:3" }, { "attributes": { @@ -2601,38 +2755,38 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 293, + "referencedDeclaration": 371, "type": "address", "value": "newRegistry" }, - "id": 300, + "id": 378, "name": "Identifier", - "src": "1894:11:2" + "src": "2001:11:3" } ], - "id": 301, + "id": 379, "name": "FunctionCall", - "src": "1862:44:2" + "src": "1969:44:3" } ], - "id": 302, + "id": 380, "name": "Assignment", - "src": "1851:55:2" + "src": "1958:55:3" } ], - "id": 303, + "id": 381, "name": "ExpressionStatement", - "src": "1851:55:2" + "src": "1958:55:3" } ], - "id": 304, + "id": 382, "name": "Block", - "src": "1841:72:2" + "src": "1948:72:3" } ], - "id": 305, + "id": 383, "name": "FunctionDefinition", - "src": "1782:131:2" + "src": "1889:131:3" }, { "attributes": { @@ -2641,7 +2795,7 @@ "isConstructor": false, "name": "withdrawSome", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2653,7 +2807,7 @@ "attributes": { "constant": false, "name": "amountWei", - "scope": 328, + "scope": 406, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -2666,19 +2820,19 @@ "name": "uint256", "type": "uint256" }, - "id": 306, + "id": 384, "name": "ElementaryTypeName", - "src": "1988:7:2" + "src": "2095:7:3" } ], - "id": 307, + "id": 385, "name": "VariableDeclaration", - "src": "1988:17:2" + "src": "2095:17:3" } ], - "id": 308, + "id": 386, "name": "ParameterList", - "src": "1987:19:2" + "src": "2094:19:3" }, { "attributes": { @@ -2687,9 +2841,9 @@ ] }, "children": [], - "id": 311, + "id": 389, "name": "ParameterList", - "src": "2032:0:2" + "src": "2139:0:3" }, { "attributes": { @@ -2704,18 +2858,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 232, + "referencedDeclaration": 310, "type": "modifier ()", "value": "onlyOwner" }, - "id": 309, + "id": 387, "name": "Identifier", - "src": "2018:9:2" + "src": "2125:9:3" } ], - "id": 310, + "id": 388, "name": "ModifierInvocation", - "src": "2018:9:2" + "src": "2125:9:3" }, { "children": [ @@ -2747,13 +2901,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 312, + "id": 390, "name": "Identifier", - "src": "2042:7:2" + "src": "2149:7:3" }, { "attributes": { @@ -2801,7 +2955,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1314", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1444", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -2812,9 +2966,9 @@ "type": "type(address)", "value": "address" }, - "id": 313, + "id": 391, "name": "ElementaryTypeNameExpression", - "src": "2050:7:2" + "src": "2157:7:3" }, { "attributes": { @@ -2822,23 +2976,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1341, + "referencedDeclaration": 1603, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 314, + "id": 392, "name": "Identifier", - "src": "2058:4:2" + "src": "2165:4:3" } ], - "id": 315, + "id": 393, "name": "FunctionCall", - "src": "2050:13:2" + "src": "2157:13:3" } ], - "id": 316, + "id": 394, "name": "MemberAccess", - "src": "2050:21:2" + "src": "2157:21:3" }, { "attributes": { @@ -2846,28 +3000,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 307, + "referencedDeclaration": 385, "type": "uint256", "value": "amountWei" }, - "id": 317, + "id": 395, "name": "Identifier", - "src": "2075:9:2" + "src": "2182:9:3" } ], - "id": 318, + "id": 396, "name": "BinaryOperation", - "src": "2050:34:2" + "src": "2157:34:3" } ], - "id": 319, + "id": 397, "name": "FunctionCall", - "src": "2042:43:2" + "src": "2149:43:3" } ], - "id": 320, + "id": 398, "name": "ExpressionStatement", - "src": "2042:43:2" + "src": "2149:43:3" }, { "children": [ @@ -2909,18 +3063,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 161, + "referencedDeclaration": 231, "type": "address", "value": "owner" }, - "id": 321, + "id": 399, "name": "Identifier", - "src": "2095:5:2" + "src": "2202:5:3" } ], - "id": 323, + "id": 401, "name": "MemberAccess", - "src": "2095:14:2" + "src": "2202:14:3" }, { "attributes": { @@ -2928,33 +3082,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 307, + "referencedDeclaration": 385, "type": "uint256", "value": "amountWei" }, - "id": 324, + "id": 402, "name": "Identifier", - "src": "2110:9:2" + "src": "2217:9:3" } ], - "id": 325, + "id": 403, "name": "FunctionCall", - "src": "2095:25:2" + "src": "2202:25:3" } ], - "id": 326, + "id": 404, "name": "ExpressionStatement", - "src": "2095:25:2" + "src": "2202:25:3" } ], - "id": 327, + "id": 405, "name": "Block", - "src": "2032:95:2" + "src": "2139:95:3" } ], - "id": 328, + "id": 406, "name": "FunctionDefinition", - "src": "1966:161:2" + "src": "2073:161:3" }, { "attributes": { @@ -2963,7 +3117,7 @@ "isConstructor": false, "name": "withdrawAll", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2976,9 +3130,9 @@ ] }, "children": [], - "id": 329, + "id": 407, "name": "ParameterList", - "src": "2187:2:2" + "src": "2294:2:3" }, { "attributes": { @@ -2987,9 +3141,9 @@ ] }, "children": [], - "id": 332, + "id": 410, "name": "ParameterList", - "src": "2215:0:2" + "src": "2322:0:3" }, { "attributes": { @@ -3004,18 +3158,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 232, + "referencedDeclaration": 310, "type": "modifier ()", "value": "onlyOwner" }, - "id": 330, + "id": 408, "name": "Identifier", - "src": "2201:9:2" + "src": "2308:9:3" } ], - "id": 331, + "id": 409, "name": "ModifierInvocation", - "src": "2201:9:2" + "src": "2308:9:3" }, { "children": [ @@ -3047,13 +3201,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 333, + "id": 411, "name": "Identifier", - "src": "2225:7:2" + "src": "2332:7:3" }, { "attributes": { @@ -3101,7 +3255,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1314", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1444", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -3112,9 +3266,9 @@ "type": "type(address)", "value": "address" }, - "id": 334, + "id": 412, "name": "ElementaryTypeNameExpression", - "src": "2233:7:2" + "src": "2340:7:3" }, { "attributes": { @@ -3122,23 +3276,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1341, + "referencedDeclaration": 1603, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 335, + "id": 413, "name": "Identifier", - "src": "2241:4:2" + "src": "2348:4:3" } ], - "id": 336, + "id": 414, "name": "FunctionCall", - "src": "2233:13:2" + "src": "2340:13:3" } ], - "id": 337, + "id": 415, "name": "MemberAccess", - "src": "2233:21:2" + "src": "2340:21:3" }, { "attributes": { @@ -3153,24 +3307,24 @@ "type": "int_const 0", "value": "0" }, - "id": 338, + "id": 416, "name": "Literal", - "src": "2257:1:2" + "src": "2364:1:3" } ], - "id": 339, + "id": 417, "name": "BinaryOperation", - "src": "2233:25:2" + "src": "2340:25:3" } ], - "id": 340, + "id": 418, "name": "FunctionCall", - "src": "2225:34:2" + "src": "2332:34:3" } ], - "id": 341, + "id": 419, "name": "ExpressionStatement", - "src": "2225:34:2" + "src": "2332:34:3" }, { "children": [ @@ -3212,18 +3366,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 161, + "referencedDeclaration": 231, "type": "address", "value": "owner" }, - "id": 342, + "id": 420, "name": "Identifier", - "src": "2269:5:2" + "src": "2376:5:3" } ], - "id": 344, + "id": 422, "name": "MemberAccess", - "src": "2269:14:2" + "src": "2376:14:3" }, { "attributes": { @@ -3256,7 +3410,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1314", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1444", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -3267,9 +3421,9 @@ "type": "type(address)", "value": "address" }, - "id": 345, + "id": 423, "name": "ElementaryTypeNameExpression", - "src": "2284:7:2" + "src": "2391:7:3" }, { "attributes": { @@ -3277,43 +3431,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1341, + "referencedDeclaration": 1603, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 346, + "id": 424, "name": "Identifier", - "src": "2292:4:2" + "src": "2399:4:3" } ], - "id": 347, + "id": 425, "name": "FunctionCall", - "src": "2284:13:2" + "src": "2391:13:3" } ], - "id": 348, + "id": 426, "name": "MemberAccess", - "src": "2284:21:2" + "src": "2391:21:3" } ], - "id": 349, + "id": 427, "name": "FunctionCall", - "src": "2269:37:2" + "src": "2376:37:3" } ], - "id": 350, + "id": 428, "name": "ExpressionStatement", - "src": "2269:37:2" + "src": "2376:37:3" } ], - "id": 351, + "id": 429, "name": "Block", - "src": "2215:98:2" + "src": "2322:98:3" } ], - "id": 352, + "id": 430, "name": "FunctionDefinition", - "src": "2167:146:2" + "src": "2274:146:3" }, { "attributes": { @@ -3325,7 +3479,7 @@ ], "name": "userExists", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -3337,7 +3491,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 368, + "scope": 446, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -3350,19 +3504,19 @@ "name": "address", "type": "address" }, - "id": 353, + "id": 431, "name": "ElementaryTypeName", - "src": "2339:7:2" + "src": "2446:7:3" } ], - "id": 354, + "id": 432, "name": "VariableDeclaration", - "src": "2339:14:2" + "src": "2446:14:3" } ], - "id": 355, + "id": 433, "name": "ParameterList", - "src": "2338:16:2" + "src": "2445:16:3" }, { "children": [ @@ -3370,7 +3524,7 @@ "attributes": { "constant": false, "name": "", - "scope": 368, + "scope": 446, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -3383,25 +3537,25 @@ "name": "bool", "type": "bool" }, - "id": 356, + "id": 434, "name": "ElementaryTypeName", - "src": "2384:4:2" + "src": "2491:4:3" } ], - "id": 357, + "id": 435, "name": "VariableDeclaration", - "src": "2384:4:2" + "src": "2491:4:3" } ], - "id": 358, + "id": 436, "name": "ParameterList", - "src": "2383:6:2" + "src": "2490:6:3" }, { "children": [ { "attributes": { - "functionReturnParameters": 358 + "functionReturnParameters": 436 }, "children": [ { @@ -3438,7 +3592,7 @@ "isPure": false, "lValueRequested": false, "member_name": "creationBlock", - "referencedDeclaration": 207, + "referencedDeclaration": 277, "type": "uint256" }, "children": [ @@ -3458,13 +3612,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 359, + "id": 437, "name": "Identifier", - "src": "2412:5:2" + "src": "2519:5:3" }, { "attributes": { @@ -3472,23 +3626,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 354, + "referencedDeclaration": 432, "type": "address", "value": "wallet" }, - "id": 360, + "id": 438, "name": "Identifier", - "src": "2418:6:2" + "src": "2525:6:3" } ], - "id": 361, + "id": 439, "name": "IndexAccess", - "src": "2412:13:2" + "src": "2519:13:3" } ], - "id": 362, + "id": 440, "name": "MemberAccess", - "src": "2412:27:2" + "src": "2519:27:3" }, { "attributes": { @@ -3503,34 +3657,34 @@ "type": "int_const 0", "value": "0" }, - "id": 363, + "id": 441, "name": "Literal", - "src": "2442:1:2" + "src": "2549:1:3" } ], - "id": 364, + "id": 442, "name": "BinaryOperation", - "src": "2412:31:2" + "src": "2519:31:3" } ], - "id": 365, + "id": 443, "name": "TupleExpression", - "src": "2411:33:2" + "src": "2518:33:3" } ], - "id": 366, + "id": 444, "name": "Return", - "src": "2404:40:2" + "src": "2511:40:3" } ], - "id": 367, + "id": 445, "name": "Block", - "src": "2394:57:2" + "src": "2501:57:3" } ], - "id": 368, + "id": 446, "name": "FunctionDefinition", - "src": "2319:132:2" + "src": "2426:132:3" }, { "attributes": { @@ -3539,7 +3693,7 @@ "isConstructor": false, "name": "userAddressConfirmed", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -3551,7 +3705,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 412, + "scope": 490, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -3564,20 +3718,20 @@ "name": "address", "type": "address" }, - "id": 369, + "id": 447, "name": "ElementaryTypeName", - "src": "2487:7:2" + "src": "2594:7:3" } ], - "id": 370, + "id": 448, "name": "VariableDeclaration", - "src": "2487:14:2" + "src": "2594:14:3" }, { "attributes": { "constant": false, "name": "addressIndex", - "scope": 412, + "scope": 490, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -3590,19 +3744,19 @@ "name": "uint256", "type": "uint256" }, - "id": 371, + "id": 449, "name": "ElementaryTypeName", - "src": "2503:7:2" + "src": "2610:7:3" } ], - "id": 372, + "id": 450, "name": "VariableDeclaration", - "src": "2503:20:2" + "src": "2610:20:3" } ], - "id": 373, + "id": 451, "name": "ParameterList", - "src": "2486:38:2" + "src": "2593:38:3" }, { "children": [ @@ -3610,7 +3764,7 @@ "attributes": { "constant": false, "name": "", - "scope": 412, + "scope": 490, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -3623,19 +3777,19 @@ "name": "bool", "type": "bool" }, - "id": 377, + "id": 455, "name": "ElementaryTypeName", - "src": "2578:4:2" + "src": "2685:4:3" } ], - "id": 378, + "id": 456, "name": "VariableDeclaration", - "src": "2578:4:2" + "src": "2685:4:3" } ], - "id": 379, + "id": 457, "name": "ParameterList", - "src": "2577:6:2" + "src": "2684:6:3" }, { "children": [ @@ -3645,13 +3799,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 244, + "referencedDeclaration": 322, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 374, + "id": 452, "name": "Identifier", - "src": "2545:15:2" + "src": "2652:15:3" }, { "attributes": { @@ -3659,25 +3813,25 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 370, + "referencedDeclaration": 448, "type": "address", "value": "wallet" }, - "id": 375, + "id": 453, "name": "Identifier", - "src": "2561:6:2" + "src": "2668:6:3" } ], - "id": 376, + "id": 454, "name": "ModifierInvocation", - "src": "2545:23:2" + "src": "2652:23:3" }, { "children": [ { "attributes": { "assignments": [ - 381 + 459 ] }, "children": [ @@ -3685,7 +3839,7 @@ "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 412, + "scope": 490, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -3698,14 +3852,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 380, + "id": 458, "name": "ElementaryTypeName", - "src": "2598:7:2" + "src": "2705:7:3" } ], - "id": 381, + "id": 459, "name": "VariableDeclaration", - "src": "2598:24:2" + "src": "2705:24:3" }, { "attributes": { @@ -3715,7 +3869,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 181, + "referencedDeclaration": 251, "type": "bytes32" }, "children": [ @@ -3737,7 +3891,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -3757,13 +3911,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 382, + "id": 460, "name": "Identifier", - "src": "2625:5:2" + "src": "2732:5:3" }, { "attributes": { @@ -3771,23 +3925,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 370, + "referencedDeclaration": 448, "type": "address", "value": "wallet" }, - "id": 383, + "id": 461, "name": "Identifier", - "src": "2631:6:2" + "src": "2738:6:3" } ], - "id": 384, + "id": 462, "name": "IndexAccess", - "src": "2625:13:2" + "src": "2732:13:3" } ], - "id": 385, + "id": 463, "name": "MemberAccess", - "src": "2625:31:2" + "src": "2732:31:3" }, { "attributes": { @@ -3795,28 +3949,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 372, + "referencedDeclaration": 450, "type": "uint256", "value": "addressIndex" }, - "id": 386, + "id": 464, "name": "Identifier", - "src": "2657:12:2" + "src": "2764:12:3" } ], - "id": 387, + "id": 465, "name": "IndexAccess", - "src": "2625:45:2" + "src": "2732:45:3" } ], - "id": 388, + "id": 466, "name": "MemberAccess", - "src": "2625:62:2" + "src": "2732:62:3" } ], - "id": 389, + "id": 467, "name": "VariableDeclarationStatement", - "src": "2598:89:2" + "src": "2705:89:3" }, { "attributes": { @@ -3844,13 +3998,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 381, + "referencedDeclaration": 459, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 390, + "id": 468, "name": "Identifier", - "src": "2702:16:2" + "src": "2809:16:3" }, { "attributes": { @@ -3865,20 +4019,20 @@ "type": "int_const 0", "value": "0x0" }, - "id": 391, + "id": 469, "name": "Literal", - "src": "2722:3:2" + "src": "2829:3:3" } ], - "id": 392, + "id": 470, "name": "BinaryOperation", - "src": "2702:23:2" + "src": "2809:23:3" }, { "children": [ { "attributes": { - "functionReturnParameters": 379 + "functionReturnParameters": 457 }, "children": [ { @@ -3894,28 +4048,28 @@ "type": "bool", "value": "false" }, - "id": 393, + "id": 471, "name": "Literal", - "src": "2748:5:2" + "src": "2855:5:3" } ], - "id": 394, + "id": 472, "name": "Return", - "src": "2741:12:2" + "src": "2848:12:3" } ], - "id": 395, + "id": 473, "name": "Block", - "src": "2727:37:2" + "src": "2834:37:3" } ], - "id": 396, + "id": 474, "name": "IfStatement", - "src": "2698:66:2" + "src": "2805:66:3" }, { "attributes": { - "functionReturnParameters": 379 + "functionReturnParameters": 457 }, "children": [ { @@ -3961,7 +4115,7 @@ "isPure": false, "lValueRequested": false, "member_name": "decodeConfirmation", - "referencedDeclaration": 154, + "referencedDeclaration": 223, "type": "function (bytes32) pure returns (uint256)" }, "children": [ @@ -3971,18 +4125,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 155, + "referencedDeclaration": 224, "type": "type(library PhysicalAddressClaim)", "value": "PhysicalAddressClaim" }, - "id": 397, + "id": 475, "name": "Identifier", - "src": "2781:20:2" + "src": "2888:20:3" } ], - "id": 398, + "id": 476, "name": "MemberAccess", - "src": "2781:39:2" + "src": "2888:39:3" }, { "attributes": { @@ -4020,7 +4174,7 @@ "isPure": false, "lValueRequested": false, "member_name": "getClaim", - "referencedDeclaration": 37, + "referencedDeclaration": 106, "type": "function (address,address,bytes32) view external returns (bytes32)" }, "children": [ @@ -4030,18 +4184,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 165, + "referencedDeclaration": 235, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 399, + "id": 477, "name": "Identifier", - "src": "2821:8:2" + "src": "2928:8:3" } ], - "id": 400, + "id": 478, "name": "MemberAccess", - "src": "2821:17:2" + "src": "2928:17:3" }, { "attributes": { @@ -4062,7 +4216,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1314", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1444", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -4073,9 +4227,9 @@ "type": "type(address)", "value": "address" }, - "id": 401, + "id": 479, "name": "ElementaryTypeNameExpression", - "src": "2839:7:2" + "src": "2946:7:3" }, { "attributes": { @@ -4083,18 +4237,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1341, + "referencedDeclaration": 1603, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 402, + "id": 480, "name": "Identifier", - "src": "2847:4:2" + "src": "2954:4:3" } ], - "id": 403, + "id": 481, "name": "FunctionCall", - "src": "2839:13:2" + "src": "2946:13:3" }, { "attributes": { @@ -4102,13 +4256,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 370, + "referencedDeclaration": 448, "type": "address", "value": "wallet" }, - "id": 404, + "id": 482, "name": "Identifier", - "src": "2854:6:2" + "src": "2961:6:3" }, { "attributes": { @@ -4116,23 +4270,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 381, + "referencedDeclaration": 459, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 405, + "id": 483, "name": "Identifier", - "src": "2862:16:2" + "src": "2969:16:3" } ], - "id": 406, + "id": 484, "name": "FunctionCall", - "src": "2821:58:2" + "src": "2928:58:3" } ], - "id": 407, + "id": 485, "name": "FunctionCall", - "src": "2781:99:2" + "src": "2888:99:3" }, { "attributes": { @@ -4147,29 +4301,29 @@ "type": "int_const 0", "value": "0" }, - "id": 408, + "id": 486, "name": "Literal", - "src": "2883:1:2" + "src": "2990:1:3" } ], - "id": 409, + "id": 487, "name": "BinaryOperation", - "src": "2781:103:2" + "src": "2888:103:3" } ], - "id": 410, + "id": 488, "name": "Return", - "src": "2774:110:2" + "src": "2881:110:3" } ], - "id": 411, + "id": 489, "name": "Block", - "src": "2588:303:2" + "src": "2695:303:3" } ], - "id": 412, + "id": 490, "name": "FunctionDefinition", - "src": "2457:434:2" + "src": "2564:434:3" }, { "attributes": { @@ -4178,7 +4332,7 @@ "isConstructor": false, "name": "userAddressByCreationBlock", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -4190,7 +4344,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 469, + "scope": 547, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -4203,20 +4357,20 @@ "name": "address", "type": "address" }, - "id": 413, + "id": 491, "name": "ElementaryTypeName", - "src": "3022:7:2" + "src": "3129:7:3" } ], - "id": 414, + "id": 492, "name": "VariableDeclaration", - "src": "3022:14:2" + "src": "3129:14:3" }, { "attributes": { "constant": false, "name": "creationBlock", - "scope": 469, + "scope": 547, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4229,19 +4383,19 @@ "name": "uint256", "type": "uint256" }, - "id": 415, + "id": 493, "name": "ElementaryTypeName", - "src": "3038:7:2" + "src": "3145:7:3" } ], - "id": 416, + "id": 494, "name": "VariableDeclaration", - "src": "3038:21:2" + "src": "3145:21:3" } ], - "id": 417, + "id": 495, "name": "ParameterList", - "src": "3021:39:2" + "src": "3128:39:3" }, { "children": [ @@ -4249,7 +4403,7 @@ "attributes": { "constant": false, "name": "", - "scope": 469, + "scope": 547, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -4262,20 +4416,20 @@ "name": "bool", "type": "bool" }, - "id": 421, + "id": 499, "name": "ElementaryTypeName", - "src": "3114:4:2" + "src": "3221:4:3" } ], - "id": 422, + "id": 500, "name": "VariableDeclaration", - "src": "3114:4:2" + "src": "3221:4:3" }, { "attributes": { "constant": false, "name": "", - "scope": 469, + "scope": 547, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4288,20 +4442,20 @@ "name": "uint256", "type": "uint256" }, - "id": 423, + "id": 501, "name": "ElementaryTypeName", - "src": "3120:7:2" + "src": "3227:7:3" } ], - "id": 424, + "id": 502, "name": "VariableDeclaration", - "src": "3120:7:2" + "src": "3227:7:3" }, { "attributes": { "constant": false, "name": "", - "scope": 469, + "scope": 547, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -4314,19 +4468,19 @@ "name": "bool", "type": "bool" }, - "id": 425, + "id": 503, "name": "ElementaryTypeName", - "src": "3129:4:2" + "src": "3236:4:3" } ], - "id": 426, + "id": 504, "name": "VariableDeclaration", - "src": "3129:4:2" + "src": "3236:4:3" } ], - "id": 427, + "id": 505, "name": "ParameterList", - "src": "3113:21:2" + "src": "3220:21:3" }, { "children": [ @@ -4336,13 +4490,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 244, + "referencedDeclaration": 322, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 418, + "id": 496, "name": "Identifier", - "src": "3081:15:2" + "src": "3188:15:3" }, { "attributes": { @@ -4350,18 +4504,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 414, + "referencedDeclaration": 492, "type": "address", "value": "wallet" }, - "id": 419, + "id": 497, "name": "Identifier", - "src": "3097:6:2" + "src": "3204:6:3" } ], - "id": 420, + "id": 498, "name": "ModifierInvocation", - "src": "3081:23:2" + "src": "3188:23:3" }, { "children": [ @@ -4370,7 +4524,7 @@ { "attributes": { "assignments": [ - 429 + 507 ] }, "children": [ @@ -4378,7 +4532,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 469, + "scope": 547, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4391,14 +4545,14 @@ "name": "uint256", "type": "uint256" }, - "id": 428, + "id": 506, "name": "ElementaryTypeName", - "src": "3154:7:2" + "src": "3261:7:3" } ], - "id": 429, + "id": 507, "name": "VariableDeclaration", - "src": "3154:10:2" + "src": "3261:10:3" }, { "attributes": { @@ -4413,14 +4567,14 @@ "type": "int_const 0", "value": "0" }, - "id": 430, + "id": 508, "name": "Literal", - "src": "3167:1:2" + "src": "3274:1:3" } ], - "id": 431, + "id": 509, "name": "VariableDeclarationStatement", - "src": "3154:14:2" + "src": "3261:14:3" }, { "attributes": { @@ -4443,13 +4597,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 429, + "referencedDeclaration": 507, "type": "uint256", "value": "ai" }, - "id": 432, + "id": 510, "name": "Identifier", - "src": "3170:2:2" + "src": "3277:2:3" }, { "attributes": { @@ -4471,7 +4625,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -4491,13 +4645,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 433, + "id": 511, "name": "Identifier", - "src": "3175:5:2" + "src": "3282:5:3" }, { "attributes": { @@ -4505,33 +4659,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 414, + "referencedDeclaration": 492, "type": "address", "value": "wallet" }, - "id": 434, + "id": 512, "name": "Identifier", - "src": "3181:6:2" + "src": "3288:6:3" } ], - "id": 435, + "id": 513, "name": "IndexAccess", - "src": "3175:13:2" + "src": "3282:13:3" } ], - "id": 436, + "id": 514, "name": "MemberAccess", - "src": "3175:31:2" + "src": "3282:31:3" } ], - "id": 437, + "id": 515, "name": "MemberAccess", - "src": "3175:38:2" + "src": "3282:38:3" } ], - "id": 438, + "id": 516, "name": "BinaryOperation", - "src": "3170:43:2" + "src": "3277:43:3" }, { "children": [ @@ -4553,23 +4707,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 429, + "referencedDeclaration": 507, "type": "uint256", "value": "ai" }, - "id": 439, + "id": 517, "name": "Identifier", - "src": "3215:2:2" + "src": "3322:2:3" } ], - "id": 440, + "id": 518, "name": "UnaryOperation", - "src": "3215:4:2" + "src": "3322:4:3" } ], - "id": 441, + "id": 519, "name": "ExpressionStatement", - "src": "3215:4:2" + "src": "3322:4:3" }, { "children": [ @@ -4601,7 +4755,7 @@ "isPure": false, "lValueRequested": false, "member_name": "creationBlock", - "referencedDeclaration": 179, + "referencedDeclaration": 249, "type": "uint256" }, "children": [ @@ -4623,7 +4777,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -4643,13 +4797,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 442, + "id": 520, "name": "Identifier", - "src": "3239:5:2" + "src": "3346:5:3" }, { "attributes": { @@ -4657,23 +4811,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 414, + "referencedDeclaration": 492, "type": "address", "value": "wallet" }, - "id": 443, + "id": 521, "name": "Identifier", - "src": "3245:6:2" + "src": "3352:6:3" } ], - "id": 444, + "id": 522, "name": "IndexAccess", - "src": "3239:13:2" + "src": "3346:13:3" } ], - "id": 445, + "id": 523, "name": "MemberAccess", - "src": "3239:31:2" + "src": "3346:31:3" }, { "attributes": { @@ -4681,23 +4835,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 429, + "referencedDeclaration": 507, "type": "uint256", "value": "ai" }, - "id": 446, + "id": 524, "name": "Identifier", - "src": "3271:2:2" + "src": "3378:2:3" } ], - "id": 447, + "id": 525, "name": "IndexAccess", - "src": "3239:35:2" + "src": "3346:35:3" } ], - "id": 448, + "id": 526, "name": "MemberAccess", - "src": "3239:49:2" + "src": "3346:49:3" }, { "attributes": { @@ -4705,24 +4859,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 416, + "referencedDeclaration": 494, "type": "uint256", "value": "creationBlock" }, - "id": 449, + "id": 527, "name": "Identifier", - "src": "3292:13:2" + "src": "3399:13:3" } ], - "id": 450, + "id": 528, "name": "BinaryOperation", - "src": "3239:66:2" + "src": "3346:66:3" }, { "children": [ { "attributes": { - "functionReturnParameters": 427 + "functionReturnParameters": 505 }, "children": [ { @@ -4749,9 +4903,9 @@ "type": "bool", "value": "true" }, - "id": 451, + "id": 529, "name": "Literal", - "src": "3333:4:2" + "src": "3440:4:3" }, { "attributes": { @@ -4759,13 +4913,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 429, + "referencedDeclaration": 507, "type": "uint256", "value": "ai" }, - "id": 452, + "id": 530, "name": "Identifier", - "src": "3339:2:2" + "src": "3446:2:3" }, { "attributes": { @@ -4797,13 +4951,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 412, + "referencedDeclaration": 490, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 453, + "id": 531, "name": "Identifier", - "src": "3343:20:2" + "src": "3450:20:3" }, { "attributes": { @@ -4811,13 +4965,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 414, + "referencedDeclaration": 492, "type": "address", "value": "wallet" }, - "id": 454, + "id": 532, "name": "Identifier", - "src": "3364:6:2" + "src": "3471:6:3" }, { "attributes": { @@ -4825,52 +4979,52 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 429, + "referencedDeclaration": 507, "type": "uint256", "value": "ai" }, - "id": 455, + "id": 533, "name": "Identifier", - "src": "3372:2:2" + "src": "3479:2:3" } ], - "id": 456, + "id": 534, "name": "FunctionCall", - "src": "3343:32:2" + "src": "3450:32:3" } ], - "id": 457, + "id": 535, "name": "TupleExpression", - "src": "3332:44:2" + "src": "3439:44:3" } ], - "id": 458, + "id": 536, "name": "Return", - "src": "3325:51:2" + "src": "3432:51:3" } ], - "id": 459, + "id": 537, "name": "Block", - "src": "3307:84:2" + "src": "3414:84:3" } ], - "id": 460, + "id": 538, "name": "IfStatement", - "src": "3235:156:2" + "src": "3342:156:3" } ], - "id": 461, + "id": 539, "name": "Block", - "src": "3221:180:2" + "src": "3328:180:3" } ], - "id": 462, + "id": 540, "name": "ForStatement", - "src": "3149:252:2" + "src": "3256:252:3" }, { "attributes": { - "functionReturnParameters": 427 + "functionReturnParameters": 505 }, "children": [ { @@ -4897,9 +5051,9 @@ "type": "bool", "value": "false" }, - "id": 463, + "id": 541, "name": "Literal", - "src": "3418:5:2" + "src": "3525:5:3" }, { "attributes": { @@ -4914,9 +5068,9 @@ "type": "int_const 0", "value": "0" }, - "id": 464, + "id": 542, "name": "Literal", - "src": "3425:1:2" + "src": "3532:1:3" }, { "attributes": { @@ -4931,29 +5085,29 @@ "type": "bool", "value": "false" }, - "id": 465, + "id": 543, "name": "Literal", - "src": "3428:5:2" + "src": "3535:5:3" } ], - "id": 466, + "id": 544, "name": "TupleExpression", - "src": "3417:17:2" + "src": "3524:17:3" } ], - "id": 467, + "id": 545, "name": "Return", - "src": "3410:24:2" + "src": "3517:24:3" } ], - "id": 468, + "id": 546, "name": "Block", - "src": "3139:302:2" + "src": "3246:302:3" } ], - "id": 469, + "id": 547, "name": "FunctionDefinition", - "src": "2986:455:2" + "src": "3093:455:3" }, { "attributes": { @@ -4962,7 +5116,7 @@ "isConstructor": false, "name": "userAddressByConfirmationCode", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -4974,7 +5128,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 536, + "scope": 614, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -4987,20 +5141,20 @@ "name": "address", "type": "address" }, - "id": 470, + "id": 548, "name": "ElementaryTypeName", - "src": "3584:7:2" + "src": "3691:7:3" } ], - "id": 471, + "id": 549, "name": "VariableDeclaration", - "src": "3584:14:2" + "src": "3691:14:3" }, { "attributes": { "constant": false, "name": "confirmationCodeSha3", - "scope": 536, + "scope": 614, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -5013,19 +5167,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 472, + "id": 550, "name": "ElementaryTypeName", - "src": "3608:7:2" + "src": "3715:7:3" } ], - "id": 473, + "id": 551, "name": "VariableDeclaration", - "src": "3608:28:2" + "src": "3715:28:3" } ], - "id": 474, + "id": 552, "name": "ParameterList", - "src": "3574:68:2" + "src": "3681:68:3" }, { "children": [ @@ -5033,7 +5187,7 @@ "attributes": { "constant": false, "name": "", - "scope": 536, + "scope": 614, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -5046,20 +5200,20 @@ "name": "bool", "type": "bool" }, - "id": 478, + "id": 556, "name": "ElementaryTypeName", - "src": "3723:4:2" + "src": "3830:4:3" } ], - "id": 479, + "id": 557, "name": "VariableDeclaration", - "src": "3723:4:2" + "src": "3830:4:3" }, { "attributes": { "constant": false, "name": "", - "scope": 536, + "scope": 614, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -5072,20 +5226,20 @@ "name": "uint256", "type": "uint256" }, - "id": 480, + "id": 558, "name": "ElementaryTypeName", - "src": "3729:7:2" + "src": "3836:7:3" } ], - "id": 481, + "id": 559, "name": "VariableDeclaration", - "src": "3729:7:2" + "src": "3836:7:3" }, { "attributes": { "constant": false, "name": "", - "scope": 536, + "scope": 614, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -5098,20 +5252,20 @@ "name": "bool", "type": "bool" }, - "id": 482, + "id": 560, "name": "ElementaryTypeName", - "src": "3738:4:2" + "src": "3845:4:3" } ], - "id": 483, + "id": 561, "name": "VariableDeclaration", - "src": "3738:4:2" + "src": "3845:4:3" }, { "attributes": { "constant": false, "name": "", - "scope": 536, + "scope": 614, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -5124,19 +5278,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 484, + "id": 562, "name": "ElementaryTypeName", - "src": "3744:7:2" + "src": "3851:7:3" } ], - "id": 485, + "id": 563, "name": "VariableDeclaration", - "src": "3744:7:2" + "src": "3851:7:3" } ], - "id": 486, + "id": 564, "name": "ParameterList", - "src": "3722:30:2" + "src": "3829:30:3" }, { "children": [ @@ -5146,13 +5300,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 244, + "referencedDeclaration": 322, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 475, + "id": 553, "name": "Identifier", - "src": "3683:15:2" + "src": "3790:15:3" }, { "attributes": { @@ -5160,18 +5314,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 471, + "referencedDeclaration": 549, "type": "address", "value": "wallet" }, - "id": 476, + "id": 554, "name": "Identifier", - "src": "3699:6:2" + "src": "3806:6:3" } ], - "id": 477, + "id": 555, "name": "ModifierInvocation", - "src": "3683:23:2" + "src": "3790:23:3" }, { "children": [ @@ -5180,7 +5334,7 @@ { "attributes": { "assignments": [ - 488 + 566 ] }, "children": [ @@ -5188,7 +5342,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 536, + "scope": 614, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -5201,14 +5355,14 @@ "name": "uint256", "type": "uint256" }, - "id": 487, + "id": 565, "name": "ElementaryTypeName", - "src": "3772:7:2" + "src": "3879:7:3" } ], - "id": 488, + "id": 566, "name": "VariableDeclaration", - "src": "3772:10:2" + "src": "3879:10:3" }, { "attributes": { @@ -5223,14 +5377,14 @@ "type": "int_const 0", "value": "0" }, - "id": 489, + "id": 567, "name": "Literal", - "src": "3785:1:2" + "src": "3892:1:3" } ], - "id": 490, + "id": 568, "name": "VariableDeclarationStatement", - "src": "3772:14:2" + "src": "3879:14:3" }, { "attributes": { @@ -5253,13 +5407,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 488, + "referencedDeclaration": 566, "type": "uint256", "value": "ai" }, - "id": 491, + "id": 569, "name": "Identifier", - "src": "3788:2:2" + "src": "3895:2:3" }, { "attributes": { @@ -5281,7 +5435,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -5301,13 +5455,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 492, + "id": 570, "name": "Identifier", - "src": "3793:5:2" + "src": "3900:5:3" }, { "attributes": { @@ -5315,33 +5469,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 471, + "referencedDeclaration": 549, "type": "address", "value": "wallet" }, - "id": 493, + "id": 571, "name": "Identifier", - "src": "3799:6:2" + "src": "3906:6:3" } ], - "id": 494, + "id": 572, "name": "IndexAccess", - "src": "3793:13:2" + "src": "3900:13:3" } ], - "id": 495, + "id": 573, "name": "MemberAccess", - "src": "3793:31:2" + "src": "3900:31:3" } ], - "id": 496, + "id": 574, "name": "MemberAccess", - "src": "3793:38:2" + "src": "3900:38:3" } ], - "id": 497, + "id": 575, "name": "BinaryOperation", - "src": "3788:43:2" + "src": "3895:43:3" }, { "children": [ @@ -5363,23 +5517,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 488, + "referencedDeclaration": 566, "type": "uint256", "value": "ai" }, - "id": 498, + "id": 576, "name": "Identifier", - "src": "3833:2:2" + "src": "3940:2:3" } ], - "id": 499, + "id": 577, "name": "UnaryOperation", - "src": "3833:4:2" + "src": "3940:4:3" } ], - "id": 500, + "id": 578, "name": "ExpressionStatement", - "src": "3833:4:2" + "src": "3940:4:3" }, { "children": [ @@ -5411,7 +5565,7 @@ "isPure": false, "lValueRequested": false, "member_name": "confirmationCodeSha3", - "referencedDeclaration": 183, + "referencedDeclaration": 253, "type": "bytes32" }, "children": [ @@ -5433,7 +5587,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -5453,13 +5607,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 501, + "id": 579, "name": "Identifier", - "src": "3857:5:2" + "src": "3964:5:3" }, { "attributes": { @@ -5467,23 +5621,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 471, + "referencedDeclaration": 549, "type": "address", "value": "wallet" }, - "id": 502, + "id": 580, "name": "Identifier", - "src": "3863:6:2" + "src": "3970:6:3" } ], - "id": 503, + "id": 581, "name": "IndexAccess", - "src": "3857:13:2" + "src": "3964:13:3" } ], - "id": 504, + "id": 582, "name": "MemberAccess", - "src": "3857:31:2" + "src": "3964:31:3" }, { "attributes": { @@ -5491,23 +5645,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 488, + "referencedDeclaration": 566, "type": "uint256", "value": "ai" }, - "id": 505, + "id": 583, "name": "Identifier", - "src": "3889:2:2" + "src": "3996:2:3" } ], - "id": 506, + "id": 584, "name": "IndexAccess", - "src": "3857:35:2" + "src": "3964:35:3" } ], - "id": 507, + "id": 585, "name": "MemberAccess", - "src": "3857:56:2" + "src": "3964:56:3" }, { "attributes": { @@ -5515,24 +5669,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 473, + "referencedDeclaration": 551, "type": "bytes32", "value": "confirmationCodeSha3" }, - "id": 508, + "id": 586, "name": "Identifier", - "src": "3917:20:2" + "src": "4024:20:3" } ], - "id": 509, + "id": 587, "name": "BinaryOperation", - "src": "3857:80:2" + "src": "3964:80:3" }, { "children": [ { "attributes": { - "functionReturnParameters": 486 + "functionReturnParameters": 564 }, "children": [ { @@ -5559,9 +5713,9 @@ "type": "bool", "value": "true" }, - "id": 510, + "id": 588, "name": "Literal", - "src": "3986:4:2" + "src": "4093:4:3" }, { "attributes": { @@ -5569,13 +5723,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 488, + "referencedDeclaration": 566, "type": "uint256", "value": "ai" }, - "id": 511, + "id": 589, "name": "Identifier", - "src": "4012:2:2" + "src": "4119:2:3" }, { "attributes": { @@ -5607,13 +5761,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 412, + "referencedDeclaration": 490, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 512, + "id": 590, "name": "Identifier", - "src": "4036:20:2" + "src": "4143:20:3" }, { "attributes": { @@ -5621,13 +5775,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 471, + "referencedDeclaration": 549, "type": "address", "value": "wallet" }, - "id": 513, + "id": 591, "name": "Identifier", - "src": "4057:6:2" + "src": "4164:6:3" }, { "attributes": { @@ -5635,18 +5789,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 488, + "referencedDeclaration": 566, "type": "uint256", "value": "ai" }, - "id": 514, + "id": 592, "name": "Identifier", - "src": "4065:2:2" + "src": "4172:2:3" } ], - "id": 515, + "id": 593, "name": "FunctionCall", - "src": "4036:32:2" + "src": "4143:32:3" }, { "attributes": { @@ -5656,7 +5810,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 181, + "referencedDeclaration": 251, "type": "bytes32" }, "children": [ @@ -5678,7 +5832,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -5698,13 +5852,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 516, + "id": 594, "name": "Identifier", - "src": "4090:5:2" + "src": "4197:5:3" }, { "attributes": { @@ -5712,23 +5866,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 471, + "referencedDeclaration": 549, "type": "address", "value": "wallet" }, - "id": 517, + "id": 595, "name": "Identifier", - "src": "4096:6:2" + "src": "4203:6:3" } ], - "id": 518, + "id": 596, "name": "IndexAccess", - "src": "4090:13:2" + "src": "4197:13:3" } ], - "id": 519, + "id": 597, "name": "MemberAccess", - "src": "4090:31:2" + "src": "4197:31:3" }, { "attributes": { @@ -5736,57 +5890,57 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 488, + "referencedDeclaration": 566, "type": "uint256", "value": "ai" }, - "id": 520, + "id": 598, "name": "Identifier", - "src": "4122:2:2" + "src": "4229:2:3" } ], - "id": 521, + "id": 599, "name": "IndexAccess", - "src": "4090:35:2" + "src": "4197:35:3" } ], - "id": 522, + "id": 600, "name": "MemberAccess", - "src": "4090:52:2" + "src": "4197:52:3" } ], - "id": 523, + "id": 601, "name": "TupleExpression", - "src": "3964:196:2" + "src": "4071:196:3" } ], - "id": 524, + "id": 602, "name": "Return", - "src": "3957:203:2" + "src": "4064:203:3" } ], - "id": 525, + "id": 603, "name": "Block", - "src": "3939:236:2" + "src": "4046:236:3" } ], - "id": 526, + "id": 604, "name": "IfStatement", - "src": "3853:322:2" + "src": "3960:322:3" } ], - "id": 527, + "id": 605, "name": "Block", - "src": "3839:346:2" + "src": "3946:346:3" } ], - "id": 528, + "id": 606, "name": "ForStatement", - "src": "3767:418:2" + "src": "3874:418:3" }, { "attributes": { - "functionReturnParameters": 486 + "functionReturnParameters": 564 }, "children": [ { @@ -5813,9 +5967,9 @@ "type": "bool", "value": "false" }, - "id": 529, + "id": 607, "name": "Literal", - "src": "4202:5:2" + "src": "4309:5:3" }, { "attributes": { @@ -5830,9 +5984,9 @@ "type": "int_const 0", "value": "0" }, - "id": 530, + "id": 608, "name": "Literal", - "src": "4209:1:2" + "src": "4316:1:3" }, { "attributes": { @@ -5847,9 +6001,9 @@ "type": "bool", "value": "false" }, - "id": 531, + "id": 609, "name": "Literal", - "src": "4212:5:2" + "src": "4319:5:3" }, { "attributes": { @@ -5864,29 +6018,29 @@ "type": "int_const 0", "value": "0x0" }, - "id": 532, + "id": 610, "name": "Literal", - "src": "4219:3:2" + "src": "4326:3:3" } ], - "id": 533, + "id": 611, "name": "TupleExpression", - "src": "4201:22:2" + "src": "4308:22:3" } ], - "id": 534, + "id": 612, "name": "Return", - "src": "4194:29:2" + "src": "4301:29:3" } ], - "id": 535, + "id": 613, "name": "Block", - "src": "3757:473:2" + "src": "3864:473:3" } ], - "id": 536, + "id": 614, "name": "FunctionDefinition", - "src": "3536:694:2" + "src": "3643:694:3" }, { "attributes": { @@ -5895,7 +6049,7 @@ "isConstructor": false, "name": "userAddressByAddress", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -5907,7 +6061,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 611, + "scope": 689, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -5920,20 +6074,20 @@ "name": "address", "type": "address" }, - "id": 537, + "id": 615, "name": "ElementaryTypeName", - "src": "4355:7:2" + "src": "4462:7:3" } ], - "id": 538, + "id": 616, "name": "VariableDeclaration", - "src": "4355:14:2" + "src": "4462:14:3" }, { "attributes": { "constant": false, "name": "country", - "scope": 611, + "scope": 689, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -5946,20 +6100,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 539, + "id": 617, "name": "ElementaryTypeName", - "src": "4371:6:2" + "src": "4478:6:3" } ], - "id": 540, + "id": 618, "name": "VariableDeclaration", - "src": "4371:14:2" + "src": "4478:14:3" }, { "attributes": { "constant": false, "name": "state", - "scope": 611, + "scope": 689, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -5972,20 +6126,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 541, + "id": 619, "name": "ElementaryTypeName", - "src": "4387:6:2" + "src": "4494:6:3" } ], - "id": 542, + "id": 620, "name": "VariableDeclaration", - "src": "4387:12:2" + "src": "4494:12:3" }, { "attributes": { "constant": false, "name": "city", - "scope": 611, + "scope": 689, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -5998,20 +6152,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 543, + "id": 621, "name": "ElementaryTypeName", - "src": "4401:6:2" + "src": "4508:6:3" } ], - "id": 544, + "id": 622, "name": "VariableDeclaration", - "src": "4401:11:2" + "src": "4508:11:3" }, { "attributes": { "constant": false, "name": "location", - "scope": 611, + "scope": 689, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -6024,20 +6178,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 545, + "id": 623, "name": "ElementaryTypeName", - "src": "4414:6:2" + "src": "4521:6:3" } ], - "id": 546, + "id": 624, "name": "VariableDeclaration", - "src": "4414:15:2" + "src": "4521:15:3" }, { "attributes": { "constant": false, "name": "zip", - "scope": 611, + "scope": 689, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -6050,19 +6204,19 @@ "name": "string", "type": "string storage pointer" }, - "id": 547, + "id": 625, "name": "ElementaryTypeName", - "src": "4431:6:2" + "src": "4538:6:3" } ], - "id": 548, + "id": 626, "name": "VariableDeclaration", - "src": "4431:10:2" + "src": "4538:10:3" } ], - "id": 549, + "id": 627, "name": "ParameterList", - "src": "4354:88:2" + "src": "4461:88:3" }, { "children": [ @@ -6070,7 +6224,7 @@ "attributes": { "constant": false, "name": "", - "scope": 611, + "scope": 689, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -6083,20 +6237,20 @@ "name": "bool", "type": "bool" }, - "id": 553, + "id": 631, "name": "ElementaryTypeName", - "src": "4495:4:2" + "src": "4602:4:3" } ], - "id": 554, + "id": 632, "name": "VariableDeclaration", - "src": "4495:4:2" + "src": "4602:4:3" }, { "attributes": { "constant": false, "name": "", - "scope": 611, + "scope": 689, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -6109,20 +6263,20 @@ "name": "uint256", "type": "uint256" }, - "id": 555, + "id": 633, "name": "ElementaryTypeName", - "src": "4501:7:2" + "src": "4608:7:3" } ], - "id": 556, + "id": 634, "name": "VariableDeclaration", - "src": "4501:7:2" + "src": "4608:7:3" }, { "attributes": { "constant": false, "name": "", - "scope": 611, + "scope": 689, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -6135,19 +6289,19 @@ "name": "bool", "type": "bool" }, - "id": 557, + "id": 635, "name": "ElementaryTypeName", - "src": "4510:4:2" + "src": "4617:4:3" } ], - "id": 558, + "id": 636, "name": "VariableDeclaration", - "src": "4510:4:2" + "src": "4617:4:3" } ], - "id": 559, + "id": 637, "name": "ParameterList", - "src": "4494:21:2" + "src": "4601:21:3" }, { "children": [ @@ -6157,13 +6311,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 244, + "referencedDeclaration": 322, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 550, + "id": 628, "name": "Identifier", - "src": "4463:15:2" + "src": "4570:15:3" }, { "attributes": { @@ -6171,25 +6325,25 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 538, + "referencedDeclaration": 616, "type": "address", "value": "wallet" }, - "id": 551, + "id": 629, "name": "Identifier", - "src": "4479:6:2" + "src": "4586:6:3" } ], - "id": 552, + "id": 630, "name": "ModifierInvocation", - "src": "4463:23:2" + "src": "4570:23:3" }, { "children": [ { "attributes": { "assignments": [ - 561 + 639 ] }, "children": [ @@ -6197,7 +6351,7 @@ "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 611, + "scope": 689, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -6210,14 +6364,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 560, + "id": 638, "name": "ElementaryTypeName", - "src": "4530:7:2" + "src": "4637:7:3" } ], - "id": 561, + "id": 639, "name": "VariableDeclaration", - "src": "4530:24:2" + "src": "4637:24:3" }, { "attributes": { @@ -6261,13 +6415,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1320, + "referencedDeclaration": 1580, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 562, + "id": 640, "name": "Identifier", - "src": "4557:9:2" + "src": "4664:9:3" }, { "attributes": { @@ -6275,13 +6429,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 540, + "referencedDeclaration": 618, "type": "string memory", "value": "country" }, - "id": 563, + "id": 641, "name": "Identifier", - "src": "4567:7:2" + "src": "4674:7:3" }, { "attributes": { @@ -6289,13 +6443,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 542, + "referencedDeclaration": 620, "type": "string memory", "value": "state" }, - "id": 564, + "id": 642, "name": "Identifier", - "src": "4576:5:2" + "src": "4683:5:3" }, { "attributes": { @@ -6303,13 +6457,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 544, + "referencedDeclaration": 622, "type": "string memory", "value": "city" }, - "id": 565, + "id": 643, "name": "Identifier", - "src": "4583:4:2" + "src": "4690:4:3" }, { "attributes": { @@ -6317,13 +6471,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 546, + "referencedDeclaration": 624, "type": "string memory", "value": "location" }, - "id": 566, + "id": 644, "name": "Identifier", - "src": "4589:8:2" + "src": "4696:8:3" }, { "attributes": { @@ -6331,30 +6485,30 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 548, + "referencedDeclaration": 626, "type": "string memory", "value": "zip" }, - "id": 567, + "id": 645, "name": "Identifier", - "src": "4599:3:2" + "src": "4706:3:3" } ], - "id": 568, + "id": 646, "name": "FunctionCall", - "src": "4557:46:2" + "src": "4664:46:3" } ], - "id": 569, + "id": 647, "name": "VariableDeclarationStatement", - "src": "4530:73:2" + "src": "4637:73:3" }, { "children": [ { "attributes": { "assignments": [ - 571 + 649 ] }, "children": [ @@ -6362,7 +6516,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 611, + "scope": 689, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -6375,14 +6529,14 @@ "name": "uint256", "type": "uint256" }, - "id": 570, + "id": 648, "name": "ElementaryTypeName", - "src": "4618:7:2" + "src": "4725:7:3" } ], - "id": 571, + "id": 649, "name": "VariableDeclaration", - "src": "4618:10:2" + "src": "4725:10:3" }, { "attributes": { @@ -6397,14 +6551,14 @@ "type": "int_const 0", "value": "0" }, - "id": 572, + "id": 650, "name": "Literal", - "src": "4631:1:2" + "src": "4738:1:3" } ], - "id": 573, + "id": 651, "name": "VariableDeclarationStatement", - "src": "4618:14:2" + "src": "4725:14:3" }, { "attributes": { @@ -6427,13 +6581,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 571, + "referencedDeclaration": 649, "type": "uint256", "value": "ai" }, - "id": 574, + "id": 652, "name": "Identifier", - "src": "4634:2:2" + "src": "4741:2:3" }, { "attributes": { @@ -6455,7 +6609,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -6475,13 +6629,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 575, + "id": 653, "name": "Identifier", - "src": "4639:5:2" + "src": "4746:5:3" }, { "attributes": { @@ -6489,33 +6643,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 538, + "referencedDeclaration": 616, "type": "address", "value": "wallet" }, - "id": 576, + "id": 654, "name": "Identifier", - "src": "4645:6:2" + "src": "4752:6:3" } ], - "id": 577, + "id": 655, "name": "IndexAccess", - "src": "4639:13:2" + "src": "4746:13:3" } ], - "id": 578, + "id": 656, "name": "MemberAccess", - "src": "4639:31:2" + "src": "4746:31:3" } ], - "id": 579, + "id": 657, "name": "MemberAccess", - "src": "4639:38:2" + "src": "4746:38:3" } ], - "id": 580, + "id": 658, "name": "BinaryOperation", - "src": "4634:43:2" + "src": "4741:43:3" }, { "children": [ @@ -6537,23 +6691,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 571, + "referencedDeclaration": 649, "type": "uint256", "value": "ai" }, - "id": 581, + "id": 659, "name": "Identifier", - "src": "4679:2:2" + "src": "4786:2:3" } ], - "id": 582, + "id": 660, "name": "UnaryOperation", - "src": "4679:4:2" + "src": "4786:4:3" } ], - "id": 583, + "id": 661, "name": "ExpressionStatement", - "src": "4679:4:2" + "src": "4786:4:3" }, { "children": [ @@ -6585,7 +6739,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 181, + "referencedDeclaration": 251, "type": "bytes32" }, "children": [ @@ -6607,7 +6761,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -6627,13 +6781,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 584, + "id": 662, "name": "Identifier", - "src": "4703:5:2" + "src": "4810:5:3" }, { "attributes": { @@ -6641,23 +6795,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 538, + "referencedDeclaration": 616, "type": "address", "value": "wallet" }, - "id": 585, + "id": 663, "name": "Identifier", - "src": "4709:6:2" + "src": "4816:6:3" } ], - "id": 586, + "id": 664, "name": "IndexAccess", - "src": "4703:13:2" + "src": "4810:13:3" } ], - "id": 587, + "id": 665, "name": "MemberAccess", - "src": "4703:31:2" + "src": "4810:31:3" }, { "attributes": { @@ -6665,23 +6819,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 571, + "referencedDeclaration": 649, "type": "uint256", "value": "ai" }, - "id": 588, + "id": 666, "name": "Identifier", - "src": "4735:2:2" + "src": "4842:2:3" } ], - "id": 589, + "id": 667, "name": "IndexAccess", - "src": "4703:35:2" + "src": "4810:35:3" } ], - "id": 590, + "id": 668, "name": "MemberAccess", - "src": "4703:52:2" + "src": "4810:52:3" }, { "attributes": { @@ -6689,24 +6843,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 561, + "referencedDeclaration": 639, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 591, + "id": 669, "name": "Identifier", - "src": "4759:16:2" + "src": "4866:16:3" } ], - "id": 592, + "id": 670, "name": "BinaryOperation", - "src": "4703:72:2" + "src": "4810:72:3" }, { "children": [ { "attributes": { - "functionReturnParameters": 559 + "functionReturnParameters": 637 }, "children": [ { @@ -6733,9 +6887,9 @@ "type": "bool", "value": "true" }, - "id": 593, + "id": 671, "name": "Literal", - "src": "4803:4:2" + "src": "4910:4:3" }, { "attributes": { @@ -6743,13 +6897,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 571, + "referencedDeclaration": 649, "type": "uint256", "value": "ai" }, - "id": 594, + "id": 672, "name": "Identifier", - "src": "4809:2:2" + "src": "4916:2:3" }, { "attributes": { @@ -6781,13 +6935,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 412, + "referencedDeclaration": 490, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 595, + "id": 673, "name": "Identifier", - "src": "4813:20:2" + "src": "4920:20:3" }, { "attributes": { @@ -6795,13 +6949,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 538, + "referencedDeclaration": 616, "type": "address", "value": "wallet" }, - "id": 596, + "id": 674, "name": "Identifier", - "src": "4834:6:2" + "src": "4941:6:3" }, { "attributes": { @@ -6809,52 +6963,52 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 571, + "referencedDeclaration": 649, "type": "uint256", "value": "ai" }, - "id": 597, + "id": 675, "name": "Identifier", - "src": "4842:2:2" + "src": "4949:2:3" } ], - "id": 598, + "id": 676, "name": "FunctionCall", - "src": "4813:32:2" + "src": "4920:32:3" } ], - "id": 599, + "id": 677, "name": "TupleExpression", - "src": "4802:44:2" + "src": "4909:44:3" } ], - "id": 600, + "id": 678, "name": "Return", - "src": "4795:51:2" + "src": "4902:51:3" } ], - "id": 601, + "id": 679, "name": "Block", - "src": "4777:84:2" + "src": "4884:84:3" } ], - "id": 602, + "id": 680, "name": "IfStatement", - "src": "4699:162:2" + "src": "4806:162:3" } ], - "id": 603, + "id": 681, "name": "Block", - "src": "4685:186:2" + "src": "4792:186:3" } ], - "id": 604, + "id": 682, "name": "ForStatement", - "src": "4613:258:2" + "src": "4720:258:3" }, { "attributes": { - "functionReturnParameters": 559 + "functionReturnParameters": 637 }, "children": [ { @@ -6881,9 +7035,9 @@ "type": "bool", "value": "false" }, - "id": 605, + "id": 683, "name": "Literal", - "src": "4888:5:2" + "src": "4995:5:3" }, { "attributes": { @@ -6898,9 +7052,9 @@ "type": "int_const 0", "value": "0" }, - "id": 606, + "id": 684, "name": "Literal", - "src": "4895:1:2" + "src": "5002:1:3" }, { "attributes": { @@ -6915,29 +7069,29 @@ "type": "bool", "value": "false" }, - "id": 607, + "id": 685, "name": "Literal", - "src": "4898:5:2" + "src": "5005:5:3" } ], - "id": 608, + "id": 686, "name": "TupleExpression", - "src": "4887:17:2" + "src": "4994:17:3" } ], - "id": 609, + "id": 687, "name": "Return", - "src": "4880:24:2" + "src": "4987:24:3" } ], - "id": 610, + "id": 688, "name": "Block", - "src": "4520:391:2" + "src": "4627:391:3" } ], - "id": 611, + "id": 689, "name": "FunctionDefinition", - "src": "4325:586:2" + "src": "4432:586:3" }, { "attributes": { @@ -6946,7 +7100,7 @@ "isConstructor": false, "name": "userLastSubmittedName", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -6958,7 +7112,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 636, + "scope": 714, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -6971,19 +7125,19 @@ "name": "address", "type": "address" }, - "id": 612, + "id": 690, "name": "ElementaryTypeName", - "src": "5000:7:2" + "src": "5107:7:3" } ], - "id": 613, + "id": 691, "name": "VariableDeclaration", - "src": "5000:14:2" + "src": "5107:14:3" } ], - "id": 614, + "id": 692, "name": "ParameterList", - "src": "4999:16:2" + "src": "5106:16:3" }, { "children": [ @@ -6991,7 +7145,7 @@ "attributes": { "constant": false, "name": "", - "scope": 636, + "scope": 714, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -7004,19 +7158,19 @@ "name": "string", "type": "string storage pointer" }, - "id": 618, + "id": 696, "name": "ElementaryTypeName", - "src": "5069:6:2" + "src": "5176:6:3" } ], - "id": 619, + "id": 697, "name": "VariableDeclaration", - "src": "5069:6:2" + "src": "5176:6:3" } ], - "id": 620, + "id": 698, "name": "ParameterList", - "src": "5068:8:2" + "src": "5175:8:3" }, { "children": [ @@ -7026,13 +7180,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 244, + "referencedDeclaration": 322, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 615, + "id": 693, "name": "Identifier", - "src": "5036:15:2" + "src": "5143:15:3" }, { "attributes": { @@ -7040,24 +7194,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 613, + "referencedDeclaration": 691, "type": "address", "value": "wallet" }, - "id": 616, + "id": 694, "name": "Identifier", - "src": "5052:6:2" + "src": "5159:6:3" } ], - "id": 617, + "id": 695, "name": "ModifierInvocation", - "src": "5036:23:2" + "src": "5143:23:3" }, { "children": [ { "attributes": { - "functionReturnParameters": 620 + "functionReturnParameters": 698 }, "children": [ { @@ -7068,7 +7222,7 @@ "isPure": false, "lValueRequested": false, "member_name": "name", - "referencedDeclaration": 167, + "referencedDeclaration": 237, "type": "string storage ref" }, "children": [ @@ -7090,7 +7244,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -7110,13 +7264,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 621, + "id": 699, "name": "Identifier", - "src": "5098:5:2" + "src": "5205:5:3" }, { "attributes": { @@ -7124,23 +7278,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 613, + "referencedDeclaration": 691, "type": "address", "value": "wallet" }, - "id": 622, + "id": 700, "name": "Identifier", - "src": "5104:6:2" + "src": "5211:6:3" } ], - "id": 623, + "id": 701, "name": "IndexAccess", - "src": "5098:13:2" + "src": "5205:13:3" } ], - "id": 624, + "id": 702, "name": "MemberAccess", - "src": "5098:31:2" + "src": "5205:31:3" }, { "attributes": { @@ -7177,7 +7331,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -7197,13 +7351,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 625, + "id": 703, "name": "Identifier", - "src": "5130:5:2" + "src": "5237:5:3" }, { "attributes": { @@ -7211,28 +7365,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 613, + "referencedDeclaration": 691, "type": "address", "value": "wallet" }, - "id": 626, + "id": 704, "name": "Identifier", - "src": "5136:6:2" + "src": "5243:6:3" } ], - "id": 627, + "id": 705, "name": "IndexAccess", - "src": "5130:13:2" + "src": "5237:13:3" } ], - "id": 628, + "id": 706, "name": "MemberAccess", - "src": "5130:31:2" + "src": "5237:31:3" } ], - "id": 629, + "id": 707, "name": "MemberAccess", - "src": "5130:38:2" + "src": "5237:38:3" }, { "attributes": { @@ -7247,39 +7401,39 @@ "type": "int_const 1", "value": "1" }, - "id": 630, + "id": 708, "name": "Literal", - "src": "5169:1:2" + "src": "5276:1:3" } ], - "id": 631, + "id": 709, "name": "BinaryOperation", - "src": "5130:40:2" + "src": "5237:40:3" } ], - "id": 632, + "id": 710, "name": "IndexAccess", - "src": "5098:73:2" + "src": "5205:73:3" } ], - "id": 633, + "id": 711, "name": "MemberAccess", - "src": "5098:78:2" + "src": "5205:78:3" } ], - "id": 634, + "id": 712, "name": "Return", - "src": "5091:85:2" + "src": "5198:85:3" } ], - "id": 635, + "id": 713, "name": "Block", - "src": "5081:102:2" + "src": "5188:102:3" } ], - "id": 636, + "id": 714, "name": "FunctionDefinition", - "src": "4969:214:2" + "src": "5076:214:3" }, { "attributes": { @@ -7288,7 +7442,7 @@ "isConstructor": false, "name": "userLastConfirmedName", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -7300,7 +7454,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 679, + "scope": 757, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -7313,19 +7467,19 @@ "name": "address", "type": "address" }, - "id": 637, + "id": 715, "name": "ElementaryTypeName", - "src": "5315:7:2" + "src": "5422:7:3" } ], - "id": 638, + "id": 716, "name": "VariableDeclaration", - "src": "5315:14:2" + "src": "5422:14:3" } ], - "id": 639, + "id": 717, "name": "ParameterList", - "src": "5314:16:2" + "src": "5421:16:3" }, { "children": [ @@ -7333,7 +7487,7 @@ "attributes": { "constant": false, "name": "", - "scope": 679, + "scope": 757, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -7346,19 +7500,19 @@ "name": "string", "type": "string storage pointer" }, - "id": 643, + "id": 721, "name": "ElementaryTypeName", - "src": "5384:6:2" + "src": "5491:6:3" } ], - "id": 644, + "id": 722, "name": "VariableDeclaration", - "src": "5384:6:2" + "src": "5491:6:3" } ], - "id": 645, + "id": 723, "name": "ParameterList", - "src": "5383:8:2" + "src": "5490:8:3" }, { "children": [ @@ -7368,13 +7522,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 244, + "referencedDeclaration": 322, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 640, + "id": 718, "name": "Identifier", - "src": "5351:15:2" + "src": "5458:15:3" }, { "attributes": { @@ -7382,18 +7536,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 638, + "referencedDeclaration": 716, "type": "address", "value": "wallet" }, - "id": 641, + "id": 719, "name": "Identifier", - "src": "5367:6:2" + "src": "5474:6:3" } ], - "id": 642, + "id": 720, "name": "ModifierInvocation", - "src": "5351:23:2" + "src": "5458:23:3" }, { "children": [ @@ -7405,7 +7559,7 @@ { "attributes": { "assignments": [ - 647 + 725 ] }, "children": [ @@ -7413,7 +7567,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 679, + "scope": 757, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -7426,14 +7580,14 @@ "name": "uint256", "type": "uint256" }, - "id": 646, + "id": 724, "name": "ElementaryTypeName", - "src": "5411:7:2" + "src": "5518:7:3" } ], - "id": 647, + "id": 725, "name": "VariableDeclaration", - "src": "5411:10:2" + "src": "5518:10:3" }, { "attributes": { @@ -7455,7 +7609,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -7475,13 +7629,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 648, + "id": 726, "name": "Identifier", - "src": "5424:5:2" + "src": "5531:5:3" }, { "attributes": { @@ -7489,33 +7643,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 638, + "referencedDeclaration": 716, "type": "address", "value": "wallet" }, - "id": 649, + "id": 727, "name": "Identifier", - "src": "5430:6:2" + "src": "5537:6:3" } ], - "id": 650, + "id": 728, "name": "IndexAccess", - "src": "5424:13:2" + "src": "5531:13:3" } ], - "id": 651, + "id": 729, "name": "MemberAccess", - "src": "5424:31:2" + "src": "5531:31:3" } ], - "id": 652, + "id": 730, "name": "MemberAccess", - "src": "5424:38:2" + "src": "5531:38:3" } ], - "id": 653, + "id": 731, "name": "VariableDeclarationStatement", - "src": "5411:51:2" + "src": "5518:51:3" }, { "attributes": { @@ -7538,13 +7692,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 647, + "referencedDeclaration": 725, "type": "uint256", "value": "ai" }, - "id": 654, + "id": 732, "name": "Identifier", - "src": "5464:2:2" + "src": "5571:2:3" }, { "attributes": { @@ -7559,14 +7713,14 @@ "type": "int_const 0", "value": "0" }, - "id": 655, + "id": 733, "name": "Literal", - "src": "5469:1:2" + "src": "5576:1:3" } ], - "id": 656, + "id": 734, "name": "BinaryOperation", - "src": "5464:6:2" + "src": "5571:6:3" }, { "children": [ @@ -7590,23 +7744,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 647, + "referencedDeclaration": 725, "type": "uint256", "value": "ai" }, - "id": 657, + "id": 735, "name": "Identifier", - "src": "5487:2:2" + "src": "5594:2:3" } ], - "id": 658, + "id": 736, "name": "UnaryOperation", - "src": "5487:4:2" + "src": "5594:4:3" } ], - "id": 659, + "id": 737, "name": "ExpressionStatement", - "src": "5487:4:2" + "src": "5594:4:3" }, { "attributes": { @@ -7643,13 +7797,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 412, + "referencedDeclaration": 490, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 660, + "id": 738, "name": "Identifier", - "src": "5509:20:2" + "src": "5616:20:3" }, { "attributes": { @@ -7657,13 +7811,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 638, + "referencedDeclaration": 716, "type": "address", "value": "wallet" }, - "id": 661, + "id": 739, "name": "Identifier", - "src": "5530:6:2" + "src": "5637:6:3" }, { "attributes": { @@ -7671,24 +7825,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 647, + "referencedDeclaration": 725, "type": "uint256", "value": "ai" }, - "id": 662, + "id": 740, "name": "Identifier", - "src": "5538:2:2" + "src": "5645:2:3" } ], - "id": 663, + "id": 741, "name": "FunctionCall", - "src": "5509:32:2" + "src": "5616:32:3" }, { "children": [ { "attributes": { - "functionReturnParameters": 645 + "functionReturnParameters": 723 }, "children": [ { @@ -7699,7 +7853,7 @@ "isPure": false, "lValueRequested": false, "member_name": "name", - "referencedDeclaration": 167, + "referencedDeclaration": 237, "type": "string storage ref" }, "children": [ @@ -7721,7 +7875,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -7741,13 +7895,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 664, + "id": 742, "name": "Identifier", - "src": "5568:5:2" + "src": "5675:5:3" }, { "attributes": { @@ -7755,23 +7909,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 638, + "referencedDeclaration": 716, "type": "address", "value": "wallet" }, - "id": 665, + "id": 743, "name": "Identifier", - "src": "5574:6:2" + "src": "5681:6:3" } ], - "id": 666, + "id": 744, "name": "IndexAccess", - "src": "5568:13:2" + "src": "5675:13:3" } ], - "id": 667, + "id": 745, "name": "MemberAccess", - "src": "5568:31:2" + "src": "5675:31:3" }, { "attributes": { @@ -7779,52 +7933,52 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 647, + "referencedDeclaration": 725, "type": "uint256", "value": "ai" }, - "id": 668, + "id": 746, "name": "Identifier", - "src": "5600:2:2" + "src": "5707:2:3" } ], - "id": 669, + "id": 747, "name": "IndexAccess", - "src": "5568:35:2" + "src": "5675:35:3" } ], - "id": 670, + "id": 748, "name": "MemberAccess", - "src": "5568:40:2" + "src": "5675:40:3" } ], - "id": 671, + "id": 749, "name": "Return", - "src": "5561:47:2" + "src": "5668:47:3" } ], - "id": 672, + "id": 750, "name": "Block", - "src": "5543:80:2" + "src": "5650:80:3" } ], - "id": 673, + "id": 751, "name": "IfStatement", - "src": "5505:118:2" + "src": "5612:118:3" } ], - "id": 674, + "id": 752, "name": "Block", - "src": "5473:160:2" + "src": "5580:160:3" } ], - "id": 675, + "id": 753, "name": "ForStatement", - "src": "5406:227:2" + "src": "5513:227:3" }, { "attributes": { - "functionReturnParameters": 645 + "functionReturnParameters": 723 }, "children": [ { @@ -7840,24 +7994,24 @@ "type": "literal_string \"\"", "value": "" }, - "id": 676, + "id": 754, "name": "Literal", - "src": "5649:2:2" + "src": "5756:2:3" } ], - "id": 677, + "id": 755, "name": "Return", - "src": "5642:9:2" + "src": "5749:9:3" } ], - "id": 678, + "id": 756, "name": "Block", - "src": "5396:262:2" + "src": "5503:262:3" } ], - "id": 679, + "id": 757, "name": "FunctionDefinition", - "src": "5284:374:2" + "src": "5391:374:3" }, { "attributes": { @@ -7869,7 +8023,7 @@ ], "name": "userSubmittedAddressesCount", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -7881,7 +8035,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 693, + "scope": 771, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -7894,19 +8048,19 @@ "name": "address", "type": "address" }, - "id": 680, + "id": 758, "name": "ElementaryTypeName", - "src": "5797:7:2" + "src": "5904:7:3" } ], - "id": 681, + "id": 759, "name": "VariableDeclaration", - "src": "5797:14:2" + "src": "5904:14:3" } ], - "id": 682, + "id": 760, "name": "ParameterList", - "src": "5796:16:2" + "src": "5903:16:3" }, { "children": [ @@ -7914,7 +8068,7 @@ "attributes": { "constant": false, "name": "", - "scope": 693, + "scope": 771, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -7927,25 +8081,25 @@ "name": "uint256", "type": "uint256" }, - "id": 683, + "id": 761, "name": "ElementaryTypeName", - "src": "5842:7:2" + "src": "5949:7:3" } ], - "id": 684, + "id": 762, "name": "VariableDeclaration", - "src": "5842:7:2" + "src": "5949:7:3" } ], - "id": 685, + "id": 763, "name": "ParameterList", - "src": "5841:9:2" + "src": "5948:9:3" }, { "children": [ { "attributes": { - "functionReturnParameters": 685 + "functionReturnParameters": 763 }, "children": [ { @@ -7968,7 +8122,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -7988,13 +8142,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 686, + "id": 764, "name": "Identifier", - "src": "5872:5:2" + "src": "5979:5:3" }, { "attributes": { @@ -8002,43 +8156,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 681, + "referencedDeclaration": 759, "type": "address", "value": "wallet" }, - "id": 687, + "id": 765, "name": "Identifier", - "src": "5878:6:2" + "src": "5985:6:3" } ], - "id": 688, + "id": 766, "name": "IndexAccess", - "src": "5872:13:2" + "src": "5979:13:3" } ], - "id": 689, + "id": 767, "name": "MemberAccess", - "src": "5872:31:2" + "src": "5979:31:3" } ], - "id": 690, + "id": 768, "name": "MemberAccess", - "src": "5872:38:2" + "src": "5979:38:3" } ], - "id": 691, + "id": 769, "name": "Return", - "src": "5865:45:2" + "src": "5972:45:3" } ], - "id": 692, + "id": 770, "name": "Block", - "src": "5855:62:2" + "src": "5962:62:3" } ], - "id": 693, + "id": 771, "name": "FunctionDefinition", - "src": "5760:157:2" + "src": "5867:157:3" }, { "attributes": { @@ -8050,7 +8204,7 @@ ], "name": "userConfirmedAddressesCount", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8062,7 +8216,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 733, + "scope": 811, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -8075,19 +8229,19 @@ "name": "address", "type": "address" }, - "id": 694, + "id": 772, "name": "ElementaryTypeName", - "src": "6062:7:2" + "src": "6169:7:3" } ], - "id": 695, + "id": 773, "name": "VariableDeclaration", - "src": "6062:14:2" + "src": "6169:14:3" } ], - "id": 696, + "id": 774, "name": "ParameterList", - "src": "6061:16:2" + "src": "6168:16:3" }, { "children": [ @@ -8095,7 +8249,7 @@ "attributes": { "constant": false, "name": "", - "scope": 733, + "scope": 811, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -8108,26 +8262,26 @@ "name": "uint256", "type": "uint256" }, - "id": 697, + "id": 775, "name": "ElementaryTypeName", - "src": "6107:7:2" + "src": "6214:7:3" } ], - "id": 698, + "id": 776, "name": "VariableDeclaration", - "src": "6107:7:2" + "src": "6214:7:3" } ], - "id": 699, + "id": 777, "name": "ParameterList", - "src": "6106:9:2" + "src": "6213:9:3" }, { "children": [ { "attributes": { "assignments": [ - 701 + 779 ] }, "children": [ @@ -8135,7 +8289,7 @@ "attributes": { "constant": false, "name": "c", - "scope": 733, + "scope": 811, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -8148,14 +8302,14 @@ "name": "uint256", "type": "uint256" }, - "id": 700, + "id": 778, "name": "ElementaryTypeName", - "src": "6130:7:2" + "src": "6237:7:3" } ], - "id": 701, + "id": 779, "name": "VariableDeclaration", - "src": "6130:9:2" + "src": "6237:9:3" }, { "attributes": { @@ -8170,21 +8324,21 @@ "type": "int_const 0", "value": "0" }, - "id": 702, + "id": 780, "name": "Literal", - "src": "6142:1:2" + "src": "6249:1:3" } ], - "id": 703, + "id": 781, "name": "VariableDeclarationStatement", - "src": "6130:13:2" + "src": "6237:13:3" }, { "children": [ { "attributes": { "assignments": [ - 705 + 783 ] }, "children": [ @@ -8192,7 +8346,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 733, + "scope": 811, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -8205,14 +8359,14 @@ "name": "uint256", "type": "uint256" }, - "id": 704, + "id": 782, "name": "ElementaryTypeName", - "src": "6158:7:2" + "src": "6265:7:3" } ], - "id": 705, + "id": 783, "name": "VariableDeclaration", - "src": "6158:10:2" + "src": "6265:10:3" }, { "attributes": { @@ -8227,14 +8381,14 @@ "type": "int_const 0", "value": "0" }, - "id": 706, + "id": 784, "name": "Literal", - "src": "6171:1:2" + "src": "6278:1:3" } ], - "id": 707, + "id": 785, "name": "VariableDeclarationStatement", - "src": "6158:14:2" + "src": "6265:14:3" }, { "attributes": { @@ -8257,13 +8411,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 705, + "referencedDeclaration": 783, "type": "uint256", "value": "ai" }, - "id": 708, + "id": 786, "name": "Identifier", - "src": "6174:2:2" + "src": "6281:2:3" }, { "attributes": { @@ -8285,7 +8439,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -8305,13 +8459,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 709, + "id": 787, "name": "Identifier", - "src": "6179:5:2" + "src": "6286:5:3" }, { "attributes": { @@ -8319,33 +8473,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 695, + "referencedDeclaration": 773, "type": "address", "value": "wallet" }, - "id": 710, + "id": 788, "name": "Identifier", - "src": "6185:6:2" + "src": "6292:6:3" } ], - "id": 711, + "id": 789, "name": "IndexAccess", - "src": "6179:13:2" + "src": "6286:13:3" } ], - "id": 712, + "id": 790, "name": "MemberAccess", - "src": "6179:31:2" + "src": "6286:31:3" } ], - "id": 713, + "id": 791, "name": "MemberAccess", - "src": "6179:38:2" + "src": "6286:38:3" } ], - "id": 714, + "id": 792, "name": "BinaryOperation", - "src": "6174:43:2" + "src": "6281:43:3" }, { "children": [ @@ -8367,23 +8521,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 705, + "referencedDeclaration": 783, "type": "uint256", "value": "ai" }, - "id": 715, + "id": 793, "name": "Identifier", - "src": "6219:2:2" + "src": "6326:2:3" } ], - "id": 716, + "id": 794, "name": "UnaryOperation", - "src": "6219:4:2" + "src": "6326:4:3" } ], - "id": 717, + "id": 795, "name": "ExpressionStatement", - "src": "6219:4:2" + "src": "6326:4:3" }, { "children": [ @@ -8422,13 +8576,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 412, + "referencedDeclaration": 490, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 718, + "id": 796, "name": "Identifier", - "src": "6243:20:2" + "src": "6350:20:3" }, { "attributes": { @@ -8436,13 +8590,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 695, + "referencedDeclaration": 773, "type": "address", "value": "wallet" }, - "id": 719, + "id": 797, "name": "Identifier", - "src": "6264:6:2" + "src": "6371:6:3" }, { "attributes": { @@ -8450,18 +8604,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 705, + "referencedDeclaration": 783, "type": "uint256", "value": "ai" }, - "id": 720, + "id": 798, "name": "Identifier", - "src": "6272:2:2" + "src": "6379:2:3" } ], - "id": 721, + "id": 799, "name": "FunctionCall", - "src": "6243:32:2" + "src": "6350:32:3" }, { "children": [ @@ -8484,13 +8638,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 701, + "referencedDeclaration": 779, "type": "uint256", "value": "c" }, - "id": 722, + "id": 800, "name": "Identifier", - "src": "6295:1:2" + "src": "6402:1:3" }, { "attributes": { @@ -8505,43 +8659,43 @@ "type": "int_const 1", "value": "1" }, - "id": 723, + "id": 801, "name": "Literal", - "src": "6300:1:2" + "src": "6407:1:3" } ], - "id": 724, + "id": 802, "name": "Assignment", - "src": "6295:6:2" + "src": "6402:6:3" } ], - "id": 725, + "id": 803, "name": "ExpressionStatement", - "src": "6295:6:2" + "src": "6402:6:3" } ], - "id": 726, + "id": 804, "name": "Block", - "src": "6277:39:2" + "src": "6384:39:3" } ], - "id": 727, + "id": 805, "name": "IfStatement", - "src": "6239:77:2" + "src": "6346:77:3" } ], - "id": 728, + "id": 806, "name": "Block", - "src": "6225:101:2" + "src": "6332:101:3" } ], - "id": 729, + "id": 807, "name": "ForStatement", - "src": "6153:173:2" + "src": "6260:173:3" }, { "attributes": { - "functionReturnParameters": 699 + "functionReturnParameters": 777 }, "children": [ { @@ -8550,28 +8704,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 701, + "referencedDeclaration": 779, "type": "uint256", "value": "c" }, - "id": 730, + "id": 808, "name": "Identifier", - "src": "6342:1:2" + "src": "6449:1:3" } ], - "id": 731, + "id": 809, "name": "Return", - "src": "6335:8:2" + "src": "6442:8:3" } ], - "id": 732, + "id": 810, "name": "Block", - "src": "6120:230:2" + "src": "6227:230:3" } ], - "id": 733, + "id": 811, "name": "FunctionDefinition", - "src": "6025:325:2" + "src": "6132:325:3" }, { "attributes": { @@ -8580,7 +8734,7 @@ "isConstructor": false, "name": "userAddress", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8592,7 +8746,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 791, + "scope": 869, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -8605,20 +8759,20 @@ "name": "address", "type": "address" }, - "id": 734, + "id": 812, "name": "ElementaryTypeName", - "src": "6377:7:2" + "src": "6484:7:3" } ], - "id": 735, + "id": 813, "name": "VariableDeclaration", - "src": "6377:14:2" + "src": "6484:14:3" }, { "attributes": { "constant": false, "name": "addressIndex", - "scope": 791, + "scope": 869, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -8631,19 +8785,19 @@ "name": "uint256", "type": "uint256" }, - "id": 736, + "id": 814, "name": "ElementaryTypeName", - "src": "6393:7:2" + "src": "6500:7:3" } ], - "id": 737, + "id": 815, "name": "VariableDeclaration", - "src": "6393:20:2" + "src": "6500:20:3" } ], - "id": 738, + "id": 816, "name": "ParameterList", - "src": "6376:38:2" + "src": "6483:38:3" }, { "children": [ @@ -8651,7 +8805,7 @@ "attributes": { "constant": false, "name": "country", - "scope": 791, + "scope": 869, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -8664,20 +8818,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 742, + "id": 820, "name": "ElementaryTypeName", - "src": "6477:6:2" + "src": "6584:6:3" } ], - "id": 743, + "id": 821, "name": "VariableDeclaration", - "src": "6477:14:2" + "src": "6584:14:3" }, { "attributes": { "constant": false, "name": "state", - "scope": 791, + "scope": 869, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -8690,20 +8844,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 744, + "id": 822, "name": "ElementaryTypeName", - "src": "6493:6:2" + "src": "6600:6:3" } ], - "id": 745, + "id": 823, "name": "VariableDeclaration", - "src": "6493:12:2" + "src": "6600:12:3" }, { "attributes": { "constant": false, "name": "city", - "scope": 791, + "scope": 869, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -8716,20 +8870,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 746, + "id": 824, "name": "ElementaryTypeName", - "src": "6507:6:2" + "src": "6614:6:3" } ], - "id": 747, + "id": 825, "name": "VariableDeclaration", - "src": "6507:11:2" + "src": "6614:11:3" }, { "attributes": { "constant": false, "name": "location", - "scope": 791, + "scope": 869, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -8742,20 +8896,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 748, + "id": 826, "name": "ElementaryTypeName", - "src": "6520:6:2" + "src": "6627:6:3" } ], - "id": 749, + "id": 827, "name": "VariableDeclaration", - "src": "6520:15:2" + "src": "6627:15:3" }, { "attributes": { "constant": false, "name": "zip", - "scope": 791, + "scope": 869, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -8768,19 +8922,19 @@ "name": "string", "type": "string storage pointer" }, - "id": 750, + "id": 828, "name": "ElementaryTypeName", - "src": "6537:6:2" + "src": "6644:6:3" } ], - "id": 751, + "id": 829, "name": "VariableDeclaration", - "src": "6537:10:2" + "src": "6644:10:3" } ], - "id": 752, + "id": 830, "name": "ParameterList", - "src": "6467:81:2" + "src": "6574:81:3" }, { "children": [ @@ -8790,13 +8944,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 244, + "referencedDeclaration": 322, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 739, + "id": 817, "name": "Identifier", - "src": "6435:15:2" + "src": "6542:15:3" }, { "attributes": { @@ -8804,24 +8958,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 735, + "referencedDeclaration": 813, "type": "address", "value": "wallet" }, - "id": 740, + "id": 818, "name": "Identifier", - "src": "6451:6:2" + "src": "6558:6:3" } ], - "id": 741, + "id": 819, "name": "ModifierInvocation", - "src": "6435:23:2" + "src": "6542:23:3" }, { "children": [ { "attributes": { - "functionReturnParameters": 752 + "functionReturnParameters": 830 }, "children": [ { @@ -8843,7 +8997,7 @@ "isPure": false, "lValueRequested": false, "member_name": "country", - "referencedDeclaration": 169, + "referencedDeclaration": 239, "type": "string storage ref" }, "children": [ @@ -8865,7 +9019,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -8885,13 +9039,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 753, + "id": 831, "name": "Identifier", - "src": "6584:5:2" + "src": "6691:5:3" }, { "attributes": { @@ -8899,23 +9053,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 735, + "referencedDeclaration": 813, "type": "address", "value": "wallet" }, - "id": 754, + "id": 832, "name": "Identifier", - "src": "6590:6:2" + "src": "6697:6:3" } ], - "id": 755, + "id": 833, "name": "IndexAccess", - "src": "6584:13:2" + "src": "6691:13:3" } ], - "id": 756, + "id": 834, "name": "MemberAccess", - "src": "6584:31:2" + "src": "6691:31:3" }, { "attributes": { @@ -8923,23 +9077,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 737, + "referencedDeclaration": 815, "type": "uint256", "value": "addressIndex" }, - "id": 757, + "id": 835, "name": "Identifier", - "src": "6616:12:2" + "src": "6723:12:3" } ], - "id": 758, + "id": 836, "name": "IndexAccess", - "src": "6584:45:2" + "src": "6691:45:3" } ], - "id": 759, + "id": 837, "name": "MemberAccess", - "src": "6584:53:2" + "src": "6691:53:3" }, { "attributes": { @@ -8949,7 +9103,7 @@ "isPure": false, "lValueRequested": false, "member_name": "state", - "referencedDeclaration": 171, + "referencedDeclaration": 241, "type": "string storage ref" }, "children": [ @@ -8971,7 +9125,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -8991,13 +9145,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 760, + "id": 838, "name": "Identifier", - "src": "6651:5:2" + "src": "6758:5:3" }, { "attributes": { @@ -9005,23 +9159,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 735, + "referencedDeclaration": 813, "type": "address", "value": "wallet" }, - "id": 761, + "id": 839, "name": "Identifier", - "src": "6657:6:2" + "src": "6764:6:3" } ], - "id": 762, + "id": 840, "name": "IndexAccess", - "src": "6651:13:2" + "src": "6758:13:3" } ], - "id": 763, + "id": 841, "name": "MemberAccess", - "src": "6651:31:2" + "src": "6758:31:3" }, { "attributes": { @@ -9029,23 +9183,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 737, + "referencedDeclaration": 815, "type": "uint256", "value": "addressIndex" }, - "id": 764, + "id": 842, "name": "Identifier", - "src": "6683:12:2" + "src": "6790:12:3" } ], - "id": 765, + "id": 843, "name": "IndexAccess", - "src": "6651:45:2" + "src": "6758:45:3" } ], - "id": 766, + "id": 844, "name": "MemberAccess", - "src": "6651:51:2" + "src": "6758:51:3" }, { "attributes": { @@ -9055,7 +9209,7 @@ "isPure": false, "lValueRequested": false, "member_name": "city", - "referencedDeclaration": 173, + "referencedDeclaration": 243, "type": "string storage ref" }, "children": [ @@ -9077,7 +9231,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -9097,13 +9251,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 767, + "id": 845, "name": "Identifier", - "src": "6716:5:2" + "src": "6823:5:3" }, { "attributes": { @@ -9111,23 +9265,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 735, + "referencedDeclaration": 813, "type": "address", "value": "wallet" }, - "id": 768, + "id": 846, "name": "Identifier", - "src": "6722:6:2" + "src": "6829:6:3" } ], - "id": 769, + "id": 847, "name": "IndexAccess", - "src": "6716:13:2" + "src": "6823:13:3" } ], - "id": 770, + "id": 848, "name": "MemberAccess", - "src": "6716:31:2" + "src": "6823:31:3" }, { "attributes": { @@ -9135,23 +9289,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 737, + "referencedDeclaration": 815, "type": "uint256", "value": "addressIndex" }, - "id": 771, + "id": 849, "name": "Identifier", - "src": "6748:12:2" + "src": "6855:12:3" } ], - "id": 772, + "id": 850, "name": "IndexAccess", - "src": "6716:45:2" + "src": "6823:45:3" } ], - "id": 773, + "id": 851, "name": "MemberAccess", - "src": "6716:50:2" + "src": "6823:50:3" }, { "attributes": { @@ -9161,7 +9315,7 @@ "isPure": false, "lValueRequested": false, "member_name": "location", - "referencedDeclaration": 175, + "referencedDeclaration": 245, "type": "string storage ref" }, "children": [ @@ -9183,7 +9337,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -9203,13 +9357,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 774, + "id": 852, "name": "Identifier", - "src": "6780:5:2" + "src": "6887:5:3" }, { "attributes": { @@ -9217,23 +9371,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 735, + "referencedDeclaration": 813, "type": "address", "value": "wallet" }, - "id": 775, + "id": 853, "name": "Identifier", - "src": "6786:6:2" + "src": "6893:6:3" } ], - "id": 776, + "id": 854, "name": "IndexAccess", - "src": "6780:13:2" + "src": "6887:13:3" } ], - "id": 777, + "id": 855, "name": "MemberAccess", - "src": "6780:31:2" + "src": "6887:31:3" }, { "attributes": { @@ -9241,23 +9395,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 737, + "referencedDeclaration": 815, "type": "uint256", "value": "addressIndex" }, - "id": 778, + "id": 856, "name": "Identifier", - "src": "6812:12:2" + "src": "6919:12:3" } ], - "id": 779, + "id": 857, "name": "IndexAccess", - "src": "6780:45:2" + "src": "6887:45:3" } ], - "id": 780, + "id": 858, "name": "MemberAccess", - "src": "6780:54:2" + "src": "6887:54:3" }, { "attributes": { @@ -9267,7 +9421,7 @@ "isPure": false, "lValueRequested": false, "member_name": "zip", - "referencedDeclaration": 177, + "referencedDeclaration": 247, "type": "string storage ref" }, "children": [ @@ -9289,7 +9443,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -9309,13 +9463,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 781, + "id": 859, "name": "Identifier", - "src": "6848:5:2" + "src": "6955:5:3" }, { "attributes": { @@ -9323,23 +9477,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 735, + "referencedDeclaration": 813, "type": "address", "value": "wallet" }, - "id": 782, + "id": 860, "name": "Identifier", - "src": "6854:6:2" + "src": "6961:6:3" } ], - "id": 783, + "id": 861, "name": "IndexAccess", - "src": "6848:13:2" + "src": "6955:13:3" } ], - "id": 784, + "id": 862, "name": "MemberAccess", - "src": "6848:31:2" + "src": "6955:31:3" }, { "attributes": { @@ -9347,43 +9501,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 737, + "referencedDeclaration": 815, "type": "uint256", "value": "addressIndex" }, - "id": 785, + "id": 863, "name": "Identifier", - "src": "6880:12:2" + "src": "6987:12:3" } ], - "id": 786, + "id": 864, "name": "IndexAccess", - "src": "6848:45:2" + "src": "6955:45:3" } ], - "id": 787, + "id": 865, "name": "MemberAccess", - "src": "6848:49:2" + "src": "6955:49:3" } ], - "id": 788, + "id": 866, "name": "TupleExpression", - "src": "6570:337:2" + "src": "6677:337:3" } ], - "id": 789, + "id": 867, "name": "Return", - "src": "6563:344:2" + "src": "6670:344:3" } ], - "id": 790, + "id": 868, "name": "Block", - "src": "6553:361:2" + "src": "6660:361:3" } ], - "id": 791, + "id": 869, "name": "FunctionDefinition", - "src": "6356:558:2" + "src": "6463:558:3" }, { "attributes": { @@ -9392,7 +9546,7 @@ "isConstructor": false, "name": "userAddressInfo", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -9404,7 +9558,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 854, + "scope": 932, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -9417,20 +9571,20 @@ "name": "address", "type": "address" }, - "id": 792, + "id": 870, "name": "ElementaryTypeName", - "src": "6945:7:2" + "src": "7052:7:3" } ], - "id": 793, + "id": 871, "name": "VariableDeclaration", - "src": "6945:14:2" + "src": "7052:14:3" }, { "attributes": { "constant": false, "name": "addressIndex", - "scope": 854, + "scope": 932, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -9443,19 +9597,19 @@ "name": "uint256", "type": "uint256" }, - "id": 794, + "id": 872, "name": "ElementaryTypeName", - "src": "6961:7:2" + "src": "7068:7:3" } ], - "id": 795, + "id": 873, "name": "VariableDeclaration", - "src": "6961:20:2" + "src": "7068:20:3" } ], - "id": 796, + "id": 874, "name": "ParameterList", - "src": "6944:38:2" + "src": "7051:38:3" }, { "children": [ @@ -9463,7 +9617,7 @@ "attributes": { "constant": false, "name": "name", - "scope": 854, + "scope": 932, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -9476,20 +9630,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 800, + "id": 878, "name": "ElementaryTypeName", - "src": "7045:6:2" + "src": "7152:6:3" } ], - "id": 801, + "id": 879, "name": "VariableDeclaration", - "src": "7045:11:2" + "src": "7152:11:3" }, { "attributes": { "constant": false, "name": "creationBlock", - "scope": 854, + "scope": 932, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -9502,20 +9656,20 @@ "name": "uint256", "type": "uint256" }, - "id": 802, + "id": 880, "name": "ElementaryTypeName", - "src": "7066:7:2" + "src": "7173:7:3" } ], - "id": 803, + "id": 881, "name": "VariableDeclaration", - "src": "7066:21:2" + "src": "7173:21:3" }, { "attributes": { "constant": false, "name": "confirmationBlock", - "scope": 854, + "scope": 932, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -9528,20 +9682,20 @@ "name": "uint256", "type": "uint256" }, - "id": 804, + "id": 882, "name": "ElementaryTypeName", - "src": "7097:7:2" + "src": "7204:7:3" } ], - "id": 805, + "id": 883, "name": "VariableDeclaration", - "src": "7097:25:2" + "src": "7204:25:3" }, { "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 854, + "scope": 932, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -9554,19 +9708,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 806, + "id": 884, "name": "ElementaryTypeName", - "src": "7132:7:2" + "src": "7239:7:3" } ], - "id": 807, + "id": 885, "name": "VariableDeclaration", - "src": "7132:24:2" + "src": "7239:24:3" } ], - "id": 808, + "id": 886, "name": "ParameterList", - "src": "7035:127:2" + "src": "7142:127:3" }, { "children": [ @@ -9576,13 +9730,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 244, + "referencedDeclaration": 322, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 797, + "id": 875, "name": "Identifier", - "src": "7003:15:2" + "src": "7110:15:3" }, { "attributes": { @@ -9590,25 +9744,25 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 793, + "referencedDeclaration": 871, "type": "address", "value": "wallet" }, - "id": 798, + "id": 876, "name": "Identifier", - "src": "7019:6:2" + "src": "7126:6:3" } ], - "id": 799, + "id": 877, "name": "ModifierInvocation", - "src": "7003:23:2" + "src": "7110:23:3" }, { "children": [ { "attributes": { "assignments": [ - 810 + 888 ] }, "children": [ @@ -9616,7 +9770,7 @@ "attributes": { "constant": false, "name": "_confirmationBlock", - "scope": 854, + "scope": 932, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -9629,14 +9783,14 @@ "name": "uint256", "type": "uint256" }, - "id": 809, + "id": 887, "name": "ElementaryTypeName", - "src": "7173:7:2" + "src": "7280:7:3" } ], - "id": 810, + "id": 888, "name": "VariableDeclaration", - "src": "7173:26:2" + "src": "7280:26:3" }, { "attributes": { @@ -9666,7 +9820,7 @@ "isPure": false, "lValueRequested": false, "member_name": "decodeConfirmation", - "referencedDeclaration": 154, + "referencedDeclaration": 223, "type": "function (bytes32) pure returns (uint256)" }, "children": [ @@ -9676,18 +9830,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 155, + "referencedDeclaration": 224, "type": "type(library PhysicalAddressClaim)", "value": "PhysicalAddressClaim" }, - "id": 811, + "id": 889, "name": "Identifier", - "src": "7202:20:2" + "src": "7309:20:3" } ], - "id": 812, + "id": 890, "name": "MemberAccess", - "src": "7202:39:2" + "src": "7309:39:3" }, { "attributes": { @@ -9725,7 +9879,7 @@ "isPure": false, "lValueRequested": false, "member_name": "getClaim", - "referencedDeclaration": 37, + "referencedDeclaration": 106, "type": "function (address,address,bytes32) view external returns (bytes32)" }, "children": [ @@ -9735,18 +9889,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 165, + "referencedDeclaration": 235, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 813, + "id": 891, "name": "Identifier", - "src": "7242:8:2" + "src": "7349:8:3" } ], - "id": 814, + "id": 892, "name": "MemberAccess", - "src": "7242:17:2" + "src": "7349:17:3" }, { "attributes": { @@ -9767,7 +9921,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1314", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1444", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -9778,9 +9932,9 @@ "type": "type(address)", "value": "address" }, - "id": 815, + "id": 893, "name": "ElementaryTypeNameExpression", - "src": "7273:7:2" + "src": "7380:7:3" }, { "attributes": { @@ -9788,18 +9942,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1341, + "referencedDeclaration": 1603, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 816, + "id": 894, "name": "Identifier", - "src": "7281:4:2" + "src": "7388:4:3" } ], - "id": 817, + "id": 895, "name": "FunctionCall", - "src": "7273:13:2" + "src": "7380:13:3" }, { "attributes": { @@ -9807,13 +9961,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 793, + "referencedDeclaration": 871, "type": "address", "value": "wallet" }, - "id": 818, + "id": 896, "name": "Identifier", - "src": "7300:6:2" + "src": "7407:6:3" }, { "attributes": { @@ -9823,7 +9977,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 181, + "referencedDeclaration": 251, "type": "bytes32" }, "children": [ @@ -9845,7 +9999,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -9865,13 +10019,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 819, + "id": 897, "name": "Identifier", - "src": "7320:5:2" + "src": "7427:5:3" }, { "attributes": { @@ -9879,23 +10033,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 793, + "referencedDeclaration": 871, "type": "address", "value": "wallet" }, - "id": 820, + "id": 898, "name": "Identifier", - "src": "7326:6:2" + "src": "7433:6:3" } ], - "id": 821, + "id": 899, "name": "IndexAccess", - "src": "7320:13:2" + "src": "7427:13:3" } ], - "id": 822, + "id": 900, "name": "MemberAccess", - "src": "7320:31:2" + "src": "7427:31:3" }, { "attributes": { @@ -9903,42 +10057,42 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 795, + "referencedDeclaration": 873, "type": "uint256", "value": "addressIndex" }, - "id": 823, + "id": 901, "name": "Identifier", - "src": "7352:12:2" + "src": "7459:12:3" } ], - "id": 824, + "id": 902, "name": "IndexAccess", - "src": "7320:45:2" + "src": "7427:45:3" } ], - "id": 825, + "id": 903, "name": "MemberAccess", - "src": "7320:62:2" + "src": "7427:62:3" } ], - "id": 826, + "id": 904, "name": "FunctionCall", - "src": "7242:141:2" + "src": "7349:141:3" } ], - "id": 827, + "id": 905, "name": "FunctionCall", - "src": "7202:191:2" + "src": "7309:191:3" } ], - "id": 828, + "id": 906, "name": "VariableDeclarationStatement", - "src": "7173:220:2" + "src": "7280:220:3" }, { "attributes": { - "functionReturnParameters": 808 + "functionReturnParameters": 886 }, "children": [ { @@ -9960,7 +10114,7 @@ "isPure": false, "lValueRequested": false, "member_name": "name", - "referencedDeclaration": 167, + "referencedDeclaration": 237, "type": "string storage ref" }, "children": [ @@ -9982,7 +10136,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -10002,13 +10156,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 829, + "id": 907, "name": "Identifier", - "src": "7424:5:2" + "src": "7531:5:3" }, { "attributes": { @@ -10016,23 +10170,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 793, + "referencedDeclaration": 871, "type": "address", "value": "wallet" }, - "id": 830, + "id": 908, "name": "Identifier", - "src": "7430:6:2" + "src": "7537:6:3" } ], - "id": 831, + "id": 909, "name": "IndexAccess", - "src": "7424:13:2" + "src": "7531:13:3" } ], - "id": 832, + "id": 910, "name": "MemberAccess", - "src": "7424:31:2" + "src": "7531:31:3" }, { "attributes": { @@ -10040,23 +10194,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 795, + "referencedDeclaration": 873, "type": "uint256", "value": "addressIndex" }, - "id": 833, + "id": 911, "name": "Identifier", - "src": "7456:12:2" + "src": "7563:12:3" } ], - "id": 834, + "id": 912, "name": "IndexAccess", - "src": "7424:45:2" + "src": "7531:45:3" } ], - "id": 835, + "id": 913, "name": "MemberAccess", - "src": "7424:50:2" + "src": "7531:50:3" }, { "attributes": { @@ -10066,7 +10220,7 @@ "isPure": false, "lValueRequested": false, "member_name": "creationBlock", - "referencedDeclaration": 179, + "referencedDeclaration": 249, "type": "uint256" }, "children": [ @@ -10088,7 +10242,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -10108,13 +10262,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 836, + "id": 914, "name": "Identifier", - "src": "7488:5:2" + "src": "7595:5:3" }, { "attributes": { @@ -10122,23 +10276,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 793, + "referencedDeclaration": 871, "type": "address", "value": "wallet" }, - "id": 837, + "id": 915, "name": "Identifier", - "src": "7494:6:2" + "src": "7601:6:3" } ], - "id": 838, + "id": 916, "name": "IndexAccess", - "src": "7488:13:2" + "src": "7595:13:3" } ], - "id": 839, + "id": 917, "name": "MemberAccess", - "src": "7488:31:2" + "src": "7595:31:3" }, { "attributes": { @@ -10146,23 +10300,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 795, + "referencedDeclaration": 873, "type": "uint256", "value": "addressIndex" }, - "id": 840, + "id": 918, "name": "Identifier", - "src": "7520:12:2" + "src": "7627:12:3" } ], - "id": 841, + "id": 919, "name": "IndexAccess", - "src": "7488:45:2" + "src": "7595:45:3" } ], - "id": 842, + "id": 920, "name": "MemberAccess", - "src": "7488:59:2" + "src": "7595:59:3" }, { "attributes": { @@ -10170,13 +10324,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 810, + "referencedDeclaration": 888, "type": "uint256", "value": "_confirmationBlock" }, - "id": 843, + "id": 921, "name": "Identifier", - "src": "7561:18:2" + "src": "7668:18:3" }, { "attributes": { @@ -10186,7 +10340,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 181, + "referencedDeclaration": 251, "type": "bytes32" }, "children": [ @@ -10208,7 +10362,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -10228,13 +10382,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 844, + "id": 922, "name": "Identifier", - "src": "7593:5:2" + "src": "7700:5:3" }, { "attributes": { @@ -10242,23 +10396,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 793, + "referencedDeclaration": 871, "type": "address", "value": "wallet" }, - "id": 845, + "id": 923, "name": "Identifier", - "src": "7599:6:2" + "src": "7706:6:3" } ], - "id": 846, + "id": 924, "name": "IndexAccess", - "src": "7593:13:2" + "src": "7700:13:3" } ], - "id": 847, + "id": 925, "name": "MemberAccess", - "src": "7593:31:2" + "src": "7700:31:3" }, { "attributes": { @@ -10266,43 +10420,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 795, + "referencedDeclaration": 873, "type": "uint256", "value": "addressIndex" }, - "id": 848, + "id": 926, "name": "Identifier", - "src": "7625:12:2" + "src": "7732:12:3" } ], - "id": 849, + "id": 927, "name": "IndexAccess", - "src": "7593:45:2" + "src": "7700:45:3" } ], - "id": 850, + "id": 928, "name": "MemberAccess", - "src": "7593:62:2" + "src": "7700:62:3" } ], - "id": 851, + "id": 929, "name": "TupleExpression", - "src": "7410:255:2" + "src": "7517:255:3" } ], - "id": 852, + "id": 930, "name": "Return", - "src": "7403:262:2" + "src": "7510:262:3" } ], - "id": 853, + "id": 931, "name": "Block", - "src": "7163:509:2" + "src": "7270:509:3" } ], - "id": 854, + "id": 932, "name": "FunctionDefinition", - "src": "6920:752:2" + "src": "7027:752:3" }, { "attributes": { @@ -10314,7 +10468,7 @@ ], "name": "registerAddress", "payable": true, - "scope": 1314, + "scope": 1444, "stateMutability": "payable", "superFunction": null, "visibility": "public" @@ -10326,7 +10480,7 @@ "attributes": { "constant": false, "name": "name", - "scope": 1083, + "scope": 1161, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -10339,20 +10493,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 855, + "id": 933, "name": "ElementaryTypeName", - "src": "7733:6:2" + "src": "7840:6:3" } ], - "id": 856, + "id": 934, "name": "VariableDeclaration", - "src": "7733:11:2" + "src": "7840:11:3" }, { "attributes": { "constant": false, "name": "country", - "scope": 1083, + "scope": 1161, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -10365,20 +10519,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 857, + "id": 935, "name": "ElementaryTypeName", - "src": "7754:6:2" + "src": "7861:6:3" } ], - "id": 858, + "id": 936, "name": "VariableDeclaration", - "src": "7754:14:2" + "src": "7861:14:3" }, { "attributes": { "constant": false, "name": "state", - "scope": 1083, + "scope": 1161, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -10391,20 +10545,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 859, + "id": 937, "name": "ElementaryTypeName", - "src": "7770:6:2" + "src": "7877:6:3" } ], - "id": 860, + "id": 938, "name": "VariableDeclaration", - "src": "7770:12:2" + "src": "7877:12:3" }, { "attributes": { "constant": false, "name": "city", - "scope": 1083, + "scope": 1161, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -10417,20 +10571,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 861, + "id": 939, "name": "ElementaryTypeName", - "src": "7784:6:2" + "src": "7891:6:3" } ], - "id": 862, + "id": 940, "name": "VariableDeclaration", - "src": "7784:11:2" + "src": "7891:11:3" }, { "attributes": { "constant": false, "name": "location", - "scope": 1083, + "scope": 1161, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -10443,20 +10597,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 863, + "id": 941, "name": "ElementaryTypeName", - "src": "7797:6:2" + "src": "7904:6:3" } ], - "id": 864, + "id": 942, "name": "VariableDeclaration", - "src": "7797:15:2" + "src": "7904:15:3" }, { "attributes": { "constant": false, "name": "zip", - "scope": 1083, + "scope": 1161, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -10469,20 +10623,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 865, + "id": 943, "name": "ElementaryTypeName", - "src": "7814:6:2" + "src": "7921:6:3" } ], - "id": 866, + "id": 944, "name": "VariableDeclaration", - "src": "7814:10:2" + "src": "7921:10:3" }, { "attributes": { "constant": false, "name": "priceWei", - "scope": 1083, + "scope": 1161, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -10495,20 +10649,20 @@ "name": "uint256", "type": "uint256" }, - "id": 867, + "id": 945, "name": "ElementaryTypeName", - "src": "7834:7:2" + "src": "7941:7:3" } ], - "id": 868, + "id": 946, "name": "VariableDeclaration", - "src": "7834:16:2" + "src": "7941:16:3" }, { "attributes": { "constant": false, "name": "confirmationCodeSha3", - "scope": 1083, + "scope": 1161, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -10521,20 +10675,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 869, + "id": 947, "name": "ElementaryTypeName", - "src": "7860:7:2" + "src": "7967:7:3" } ], - "id": 870, + "id": 948, "name": "VariableDeclaration", - "src": "7860:28:2" + "src": "7967:28:3" }, { "attributes": { "constant": false, "name": "sigV", - "scope": 1083, + "scope": 1161, "stateVariable": false, "storageLocation": "default", "type": "uint8", @@ -10547,20 +10701,20 @@ "name": "uint8", "type": "uint8" }, - "id": 871, + "id": 949, "name": "ElementaryTypeName", - "src": "7890:5:2" + "src": "7997:5:3" } ], - "id": 872, + "id": 950, "name": "VariableDeclaration", - "src": "7890:10:2" + "src": "7997:10:3" }, { "attributes": { "constant": false, "name": "sigR", - "scope": 1083, + "scope": 1161, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -10573,20 +10727,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 873, + "id": 951, "name": "ElementaryTypeName", - "src": "7902:7:2" + "src": "8009:7:3" } ], - "id": 874, + "id": 952, "name": "VariableDeclaration", - "src": "7902:12:2" + "src": "8009:12:3" }, { "attributes": { "constant": false, "name": "sigS", - "scope": 1083, + "scope": 1161, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -10599,19 +10753,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 875, + "id": 953, "name": "ElementaryTypeName", - "src": "7916:7:2" + "src": "8023:7:3" } ], - "id": 876, + "id": 954, "name": "VariableDeclaration", - "src": "7916:12:2" + "src": "8023:12:3" } ], - "id": 877, + "id": 955, "name": "ParameterList", - "src": "7723:206:2" + "src": "7830:206:3" }, { "attributes": { @@ -10620,9 +10774,9 @@ ] }, "children": [], - "id": 878, + "id": 956, "name": "ParameterList", - "src": "7953:0:2" + "src": "8060:0:3" }, { "children": [ @@ -10654,13 +10808,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 879, + "id": 957, "name": "Identifier", - "src": "7963:7:2" + "src": "8070:7:3" }, { "attributes": { @@ -10719,9 +10873,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 880, + "id": 958, "name": "ElementaryTypeNameExpression", - "src": "7971:5:2" + "src": "8078:5:3" }, { "attributes": { @@ -10729,23 +10883,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 856, + "referencedDeclaration": 934, "type": "string memory", "value": "name" }, - "id": 881, + "id": 959, "name": "Identifier", - "src": "7977:4:2" + "src": "8084:4:3" } ], - "id": 882, + "id": 960, "name": "FunctionCall", - "src": "7971:11:2" + "src": "8078:11:3" } ], - "id": 883, + "id": 961, "name": "MemberAccess", - "src": "7971:18:2" + "src": "8078:18:3" }, { "attributes": { @@ -10760,24 +10914,24 @@ "type": "int_const 0", "value": "0" }, - "id": 884, + "id": 962, "name": "Literal", - "src": "7992:1:2" + "src": "8099:1:3" } ], - "id": 885, + "id": 963, "name": "BinaryOperation", - "src": "7971:22:2" + "src": "8078:22:3" } ], - "id": 886, + "id": 964, "name": "FunctionCall", - "src": "7963:31:2" + "src": "8070:31:3" } ], - "id": 887, + "id": 965, "name": "ExpressionStatement", - "src": "7963:31:2" + "src": "8070:31:3" }, { "children": [ @@ -10807,13 +10961,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 888, + "id": 966, "name": "Identifier", - "src": "8004:7:2" + "src": "8111:7:3" }, { "attributes": { @@ -10872,9 +11026,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 889, + "id": 967, "name": "ElementaryTypeNameExpression", - "src": "8012:5:2" + "src": "8119:5:3" }, { "attributes": { @@ -10882,23 +11036,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 858, + "referencedDeclaration": 936, "type": "string memory", "value": "country" }, - "id": 890, + "id": 968, "name": "Identifier", - "src": "8018:7:2" + "src": "8125:7:3" } ], - "id": 891, + "id": 969, "name": "FunctionCall", - "src": "8012:14:2" + "src": "8119:14:3" } ], - "id": 892, + "id": 970, "name": "MemberAccess", - "src": "8012:21:2" + "src": "8119:21:3" }, { "attributes": { @@ -10913,24 +11067,24 @@ "type": "int_const 0", "value": "0" }, - "id": 893, + "id": 971, "name": "Literal", - "src": "8036:1:2" + "src": "8143:1:3" } ], - "id": 894, + "id": 972, "name": "BinaryOperation", - "src": "8012:25:2" + "src": "8119:25:3" } ], - "id": 895, + "id": 973, "name": "FunctionCall", - "src": "8004:34:2" + "src": "8111:34:3" } ], - "id": 896, + "id": 974, "name": "ExpressionStatement", - "src": "8004:34:2" + "src": "8111:34:3" }, { "children": [ @@ -10960,13 +11114,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 897, + "id": 975, "name": "Identifier", - "src": "8048:7:2" + "src": "8155:7:3" }, { "attributes": { @@ -11025,9 +11179,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 898, + "id": 976, "name": "ElementaryTypeNameExpression", - "src": "8056:5:2" + "src": "8163:5:3" }, { "attributes": { @@ -11035,23 +11189,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 860, + "referencedDeclaration": 938, "type": "string memory", "value": "state" }, - "id": 899, + "id": 977, "name": "Identifier", - "src": "8062:5:2" + "src": "8169:5:3" } ], - "id": 900, + "id": 978, "name": "FunctionCall", - "src": "8056:12:2" + "src": "8163:12:3" } ], - "id": 901, + "id": 979, "name": "MemberAccess", - "src": "8056:19:2" + "src": "8163:19:3" }, { "attributes": { @@ -11066,24 +11220,24 @@ "type": "int_const 0", "value": "0" }, - "id": 902, + "id": 980, "name": "Literal", - "src": "8078:1:2" + "src": "8185:1:3" } ], - "id": 903, + "id": 981, "name": "BinaryOperation", - "src": "8056:23:2" + "src": "8163:23:3" } ], - "id": 904, + "id": 982, "name": "FunctionCall", - "src": "8048:32:2" + "src": "8155:32:3" } ], - "id": 905, + "id": 983, "name": "ExpressionStatement", - "src": "8048:32:2" + "src": "8155:32:3" }, { "children": [ @@ -11113,13 +11267,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 906, + "id": 984, "name": "Identifier", - "src": "8090:7:2" + "src": "8197:7:3" }, { "attributes": { @@ -11178,9 +11332,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 907, + "id": 985, "name": "ElementaryTypeNameExpression", - "src": "8098:5:2" + "src": "8205:5:3" }, { "attributes": { @@ -11188,23 +11342,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 862, + "referencedDeclaration": 940, "type": "string memory", "value": "city" }, - "id": 908, + "id": 986, "name": "Identifier", - "src": "8104:4:2" + "src": "8211:4:3" } ], - "id": 909, + "id": 987, "name": "FunctionCall", - "src": "8098:11:2" + "src": "8205:11:3" } ], - "id": 910, + "id": 988, "name": "MemberAccess", - "src": "8098:18:2" + "src": "8205:18:3" }, { "attributes": { @@ -11219,24 +11373,24 @@ "type": "int_const 0", "value": "0" }, - "id": 911, + "id": 989, "name": "Literal", - "src": "8119:1:2" + "src": "8226:1:3" } ], - "id": 912, + "id": 990, "name": "BinaryOperation", - "src": "8098:22:2" + "src": "8205:22:3" } ], - "id": 913, + "id": 991, "name": "FunctionCall", - "src": "8090:31:2" + "src": "8197:31:3" } ], - "id": 914, + "id": 992, "name": "ExpressionStatement", - "src": "8090:31:2" + "src": "8197:31:3" }, { "children": [ @@ -11266,13 +11420,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 915, + "id": 993, "name": "Identifier", - "src": "8131:7:2" + "src": "8238:7:3" }, { "attributes": { @@ -11331,9 +11485,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 916, + "id": 994, "name": "ElementaryTypeNameExpression", - "src": "8139:5:2" + "src": "8246:5:3" }, { "attributes": { @@ -11341,23 +11495,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 864, + "referencedDeclaration": 942, "type": "string memory", "value": "location" }, - "id": 917, + "id": 995, "name": "Identifier", - "src": "8145:8:2" + "src": "8252:8:3" } ], - "id": 918, + "id": 996, "name": "FunctionCall", - "src": "8139:15:2" + "src": "8246:15:3" } ], - "id": 919, + "id": 997, "name": "MemberAccess", - "src": "8139:22:2" + "src": "8246:22:3" }, { "attributes": { @@ -11372,24 +11526,24 @@ "type": "int_const 0", "value": "0" }, - "id": 920, + "id": 998, "name": "Literal", - "src": "8164:1:2" + "src": "8271:1:3" } ], - "id": 921, + "id": 999, "name": "BinaryOperation", - "src": "8139:26:2" + "src": "8246:26:3" } ], - "id": 922, + "id": 1000, "name": "FunctionCall", - "src": "8131:35:2" + "src": "8238:35:3" } ], - "id": 923, + "id": 1001, "name": "ExpressionStatement", - "src": "8131:35:2" + "src": "8238:35:3" }, { "children": [ @@ -11419,13 +11573,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 924, + "id": 1002, "name": "Identifier", - "src": "8176:7:2" + "src": "8283:7:3" }, { "attributes": { @@ -11484,9 +11638,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 925, + "id": 1003, "name": "ElementaryTypeNameExpression", - "src": "8184:5:2" + "src": "8291:5:3" }, { "attributes": { @@ -11494,23 +11648,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 866, + "referencedDeclaration": 944, "type": "string memory", "value": "zip" }, - "id": 926, + "id": 1004, "name": "Identifier", - "src": "8190:3:2" + "src": "8297:3:3" } ], - "id": 927, + "id": 1005, "name": "FunctionCall", - "src": "8184:10:2" + "src": "8291:10:3" } ], - "id": 928, + "id": 1006, "name": "MemberAccess", - "src": "8184:17:2" + "src": "8291:17:3" }, { "attributes": { @@ -11525,24 +11679,24 @@ "type": "int_const 0", "value": "0" }, - "id": 929, + "id": 1007, "name": "Literal", - "src": "8204:1:2" + "src": "8311:1:3" } ], - "id": 930, + "id": 1008, "name": "BinaryOperation", - "src": "8184:21:2" + "src": "8291:21:3" } ], - "id": 931, + "id": 1009, "name": "FunctionCall", - "src": "8176:30:2" + "src": "8283:30:3" } ], - "id": 932, + "id": 1010, "name": "ExpressionStatement", - "src": "8176:30:2" + "src": "8283:30:3" }, { "children": [ @@ -11572,13 +11726,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 933, + "id": 1011, "name": "Identifier", - "src": "8216:7:2" + "src": "8323:7:3" }, { "attributes": { @@ -11613,18 +11767,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 934, + "id": 1012, "name": "Identifier", - "src": "8224:3:2" + "src": "8331:3:3" } ], - "id": 935, + "id": 1013, "name": "MemberAccess", - "src": "8224:9:2" + "src": "8331:9:3" }, { "attributes": { @@ -11632,33 +11786,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 868, + "referencedDeclaration": 946, "type": "uint256", "value": "priceWei" }, - "id": 936, + "id": 1014, "name": "Identifier", - "src": "8237:8:2" + "src": "8344:8:3" } ], - "id": 937, + "id": 1015, "name": "BinaryOperation", - "src": "8224:21:2" + "src": "8331:21:3" } ], - "id": 938, + "id": 1016, "name": "FunctionCall", - "src": "8216:30:2" + "src": "8323:30:3" } ], - "id": 939, + "id": 1017, "name": "ExpressionStatement", - "src": "8216:30:2" + "src": "8323:30:3" }, { "attributes": { "assignments": [ - 941 + 1019 ] }, "children": [ @@ -11666,7 +11820,7 @@ "attributes": { "constant": false, "name": "data", - "scope": 1083, + "scope": 1161, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -11679,14 +11833,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 940, + "id": 1018, "name": "ElementaryTypeName", - "src": "8257:7:2" + "src": "8364:7:3" } ], - "id": 941, + "id": 1019, "name": "VariableDeclaration", - "src": "8257:12:2" + "src": "8364:12:3" }, { "attributes": { @@ -11746,13 +11900,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1320, + "referencedDeclaration": 1580, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 942, + "id": 1020, "name": "Identifier", - "src": "8272:9:2" + "src": "8379:9:3" }, { "attributes": { @@ -11772,18 +11926,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 943, + "id": 1021, "name": "Identifier", - "src": "8295:3:2" + "src": "8402:3:3" } ], - "id": 944, + "id": 1022, "name": "MemberAccess", - "src": "8295:10:2" + "src": "8402:10:3" }, { "attributes": { @@ -11791,13 +11945,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 856, + "referencedDeclaration": 934, "type": "string memory", "value": "name" }, - "id": 945, + "id": 1023, "name": "Identifier", - "src": "8319:4:2" + "src": "8426:4:3" }, { "attributes": { @@ -11805,13 +11959,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 858, + "referencedDeclaration": 936, "type": "string memory", "value": "country" }, - "id": 946, + "id": 1024, "name": "Identifier", - "src": "8337:7:2" + "src": "8444:7:3" }, { "attributes": { @@ -11819,13 +11973,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 860, + "referencedDeclaration": 938, "type": "string memory", "value": "state" }, - "id": 947, + "id": 1025, "name": "Identifier", - "src": "8358:5:2" + "src": "8465:5:3" }, { "attributes": { @@ -11833,13 +11987,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 862, + "referencedDeclaration": 940, "type": "string memory", "value": "city" }, - "id": 948, + "id": 1026, "name": "Identifier", - "src": "8377:4:2" + "src": "8484:4:3" }, { "attributes": { @@ -11847,13 +12001,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 864, + "referencedDeclaration": 942, "type": "string memory", "value": "location" }, - "id": 949, + "id": 1027, "name": "Identifier", - "src": "8395:8:2" + "src": "8502:8:3" }, { "attributes": { @@ -11861,13 +12015,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 866, + "referencedDeclaration": 944, "type": "string memory", "value": "zip" }, - "id": 950, + "id": 1028, "name": "Identifier", - "src": "8417:3:2" + "src": "8524:3:3" }, { "attributes": { @@ -11875,13 +12029,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 868, + "referencedDeclaration": 946, "type": "uint256", "value": "priceWei" }, - "id": 951, + "id": 1029, "name": "Identifier", - "src": "8434:8:2" + "src": "8541:8:3" }, { "attributes": { @@ -11889,23 +12043,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 870, + "referencedDeclaration": 948, "type": "bytes32", "value": "confirmationCodeSha3" }, - "id": 952, + "id": 1030, "name": "Identifier", - "src": "8456:20:2" + "src": "8563:20:3" } ], - "id": 953, + "id": 1031, "name": "FunctionCall", - "src": "8272:214:2" + "src": "8379:214:3" } ], - "id": 954, + "id": 1032, "name": "VariableDeclarationStatement", - "src": "8257:229:2" + "src": "8364:229:3" }, { "children": [ @@ -11935,13 +12089,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 955, + "id": 1033, "name": "Identifier", - "src": "8496:7:2" + "src": "8603:7:3" }, { "attributes": { @@ -11981,13 +12135,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 279, + "referencedDeclaration": 357, "type": "function (bytes32,uint8,bytes32,bytes32) view returns (bool)", "value": "signerIsValid" }, - "id": 956, + "id": 1034, "name": "Identifier", - "src": "8504:13:2" + "src": "8611:13:3" }, { "attributes": { @@ -11995,13 +12149,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 941, + "referencedDeclaration": 1019, "type": "bytes32", "value": "data" }, - "id": 957, + "id": 1035, "name": "Identifier", - "src": "8518:4:2" + "src": "8625:4:3" }, { "attributes": { @@ -12009,13 +12163,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 872, + "referencedDeclaration": 950, "type": "uint8", "value": "sigV" }, - "id": 958, + "id": 1036, "name": "Identifier", - "src": "8524:4:2" + "src": "8631:4:3" }, { "attributes": { @@ -12023,13 +12177,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 874, + "referencedDeclaration": 952, "type": "bytes32", "value": "sigR" }, - "id": 959, + "id": 1037, "name": "Identifier", - "src": "8530:4:2" + "src": "8637:4:3" }, { "attributes": { @@ -12037,28 +12191,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 876, + "referencedDeclaration": 954, "type": "bytes32", "value": "sigS" }, - "id": 960, + "id": 1038, "name": "Identifier", - "src": "8536:4:2" + "src": "8643:4:3" } ], - "id": 961, + "id": 1039, "name": "FunctionCall", - "src": "8504:37:2" + "src": "8611:37:3" } ], - "id": 962, + "id": 1040, "name": "FunctionCall", - "src": "8496:46:2" + "src": "8603:46:3" } ], - "id": 963, + "id": 1041, "name": "ExpressionStatement", - "src": "8496:46:2" + "src": "8603:46:3" }, { "children": [ @@ -12088,13 +12242,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 368, + "referencedDeclaration": 446, "type": "function (address) view returns (bool)", "value": "userExists" }, - "id": 964, + "id": 1042, "name": "Identifier", - "src": "8557:10:2" + "src": "8664:10:3" }, { "attributes": { @@ -12114,23 +12268,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 965, + "id": 1043, "name": "Identifier", - "src": "8568:3:2" + "src": "8675:3:3" } ], - "id": 966, + "id": 1044, "name": "MemberAccess", - "src": "8568:10:2" + "src": "8675:10:3" } ], - "id": 967, + "id": 1045, "name": "FunctionCall", - "src": "8557:22:2" + "src": "8664:22:3" }, { "children": [ @@ -12146,7 +12300,7 @@ "attributes": { "constant": false, "name": "found", - "scope": 1083, + "scope": 1161, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -12159,19 +12313,19 @@ "name": "bool", "type": "bool" }, - "id": 968, + "id": 1046, "name": "ElementaryTypeName", - "src": "8654:4:2" + "src": "8761:4:3" } ], - "id": 969, + "id": 1047, "name": "VariableDeclaration", - "src": "8654:10:2" + "src": "8761:10:3" } ], - "id": 970, + "id": 1048, "name": "VariableDeclarationStatement", - "src": "8654:10:2" + "src": "8761:10:3" }, { "children": [ @@ -12203,18 +12357,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 969, + "referencedDeclaration": 1047, "type": "bool", "value": "found" }, - "id": 971, + "id": 1049, "name": "Identifier", - "src": "8679:5:2" + "src": "8786:5:3" } ], - "id": 972, + "id": 1050, "name": "TupleExpression", - "src": "8678:11:2" + "src": "8785:11:3" }, { "attributes": { @@ -12262,13 +12416,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 611, + "referencedDeclaration": 689, "type": "function (address,string memory,string memory,string memory,string memory,string memory) view returns (bool,uint256,bool)", "value": "userAddressByAddress" }, - "id": 973, + "id": 1051, "name": "Identifier", - "src": "8692:20:2" + "src": "8799:20:3" }, { "attributes": { @@ -12288,18 +12442,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 974, + "id": 1052, "name": "Identifier", - "src": "8713:3:2" + "src": "8820:3:3" } ], - "id": 975, + "id": 1053, "name": "MemberAccess", - "src": "8713:10:2" + "src": "8820:10:3" }, { "attributes": { @@ -12307,13 +12461,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 858, + "referencedDeclaration": 936, "type": "string memory", "value": "country" }, - "id": 976, + "id": 1054, "name": "Identifier", - "src": "8725:7:2" + "src": "8832:7:3" }, { "attributes": { @@ -12321,13 +12475,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 860, + "referencedDeclaration": 938, "type": "string memory", "value": "state" }, - "id": 977, + "id": 1055, "name": "Identifier", - "src": "8734:5:2" + "src": "8841:5:3" }, { "attributes": { @@ -12335,13 +12489,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 862, + "referencedDeclaration": 940, "type": "string memory", "value": "city" }, - "id": 978, + "id": 1056, "name": "Identifier", - "src": "8741:4:2" + "src": "8848:4:3" }, { "attributes": { @@ -12349,13 +12503,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 864, + "referencedDeclaration": 942, "type": "string memory", "value": "location" }, - "id": 979, + "id": 1057, "name": "Identifier", - "src": "8747:8:2" + "src": "8854:8:3" }, { "attributes": { @@ -12363,28 +12517,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 866, + "referencedDeclaration": 944, "type": "string memory", "value": "zip" }, - "id": 980, + "id": 1058, "name": "Identifier", - "src": "8757:3:2" + "src": "8864:3:3" } ], - "id": 981, + "id": 1059, "name": "FunctionCall", - "src": "8692:69:2" + "src": "8799:69:3" } ], - "id": 982, + "id": 1060, "name": "Assignment", - "src": "8678:83:2" + "src": "8785:83:3" } ], - "id": 983, + "id": 1061, "name": "ExpressionStatement", - "src": "8678:83:2" + "src": "8785:83:3" }, { "children": [ @@ -12414,13 +12568,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 984, + "id": 1062, "name": "Identifier", - "src": "8776:7:2" + "src": "8883:7:3" }, { "attributes": { @@ -12440,33 +12594,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 969, + "referencedDeclaration": 1047, "type": "bool", "value": "found" }, - "id": 985, + "id": 1063, "name": "Identifier", - "src": "8785:5:2" + "src": "8892:5:3" } ], - "id": 986, + "id": 1064, "name": "UnaryOperation", - "src": "8784:6:2" + "src": "8891:6:3" } ], - "id": 987, + "id": 1065, "name": "FunctionCall", - "src": "8776:15:2" + "src": "8883:15:3" } ], - "id": 988, + "id": 1066, "name": "ExpressionStatement", - "src": "8776:15:2" + "src": "8883:15:3" } ], - "id": 989, + "id": 1067, "name": "Block", - "src": "8581:221:2" + "src": "8688:221:3" }, { "children": [ @@ -12491,7 +12645,7 @@ "isPure": false, "lValueRequested": true, "member_name": "creationBlock", - "referencedDeclaration": 207, + "referencedDeclaration": 277, "type": "uint256" }, "children": [ @@ -12511,13 +12665,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 990, + "id": 1068, "name": "Identifier", - "src": "8846:5:2" + "src": "8953:5:3" }, { "attributes": { @@ -12537,28 +12691,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 991, + "id": 1069, "name": "Identifier", - "src": "8852:3:2" + "src": "8959:3:3" } ], - "id": 992, + "id": 1070, "name": "MemberAccess", - "src": "8852:10:2" + "src": "8959:10:3" } ], - "id": 993, + "id": 1071, "name": "IndexAccess", - "src": "8846:17:2" + "src": "8953:17:3" } ], - "id": 994, + "id": 1072, "name": "MemberAccess", - "src": "8846:31:2" + "src": "8953:31:3" }, { "attributes": { @@ -12578,28 +12732,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1318, + "referencedDeclaration": 1578, "type": "block", "value": "block" }, - "id": 995, + "id": 1073, "name": "Identifier", - "src": "8880:5:2" + "src": "8987:5:3" } ], - "id": 996, + "id": 1074, "name": "MemberAccess", - "src": "8880:12:2" + "src": "8987:12:3" } ], - "id": 997, + "id": 1075, "name": "Assignment", - "src": "8846:46:2" + "src": "8953:46:3" } ], - "id": 998, + "id": 1076, "name": "ExpressionStatement", - "src": "8846:46:2" + "src": "8953:46:3" }, { "children": [ @@ -12620,13 +12774,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 217, + "referencedDeclaration": 287, "type": "uint64", "value": "totalUsers" }, - "id": 999, + "id": 1077, "name": "Identifier", - "src": "8907:10:2" + "src": "9014:10:3" }, { "attributes": { @@ -12641,29 +12795,29 @@ "type": "int_const 1", "value": "1" }, - "id": 1000, + "id": 1078, "name": "Literal", - "src": "8921:1:2" + "src": "9028:1:3" } ], - "id": 1001, + "id": 1079, "name": "Assignment", - "src": "8907:15:2" + "src": "9014:15:3" } ], - "id": 1002, + "id": 1080, "name": "ExpressionStatement", - "src": "8907:15:2" + "src": "9014:15:3" } ], - "id": 1003, + "id": 1081, "name": "Block", - "src": "8808:125:2" + "src": "8915:125:3" } ], - "id": 1004, + "id": 1082, "name": "IfStatement", - "src": "8553:380:2" + "src": "8660:380:3" }, { "attributes": { @@ -12677,7 +12831,7 @@ "attributes": { "constant": false, "name": "pa", - "scope": 1083, + "scope": 1161, "stateVariable": false, "storageLocation": "memory", "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", @@ -12689,22 +12843,22 @@ "attributes": { "contractScope": null, "name": "PhysicalAddress", - "referencedDeclaration": 184, + "referencedDeclaration": 254, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage pointer" }, - "id": 1005, + "id": 1083, "name": "UserDefinedTypeName", - "src": "8943:15:2" + "src": "9050:15:3" } ], - "id": 1006, + "id": 1084, "name": "VariableDeclaration", - "src": "8943:25:2" + "src": "9050:25:3" } ], - "id": 1007, + "id": 1085, "name": "VariableDeclarationStatement", - "src": "8943:25:2" + "src": "9050:25:3" }, { "children": [ @@ -12727,7 +12881,7 @@ "isPure": false, "lValueRequested": true, "member_name": "name", - "referencedDeclaration": 167, + "referencedDeclaration": 237, "type": "string memory" }, "children": [ @@ -12737,18 +12891,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1006, + "referencedDeclaration": 1084, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1008, + "id": 1086, "name": "Identifier", - "src": "8979:2:2" + "src": "9086:2:3" } ], - "id": 1010, + "id": 1088, "name": "MemberAccess", - "src": "8979:7:2" + "src": "9086:7:3" }, { "attributes": { @@ -12756,23 +12910,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 856, + "referencedDeclaration": 934, "type": "string memory", "value": "name" }, - "id": 1011, + "id": 1089, "name": "Identifier", - "src": "8989:4:2" + "src": "9096:4:3" } ], - "id": 1012, + "id": 1090, "name": "Assignment", - "src": "8979:14:2" + "src": "9086:14:3" } ], - "id": 1013, + "id": 1091, "name": "ExpressionStatement", - "src": "8979:14:2" + "src": "9086:14:3" }, { "children": [ @@ -12795,7 +12949,7 @@ "isPure": false, "lValueRequested": true, "member_name": "country", - "referencedDeclaration": 169, + "referencedDeclaration": 239, "type": "string memory" }, "children": [ @@ -12805,18 +12959,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1006, + "referencedDeclaration": 1084, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1014, + "id": 1092, "name": "Identifier", - "src": "9003:2:2" + "src": "9110:2:3" } ], - "id": 1016, + "id": 1094, "name": "MemberAccess", - "src": "9003:10:2" + "src": "9110:10:3" }, { "attributes": { @@ -12824,23 +12978,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 858, + "referencedDeclaration": 936, "type": "string memory", "value": "country" }, - "id": 1017, + "id": 1095, "name": "Identifier", - "src": "9016:7:2" + "src": "9123:7:3" } ], - "id": 1018, + "id": 1096, "name": "Assignment", - "src": "9003:20:2" + "src": "9110:20:3" } ], - "id": 1019, + "id": 1097, "name": "ExpressionStatement", - "src": "9003:20:2" + "src": "9110:20:3" }, { "children": [ @@ -12863,7 +13017,7 @@ "isPure": false, "lValueRequested": true, "member_name": "state", - "referencedDeclaration": 171, + "referencedDeclaration": 241, "type": "string memory" }, "children": [ @@ -12873,18 +13027,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1006, + "referencedDeclaration": 1084, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1020, + "id": 1098, "name": "Identifier", - "src": "9033:2:2" + "src": "9140:2:3" } ], - "id": 1022, + "id": 1100, "name": "MemberAccess", - "src": "9033:8:2" + "src": "9140:8:3" }, { "attributes": { @@ -12892,23 +13046,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 860, + "referencedDeclaration": 938, "type": "string memory", "value": "state" }, - "id": 1023, + "id": 1101, "name": "Identifier", - "src": "9044:5:2" + "src": "9151:5:3" } ], - "id": 1024, + "id": 1102, "name": "Assignment", - "src": "9033:16:2" + "src": "9140:16:3" } ], - "id": 1025, + "id": 1103, "name": "ExpressionStatement", - "src": "9033:16:2" + "src": "9140:16:3" }, { "children": [ @@ -12931,7 +13085,7 @@ "isPure": false, "lValueRequested": true, "member_name": "city", - "referencedDeclaration": 173, + "referencedDeclaration": 243, "type": "string memory" }, "children": [ @@ -12941,18 +13095,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1006, + "referencedDeclaration": 1084, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1026, + "id": 1104, "name": "Identifier", - "src": "9059:2:2" + "src": "9166:2:3" } ], - "id": 1028, + "id": 1106, "name": "MemberAccess", - "src": "9059:7:2" + "src": "9166:7:3" }, { "attributes": { @@ -12960,23 +13114,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 862, + "referencedDeclaration": 940, "type": "string memory", "value": "city" }, - "id": 1029, + "id": 1107, "name": "Identifier", - "src": "9069:4:2" + "src": "9176:4:3" } ], - "id": 1030, + "id": 1108, "name": "Assignment", - "src": "9059:14:2" + "src": "9166:14:3" } ], - "id": 1031, + "id": 1109, "name": "ExpressionStatement", - "src": "9059:14:2" + "src": "9166:14:3" }, { "children": [ @@ -12999,7 +13153,7 @@ "isPure": false, "lValueRequested": true, "member_name": "location", - "referencedDeclaration": 175, + "referencedDeclaration": 245, "type": "string memory" }, "children": [ @@ -13009,18 +13163,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1006, + "referencedDeclaration": 1084, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1032, + "id": 1110, "name": "Identifier", - "src": "9083:2:2" + "src": "9190:2:3" } ], - "id": 1034, + "id": 1112, "name": "MemberAccess", - "src": "9083:11:2" + "src": "9190:11:3" }, { "attributes": { @@ -13028,23 +13182,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 864, + "referencedDeclaration": 942, "type": "string memory", "value": "location" }, - "id": 1035, + "id": 1113, "name": "Identifier", - "src": "9097:8:2" + "src": "9204:8:3" } ], - "id": 1036, + "id": 1114, "name": "Assignment", - "src": "9083:22:2" + "src": "9190:22:3" } ], - "id": 1037, + "id": 1115, "name": "ExpressionStatement", - "src": "9083:22:2" + "src": "9190:22:3" }, { "children": [ @@ -13067,7 +13221,7 @@ "isPure": false, "lValueRequested": true, "member_name": "zip", - "referencedDeclaration": 177, + "referencedDeclaration": 247, "type": "string memory" }, "children": [ @@ -13077,18 +13231,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1006, + "referencedDeclaration": 1084, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1038, + "id": 1116, "name": "Identifier", - "src": "9115:2:2" + "src": "9222:2:3" } ], - "id": 1040, + "id": 1118, "name": "MemberAccess", - "src": "9115:6:2" + "src": "9222:6:3" }, { "attributes": { @@ -13096,23 +13250,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 866, + "referencedDeclaration": 944, "type": "string memory", "value": "zip" }, - "id": 1041, + "id": 1119, "name": "Identifier", - "src": "9124:3:2" + "src": "9231:3:3" } ], - "id": 1042, + "id": 1120, "name": "Assignment", - "src": "9115:12:2" + "src": "9222:12:3" } ], - "id": 1043, + "id": 1121, "name": "ExpressionStatement", - "src": "9115:12:2" + "src": "9222:12:3" }, { "children": [ @@ -13135,7 +13289,7 @@ "isPure": false, "lValueRequested": true, "member_name": "creationBlock", - "referencedDeclaration": 179, + "referencedDeclaration": 249, "type": "uint256" }, "children": [ @@ -13145,18 +13299,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1006, + "referencedDeclaration": 1084, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1044, + "id": 1122, "name": "Identifier", - "src": "9137:2:2" + "src": "9244:2:3" } ], - "id": 1046, + "id": 1124, "name": "MemberAccess", - "src": "9137:16:2" + "src": "9244:16:3" }, { "attributes": { @@ -13176,28 +13330,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1318, + "referencedDeclaration": 1578, "type": "block", "value": "block" }, - "id": 1047, + "id": 1125, "name": "Identifier", - "src": "9156:5:2" + "src": "9263:5:3" } ], - "id": 1048, + "id": 1126, "name": "MemberAccess", - "src": "9156:12:2" + "src": "9263:12:3" } ], - "id": 1049, + "id": 1127, "name": "Assignment", - "src": "9137:31:2" + "src": "9244:31:3" } ], - "id": 1050, + "id": 1128, "name": "ExpressionStatement", - "src": "9137:31:2" + "src": "9244:31:3" }, { "children": [ @@ -13220,7 +13374,7 @@ "isPure": false, "lValueRequested": true, "member_name": "confirmationCodeSha3", - "referencedDeclaration": 183, + "referencedDeclaration": 253, "type": "bytes32" }, "children": [ @@ -13230,18 +13384,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1006, + "referencedDeclaration": 1084, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1051, + "id": 1129, "name": "Identifier", - "src": "9178:2:2" + "src": "9285:2:3" } ], - "id": 1053, + "id": 1131, "name": "MemberAccess", - "src": "9178:23:2" + "src": "9285:23:3" }, { "attributes": { @@ -13249,23 +13403,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 870, + "referencedDeclaration": 948, "type": "bytes32", "value": "confirmationCodeSha3" }, - "id": 1054, + "id": 1132, "name": "Identifier", - "src": "9204:20:2" + "src": "9311:20:3" } ], - "id": 1055, + "id": 1133, "name": "Assignment", - "src": "9178:46:2" + "src": "9285:46:3" } ], - "id": 1056, + "id": 1134, "name": "ExpressionStatement", - "src": "9178:46:2" + "src": "9285:46:3" }, { "children": [ @@ -13288,7 +13442,7 @@ "isPure": false, "lValueRequested": true, "member_name": "keccakIdentifier", - "referencedDeclaration": 181, + "referencedDeclaration": 251, "type": "bytes32" }, "children": [ @@ -13298,18 +13452,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1006, + "referencedDeclaration": 1084, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1057, + "id": 1135, "name": "Identifier", - "src": "9234:2:2" + "src": "9341:2:3" } ], - "id": 1059, + "id": 1137, "name": "MemberAccess", - "src": "9234:19:2" + "src": "9341:19:3" }, { "attributes": { @@ -13353,13 +13507,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1320, + "referencedDeclaration": 1580, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1060, + "id": 1138, "name": "Identifier", - "src": "9256:9:2" + "src": "9363:9:3" }, { "attributes": { @@ -13367,13 +13521,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 858, + "referencedDeclaration": 936, "type": "string memory", "value": "country" }, - "id": 1061, + "id": 1139, "name": "Identifier", - "src": "9266:7:2" + "src": "9373:7:3" }, { "attributes": { @@ -13381,13 +13535,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 860, + "referencedDeclaration": 938, "type": "string memory", "value": "state" }, - "id": 1062, + "id": 1140, "name": "Identifier", - "src": "9275:5:2" + "src": "9382:5:3" }, { "attributes": { @@ -13395,13 +13549,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 862, + "referencedDeclaration": 940, "type": "string memory", "value": "city" }, - "id": 1063, + "id": 1141, "name": "Identifier", - "src": "9282:4:2" + "src": "9389:4:3" }, { "attributes": { @@ -13409,13 +13563,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 864, + "referencedDeclaration": 942, "type": "string memory", "value": "location" }, - "id": 1064, + "id": 1142, "name": "Identifier", - "src": "9288:8:2" + "src": "9395:8:3" }, { "attributes": { @@ -13423,28 +13577,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 866, + "referencedDeclaration": 944, "type": "string memory", "value": "zip" }, - "id": 1065, + "id": 1143, "name": "Identifier", - "src": "9298:3:2" + "src": "9405:3:3" } ], - "id": 1066, + "id": 1144, "name": "FunctionCall", - "src": "9256:46:2" + "src": "9363:46:3" } ], - "id": 1067, + "id": 1145, "name": "Assignment", - "src": "9234:68:2" + "src": "9341:68:3" } ], - "id": 1068, + "id": 1146, "name": "ExpressionStatement", - "src": "9234:68:2" + "src": "9341:68:3" }, { "children": [ @@ -13467,7 +13621,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_PhysicalAddress_$184_memory_ptr", + "typeIdentifier": "t_struct$_PhysicalAddress_$254_memory_ptr", "typeString": "struct ProofOfPhysicalAddress.PhysicalAddress memory" } ], @@ -13488,7 +13642,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -13508,13 +13662,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1069, + "id": 1147, "name": "Identifier", - "src": "9312:5:2" + "src": "9419:5:3" }, { "attributes": { @@ -13534,33 +13688,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1070, + "id": 1148, "name": "Identifier", - "src": "9318:3:2" + "src": "9425:3:3" } ], - "id": 1071, + "id": 1149, "name": "MemberAccess", - "src": "9318:10:2" + "src": "9425:10:3" } ], - "id": 1072, + "id": 1150, "name": "IndexAccess", - "src": "9312:17:2" + "src": "9419:17:3" } ], - "id": 1073, + "id": 1151, "name": "MemberAccess", - "src": "9312:35:2" + "src": "9419:35:3" } ], - "id": 1074, + "id": 1152, "name": "MemberAccess", - "src": "9312:40:2" + "src": "9419:40:3" }, { "attributes": { @@ -13568,23 +13722,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1006, + "referencedDeclaration": 1084, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1075, + "id": 1153, "name": "Identifier", - "src": "9353:2:2" + "src": "9460:2:3" } ], - "id": 1076, + "id": 1154, "name": "FunctionCall", - "src": "9312:44:2" + "src": "9419:44:3" } ], - "id": 1077, + "id": 1155, "name": "ExpressionStatement", - "src": "9312:44:2" + "src": "9419:44:3" }, { "children": [ @@ -13605,13 +13759,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 219, + "referencedDeclaration": 289, "type": "uint64", "value": "totalAddresses" }, - "id": 1078, + "id": 1156, "name": "Identifier", - "src": "9367:14:2" + "src": "9474:14:3" }, { "attributes": { @@ -13626,29 +13780,29 @@ "type": "int_const 1", "value": "1" }, - "id": 1079, + "id": 1157, "name": "Literal", - "src": "9385:1:2" + "src": "9492:1:3" } ], - "id": 1080, + "id": 1158, "name": "Assignment", - "src": "9367:19:2" + "src": "9474:19:3" } ], - "id": 1081, + "id": 1159, "name": "ExpressionStatement", - "src": "9367:19:2" + "src": "9474:19:3" } ], - "id": 1082, + "id": 1160, "name": "Block", - "src": "7953:1440:2" + "src": "8060:1440:3" } ], - "id": 1083, + "id": 1161, "name": "FunctionDefinition", - "src": "7699:1694:2" + "src": "7806:1694:3" }, { "attributes": { @@ -13657,7 +13811,7 @@ "isConstructor": false, "name": "unregisterAddress", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -13669,7 +13823,7 @@ "attributes": { "constant": false, "name": "country", - "scope": 1219, + "scope": 1297, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -13682,20 +13836,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1084, + "id": 1162, "name": "ElementaryTypeName", - "src": "9426:6:2" + "src": "9533:6:3" } ], - "id": 1085, + "id": 1163, "name": "VariableDeclaration", - "src": "9426:14:2" + "src": "9533:14:3" }, { "attributes": { "constant": false, "name": "state", - "scope": 1219, + "scope": 1297, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -13708,20 +13862,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1086, + "id": 1164, "name": "ElementaryTypeName", - "src": "9442:6:2" + "src": "9549:6:3" } ], - "id": 1087, + "id": 1165, "name": "VariableDeclaration", - "src": "9442:12:2" + "src": "9549:12:3" }, { "attributes": { "constant": false, "name": "city", - "scope": 1219, + "scope": 1297, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -13734,20 +13888,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1088, + "id": 1166, "name": "ElementaryTypeName", - "src": "9456:6:2" + "src": "9563:6:3" } ], - "id": 1089, + "id": 1167, "name": "VariableDeclaration", - "src": "9456:11:2" + "src": "9563:11:3" }, { "attributes": { "constant": false, "name": "location", - "scope": 1219, + "scope": 1297, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -13760,20 +13914,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1090, + "id": 1168, "name": "ElementaryTypeName", - "src": "9469:6:2" + "src": "9576:6:3" } ], - "id": 1091, + "id": 1169, "name": "VariableDeclaration", - "src": "9469:15:2" + "src": "9576:15:3" }, { "attributes": { "constant": false, "name": "zip", - "scope": 1219, + "scope": 1297, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -13786,19 +13940,19 @@ "name": "string", "type": "string storage pointer" }, - "id": 1092, + "id": 1170, "name": "ElementaryTypeName", - "src": "9486:6:2" + "src": "9593:6:3" } ], - "id": 1093, + "id": 1171, "name": "VariableDeclaration", - "src": "9486:10:2" + "src": "9593:10:3" } ], - "id": 1094, + "id": 1172, "name": "ParameterList", - "src": "9425:72:2" + "src": "9532:72:3" }, { "attributes": { @@ -13807,9 +13961,9 @@ ] }, "children": [], - "id": 1099, + "id": 1177, "name": "ParameterList", - "src": "9545:0:2" + "src": "9652:0:3" }, { "children": [ @@ -13819,13 +13973,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 244, + "referencedDeclaration": 322, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 1095, + "id": 1173, "name": "Identifier", - "src": "9513:15:2" + "src": "9620:15:3" }, { "attributes": { @@ -13845,23 +13999,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1096, + "id": 1174, "name": "Identifier", - "src": "9529:3:2" + "src": "9636:3:3" } ], - "id": 1097, + "id": 1175, "name": "MemberAccess", - "src": "9529:10:2" + "src": "9636:10:3" } ], - "id": 1098, + "id": 1176, "name": "ModifierInvocation", - "src": "9513:27:2" + "src": "9620:27:3" }, { "children": [ @@ -13877,7 +14031,7 @@ "attributes": { "constant": false, "name": "found", - "scope": 1219, + "scope": 1297, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -13890,19 +14044,19 @@ "name": "bool", "type": "bool" }, - "id": 1100, + "id": 1178, "name": "ElementaryTypeName", - "src": "9555:4:2" + "src": "9662:4:3" } ], - "id": 1101, + "id": 1179, "name": "VariableDeclaration", - "src": "9555:10:2" + "src": "9662:10:3" } ], - "id": 1102, + "id": 1180, "name": "VariableDeclarationStatement", - "src": "9555:10:2" + "src": "9662:10:3" }, { "attributes": { @@ -13916,7 +14070,7 @@ "attributes": { "constant": false, "name": "index", - "scope": 1219, + "scope": 1297, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -13929,19 +14083,19 @@ "name": "uint256", "type": "uint256" }, - "id": 1103, + "id": 1181, "name": "ElementaryTypeName", - "src": "9575:7:2" + "src": "9682:7:3" } ], - "id": 1104, + "id": 1182, "name": "VariableDeclaration", - "src": "9575:13:2" + "src": "9682:13:3" } ], - "id": 1105, + "id": 1183, "name": "VariableDeclarationStatement", - "src": "9575:13:2" + "src": "9682:13:3" }, { "children": [ @@ -13973,13 +14127,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1101, + "referencedDeclaration": 1179, "type": "bool", "value": "found" }, - "id": 1106, + "id": 1184, "name": "Identifier", - "src": "9599:5:2" + "src": "9706:5:3" }, { "attributes": { @@ -13987,18 +14141,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1104, + "referencedDeclaration": 1182, "type": "uint256", "value": "index" }, - "id": 1107, + "id": 1185, "name": "Identifier", - "src": "9606:5:2" + "src": "9713:5:3" } ], - "id": 1108, + "id": 1186, "name": "TupleExpression", - "src": "9598:16:2" + "src": "9705:16:3" }, { "attributes": { @@ -14046,13 +14200,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 611, + "referencedDeclaration": 689, "type": "function (address,string memory,string memory,string memory,string memory,string memory) view returns (bool,uint256,bool)", "value": "userAddressByAddress" }, - "id": 1109, + "id": 1187, "name": "Identifier", - "src": "9617:20:2" + "src": "9724:20:3" }, { "attributes": { @@ -14072,18 +14226,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1110, + "id": 1188, "name": "Identifier", - "src": "9638:3:2" + "src": "9745:3:3" } ], - "id": 1111, + "id": 1189, "name": "MemberAccess", - "src": "9638:10:2" + "src": "9745:10:3" }, { "attributes": { @@ -14091,13 +14245,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1085, + "referencedDeclaration": 1163, "type": "string memory", "value": "country" }, - "id": 1112, + "id": 1190, "name": "Identifier", - "src": "9650:7:2" + "src": "9757:7:3" }, { "attributes": { @@ -14105,13 +14259,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1087, + "referencedDeclaration": 1165, "type": "string memory", "value": "state" }, - "id": 1113, + "id": 1191, "name": "Identifier", - "src": "9659:5:2" + "src": "9766:5:3" }, { "attributes": { @@ -14119,13 +14273,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1089, + "referencedDeclaration": 1167, "type": "string memory", "value": "city" }, - "id": 1114, + "id": 1192, "name": "Identifier", - "src": "9666:4:2" + "src": "9773:4:3" }, { "attributes": { @@ -14133,13 +14287,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1091, + "referencedDeclaration": 1169, "type": "string memory", "value": "location" }, - "id": 1115, + "id": 1193, "name": "Identifier", - "src": "9672:8:2" + "src": "9779:8:3" }, { "attributes": { @@ -14147,28 +14301,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1093, + "referencedDeclaration": 1171, "type": "string memory", "value": "zip" }, - "id": 1116, + "id": 1194, "name": "Identifier", - "src": "9682:3:2" + "src": "9789:3:3" } ], - "id": 1117, + "id": 1195, "name": "FunctionCall", - "src": "9617:69:2" + "src": "9724:69:3" } ], - "id": 1118, + "id": 1196, "name": "Assignment", - "src": "9598:88:2" + "src": "9705:88:3" } ], - "id": 1119, + "id": 1197, "name": "ExpressionStatement", - "src": "9598:88:2" + "src": "9705:88:3" }, { "children": [ @@ -14198,13 +14352,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 1120, + "id": 1198, "name": "Identifier", - "src": "9696:7:2" + "src": "9803:7:3" }, { "attributes": { @@ -14212,23 +14366,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1101, + "referencedDeclaration": 1179, "type": "bool", "value": "found" }, - "id": 1121, + "id": 1199, "name": "Identifier", - "src": "9704:5:2" + "src": "9811:5:3" } ], - "id": 1122, + "id": 1200, "name": "FunctionCall", - "src": "9696:14:2" + "src": "9803:14:3" } ], - "id": 1123, + "id": 1201, "name": "ExpressionStatement", - "src": "9696:14:2" + "src": "9803:14:3" }, { "children": [ @@ -14268,7 +14422,7 @@ "isPure": false, "lValueRequested": false, "member_name": "removeClaim", - "referencedDeclaration": 26, + "referencedDeclaration": 95, "type": "function (address,address,bytes32) external" }, "children": [ @@ -14278,18 +14432,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 165, + "referencedDeclaration": 235, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 1124, + "id": 1202, "name": "Identifier", - "src": "9721:8:2" + "src": "9828:8:3" } ], - "id": 1126, + "id": 1204, "name": "MemberAccess", - "src": "9721:20:2" + "src": "9828:20:3" }, { "attributes": { @@ -14310,7 +14464,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1314", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1444", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -14321,9 +14475,9 @@ "type": "type(address)", "value": "address" }, - "id": 1127, + "id": 1205, "name": "ElementaryTypeNameExpression", - "src": "9755:7:2" + "src": "9862:7:3" }, { "attributes": { @@ -14331,18 +14485,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1341, + "referencedDeclaration": 1603, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 1128, + "id": 1206, "name": "Identifier", - "src": "9763:4:2" + "src": "9870:4:3" } ], - "id": 1129, + "id": 1207, "name": "FunctionCall", - "src": "9755:13:2" + "src": "9862:13:3" }, { "attributes": { @@ -14362,18 +14516,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1130, + "id": 1208, "name": "Identifier", - "src": "9782:3:2" + "src": "9889:3:3" } ], - "id": 1131, + "id": 1209, "name": "MemberAccess", - "src": "9782:10:2" + "src": "9889:10:3" }, { "attributes": { @@ -14383,7 +14537,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 181, + "referencedDeclaration": 251, "type": "bytes32" }, "children": [ @@ -14405,7 +14559,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -14425,13 +14579,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1132, + "id": 1210, "name": "Identifier", - "src": "9806:5:2" + "src": "9913:5:3" }, { "attributes": { @@ -14451,28 +14605,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1133, + "id": 1211, "name": "Identifier", - "src": "9812:3:2" + "src": "9919:3:3" } ], - "id": 1134, + "id": 1212, "name": "MemberAccess", - "src": "9812:10:2" + "src": "9919:10:3" } ], - "id": 1135, + "id": 1213, "name": "IndexAccess", - "src": "9806:17:2" + "src": "9913:17:3" } ], - "id": 1136, + "id": 1214, "name": "MemberAccess", - "src": "9806:35:2" + "src": "9913:35:3" }, { "attributes": { @@ -14480,38 +14634,38 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1104, + "referencedDeclaration": 1182, "type": "uint256", "value": "index" }, - "id": 1137, + "id": 1215, "name": "Identifier", - "src": "9842:5:2" + "src": "9949:5:3" } ], - "id": 1138, + "id": 1216, "name": "IndexAccess", - "src": "9806:42:2" + "src": "9913:42:3" } ], - "id": 1139, + "id": 1217, "name": "MemberAccess", - "src": "9806:59:2" + "src": "9913:59:3" } ], - "id": 1140, + "id": 1218, "name": "FunctionCall", - "src": "9721:154:2" + "src": "9828:154:3" } ], - "id": 1141, + "id": 1219, "name": "ExpressionStatement", - "src": "9721:154:2" + "src": "9828:154:3" }, { "attributes": { "assignments": [ - 1143 + 1221 ] }, "children": [ @@ -14519,7 +14673,7 @@ "attributes": { "constant": false, "name": "length", - "scope": 1219, + "scope": 1297, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -14532,14 +14686,14 @@ "name": "uint256", "type": "uint256" }, - "id": 1142, + "id": 1220, "name": "ElementaryTypeName", - "src": "9931:7:2" + "src": "10038:7:3" } ], - "id": 1143, + "id": 1221, "name": "VariableDeclaration", - "src": "9931:14:2" + "src": "10038:14:3" }, { "attributes": { @@ -14561,7 +14715,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -14581,13 +14735,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1144, + "id": 1222, "name": "Identifier", - "src": "9948:5:2" + "src": "10055:5:3" }, { "attributes": { @@ -14607,45 +14761,45 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1145, + "id": 1223, "name": "Identifier", - "src": "9954:3:2" + "src": "10061:3:3" } ], - "id": 1146, + "id": 1224, "name": "MemberAccess", - "src": "9954:10:2" + "src": "10061:10:3" } ], - "id": 1147, + "id": 1225, "name": "IndexAccess", - "src": "9948:17:2" + "src": "10055:17:3" } ], - "id": 1148, + "id": 1226, "name": "MemberAccess", - "src": "9948:35:2" + "src": "10055:35:3" } ], - "id": 1149, + "id": 1227, "name": "MemberAccess", - "src": "9948:42:2" + "src": "10055:42:3" } ], - "id": 1150, + "id": 1228, "name": "VariableDeclarationStatement", - "src": "9931:59:2" + "src": "10038:59:3" }, { "children": [ { "attributes": { "assignments": [ - 1152 + 1230 ] }, "children": [ @@ -14653,7 +14807,7 @@ "attributes": { "constant": false, "name": "i", - "scope": 1219, + "scope": 1297, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -14666,14 +14820,14 @@ "name": "uint256", "type": "uint256" }, - "id": 1151, + "id": 1229, "name": "ElementaryTypeName", - "src": "10006:7:2" + "src": "10113:7:3" } ], - "id": 1152, + "id": 1230, "name": "VariableDeclaration", - "src": "10006:9:2" + "src": "10113:9:3" }, { "attributes": { @@ -14681,18 +14835,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1104, + "referencedDeclaration": 1182, "type": "uint256", "value": "index" }, - "id": 1153, + "id": 1231, "name": "Identifier", - "src": "10018:5:2" + "src": "10125:5:3" } ], - "id": 1154, + "id": 1232, "name": "VariableDeclarationStatement", - "src": "10006:17:2" + "src": "10113:17:3" }, { "attributes": { @@ -14715,13 +14869,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1152, + "referencedDeclaration": 1230, "type": "uint256", "value": "i" }, - "id": 1155, + "id": 1233, "name": "Identifier", - "src": "10025:1:2" + "src": "10132:1:3" }, { "attributes": { @@ -14744,13 +14898,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1143, + "referencedDeclaration": 1221, "type": "uint256", "value": "length" }, - "id": 1156, + "id": 1234, "name": "Identifier", - "src": "10029:6:2" + "src": "10136:6:3" }, { "attributes": { @@ -14765,19 +14919,19 @@ "type": "int_const 1", "value": "1" }, - "id": 1157, + "id": 1235, "name": "Literal", - "src": "10038:1:2" + "src": "10145:1:3" } ], - "id": 1158, + "id": 1236, "name": "BinaryOperation", - "src": "10029:10:2" + "src": "10136:10:3" } ], - "id": 1159, + "id": 1237, "name": "BinaryOperation", - "src": "10025:14:2" + "src": "10132:14:3" }, { "children": [ @@ -14799,23 +14953,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1152, + "referencedDeclaration": 1230, "type": "uint256", "value": "i" }, - "id": 1160, + "id": 1238, "name": "Identifier", - "src": "10041:1:2" + "src": "10148:1:3" } ], - "id": 1161, + "id": 1239, "name": "UnaryOperation", - "src": "10041:3:2" + "src": "10148:3:3" } ], - "id": 1162, + "id": 1240, "name": "ExpressionStatement", - "src": "10041:3:2" + "src": "10148:3:3" }, { "children": [ @@ -14850,7 +15004,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -14870,13 +15024,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1163, + "id": 1241, "name": "Identifier", - "src": "10060:5:2" + "src": "10167:5:3" }, { "attributes": { @@ -14896,28 +15050,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1164, + "id": 1242, "name": "Identifier", - "src": "10066:3:2" + "src": "10173:3:3" } ], - "id": 1165, + "id": 1243, "name": "MemberAccess", - "src": "10066:10:2" + "src": "10173:10:3" } ], - "id": 1166, + "id": 1244, "name": "IndexAccess", - "src": "10060:17:2" + "src": "10167:17:3" } ], - "id": 1167, + "id": 1245, "name": "MemberAccess", - "src": "10060:35:2" + "src": "10167:35:3" }, { "attributes": { @@ -14925,18 +15079,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1152, + "referencedDeclaration": 1230, "type": "uint256", "value": "i" }, - "id": 1168, + "id": 1246, "name": "Identifier", - "src": "10096:1:2" + "src": "10203:1:3" } ], - "id": 1169, + "id": 1247, "name": "IndexAccess", - "src": "10060:38:2" + "src": "10167:38:3" }, { "attributes": { @@ -14956,7 +15110,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -14976,13 +15130,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1170, + "id": 1248, "name": "Identifier", - "src": "10101:5:2" + "src": "10208:5:3" }, { "attributes": { @@ -15002,28 +15156,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1171, + "id": 1249, "name": "Identifier", - "src": "10107:3:2" + "src": "10214:3:3" } ], - "id": 1172, + "id": 1250, "name": "MemberAccess", - "src": "10107:10:2" + "src": "10214:10:3" } ], - "id": 1173, + "id": 1251, "name": "IndexAccess", - "src": "10101:17:2" + "src": "10208:17:3" } ], - "id": 1174, + "id": 1252, "name": "MemberAccess", - "src": "10101:35:2" + "src": "10208:35:3" }, { "attributes": { @@ -15046,13 +15200,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1152, + "referencedDeclaration": 1230, "type": "uint256", "value": "i" }, - "id": 1175, + "id": 1253, "name": "Identifier", - "src": "10137:1:2" + "src": "10244:1:3" }, { "attributes": { @@ -15067,39 +15221,39 @@ "type": "int_const 1", "value": "1" }, - "id": 1176, + "id": 1254, "name": "Literal", - "src": "10139:1:2" + "src": "10246:1:3" } ], - "id": 1177, + "id": 1255, "name": "BinaryOperation", - "src": "10137:3:2" + "src": "10244:3:3" } ], - "id": 1178, + "id": 1256, "name": "IndexAccess", - "src": "10101:40:2" + "src": "10208:40:3" } ], - "id": 1179, + "id": 1257, "name": "Assignment", - "src": "10060:81:2" + "src": "10167:81:3" } ], - "id": 1180, + "id": 1258, "name": "ExpressionStatement", - "src": "10060:81:2" + "src": "10167:81:3" } ], - "id": 1181, + "id": 1259, "name": "Block", - "src": "10046:106:2" + "src": "10153:106:3" } ], - "id": 1182, + "id": 1260, "name": "ForStatement", - "src": "10001:151:2" + "src": "10108:151:3" }, { "children": [ @@ -15133,7 +15287,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -15153,13 +15307,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1183, + "id": 1261, "name": "Identifier", - "src": "10169:5:2" + "src": "10276:5:3" }, { "attributes": { @@ -15179,28 +15333,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1184, + "id": 1262, "name": "Identifier", - "src": "10175:3:2" + "src": "10282:3:3" } ], - "id": 1185, + "id": 1263, "name": "MemberAccess", - "src": "10175:10:2" + "src": "10282:10:3" } ], - "id": 1186, + "id": 1264, "name": "IndexAccess", - "src": "10169:17:2" + "src": "10276:17:3" } ], - "id": 1187, + "id": 1265, "name": "MemberAccess", - "src": "10169:35:2" + "src": "10276:35:3" }, { "attributes": { @@ -15223,13 +15377,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1143, + "referencedDeclaration": 1221, "type": "uint256", "value": "length" }, - "id": 1188, + "id": 1266, "name": "Identifier", - "src": "10205:6:2" + "src": "10312:6:3" }, { "attributes": { @@ -15244,29 +15398,29 @@ "type": "int_const 1", "value": "1" }, - "id": 1189, + "id": 1267, "name": "Literal", - "src": "10214:1:2" + "src": "10321:1:3" } ], - "id": 1190, + "id": 1268, "name": "BinaryOperation", - "src": "10205:10:2" + "src": "10312:10:3" } ], - "id": 1191, + "id": 1269, "name": "IndexAccess", - "src": "10169:47:2" + "src": "10276:47:3" } ], - "id": 1192, + "id": 1270, "name": "UnaryOperation", - "src": "10162:54:2" + "src": "10269:54:3" } ], - "id": 1193, + "id": 1271, "name": "ExpressionStatement", - "src": "10162:54:2" + "src": "10269:54:3" }, { "children": [ @@ -15302,7 +15456,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -15322,13 +15476,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1194, + "id": 1272, "name": "Identifier", - "src": "10226:5:2" + "src": "10333:5:3" }, { "attributes": { @@ -15348,43 +15502,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1195, + "id": 1273, "name": "Identifier", - "src": "10232:3:2" + "src": "10339:3:3" } ], - "id": 1196, + "id": 1274, "name": "MemberAccess", - "src": "10232:10:2" + "src": "10339:10:3" } ], - "id": 1197, + "id": 1275, "name": "IndexAccess", - "src": "10226:17:2" + "src": "10333:17:3" } ], - "id": 1198, + "id": 1276, "name": "MemberAccess", - "src": "10226:35:2" + "src": "10333:35:3" } ], - "id": 1199, + "id": 1277, "name": "MemberAccess", - "src": "10226:42:2" + "src": "10333:42:3" } ], - "id": 1200, + "id": 1278, "name": "UnaryOperation", - "src": "10226:44:2" + "src": "10333:44:3" } ], - "id": 1201, + "id": 1279, "name": "ExpressionStatement", - "src": "10226:44:2" + "src": "10333:44:3" }, { "attributes": { @@ -15426,7 +15580,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 210, + "referencedDeclaration": 280, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -15446,13 +15600,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1202, + "id": 1280, "name": "Identifier", - "src": "10285:5:2" + "src": "10392:5:3" }, { "attributes": { @@ -15472,33 +15626,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1203, + "id": 1281, "name": "Identifier", - "src": "10291:3:2" + "src": "10398:3:3" } ], - "id": 1204, + "id": 1282, "name": "MemberAccess", - "src": "10291:10:2" + "src": "10398:10:3" } ], - "id": 1205, + "id": 1283, "name": "IndexAccess", - "src": "10285:17:2" + "src": "10392:17:3" } ], - "id": 1206, + "id": 1284, "name": "MemberAccess", - "src": "10285:35:2" + "src": "10392:35:3" } ], - "id": 1207, + "id": 1285, "name": "MemberAccess", - "src": "10285:42:2" + "src": "10392:42:3" }, { "attributes": { @@ -15513,14 +15667,14 @@ "type": "int_const 0", "value": "0" }, - "id": 1208, + "id": 1286, "name": "Literal", - "src": "10331:1:2" + "src": "10438:1:3" } ], - "id": 1209, + "id": 1287, "name": "BinaryOperation", - "src": "10285:47:2" + "src": "10392:47:3" }, { "children": [ @@ -15554,13 +15708,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 215, + "referencedDeclaration": 285, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1210, + "id": 1288, "name": "Identifier", - "src": "10355:5:2" + "src": "10462:5:3" }, { "attributes": { @@ -15580,53 +15734,53 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1211, + "id": 1289, "name": "Identifier", - "src": "10361:3:2" + "src": "10468:3:3" } ], - "id": 1212, + "id": 1290, "name": "MemberAccess", - "src": "10361:10:2" + "src": "10468:10:3" } ], - "id": 1213, + "id": 1291, "name": "IndexAccess", - "src": "10355:17:2" + "src": "10462:17:3" } ], - "id": 1214, + "id": 1292, "name": "UnaryOperation", - "src": "10348:24:2" + "src": "10455:24:3" } ], - "id": 1215, + "id": 1293, "name": "ExpressionStatement", - "src": "10348:24:2" + "src": "10455:24:3" } ], - "id": 1216, + "id": 1294, "name": "Block", - "src": "10334:49:2" + "src": "10441:49:3" } ], - "id": 1217, + "id": 1295, "name": "IfStatement", - "src": "10281:102:2" + "src": "10388:102:3" } ], - "id": 1218, + "id": 1296, "name": "Block", - "src": "9545:844:2" + "src": "9652:844:3" } ], - "id": 1219, + "id": 1297, "name": "FunctionDefinition", - "src": "9399:990:2" + "src": "9506:990:3" }, { "attributes": { @@ -15635,7 +15789,7 @@ "isConstructor": false, "name": "confirmAddress", "payable": false, - "scope": 1314, + "scope": 1444, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -15647,7 +15801,7 @@ "attributes": { "constant": false, "name": "confirmationCodePlain", - "scope": 1313, + "scope": 1391, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -15660,20 +15814,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1220, + "id": 1298, "name": "ElementaryTypeName", - "src": "10419:6:2" + "src": "10526:6:3" } ], - "id": 1221, + "id": 1299, "name": "VariableDeclaration", - "src": "10419:28:2" + "src": "10526:28:3" }, { "attributes": { "constant": false, "name": "sigV", - "scope": 1313, + "scope": 1391, "stateVariable": false, "storageLocation": "default", "type": "uint8", @@ -15686,20 +15840,20 @@ "name": "uint8", "type": "uint8" }, - "id": 1222, + "id": 1300, "name": "ElementaryTypeName", - "src": "10449:5:2" + "src": "10556:5:3" } ], - "id": 1223, + "id": 1301, "name": "VariableDeclaration", - "src": "10449:10:2" + "src": "10556:10:3" }, { "attributes": { "constant": false, "name": "sigR", - "scope": 1313, + "scope": 1391, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -15712,20 +15866,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1224, + "id": 1302, "name": "ElementaryTypeName", - "src": "10461:7:2" + "src": "10568:7:3" } ], - "id": 1225, + "id": 1303, "name": "VariableDeclaration", - "src": "10461:12:2" + "src": "10568:12:3" }, { "attributes": { "constant": false, "name": "sigS", - "scope": 1313, + "scope": 1391, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -15738,19 +15892,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1226, + "id": 1304, "name": "ElementaryTypeName", - "src": "10475:7:2" + "src": "10582:7:3" } ], - "id": 1227, + "id": 1305, "name": "VariableDeclaration", - "src": "10475:12:2" + "src": "10582:12:3" } ], - "id": 1228, + "id": 1306, "name": "ParameterList", - "src": "10418:70:2" + "src": "10525:70:3" }, { "attributes": { @@ -15759,9 +15913,9 @@ ] }, "children": [], - "id": 1233, + "id": 1311, "name": "ParameterList", - "src": "10532:0:2" + "src": "10639:0:3" }, { "children": [ @@ -15771,13 +15925,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 244, + "referencedDeclaration": 322, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 1229, + "id": 1307, "name": "Identifier", - "src": "10500:15:2" + "src": "10607:15:3" }, { "attributes": { @@ -15797,23 +15951,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1230, + "id": 1308, "name": "Identifier", - "src": "10516:3:2" + "src": "10623:3:3" } ], - "id": 1231, + "id": 1309, "name": "MemberAccess", - "src": "10516:10:2" + "src": "10623:10:3" } ], - "id": 1232, + "id": 1310, "name": "ModifierInvocation", - "src": "10500:27:2" + "src": "10607:27:3" }, { "children": [ @@ -15845,13 +15999,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 1234, + "id": 1312, "name": "Identifier", - "src": "10542:7:2" + "src": "10649:7:3" }, { "attributes": { @@ -15910,9 +16064,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 1235, + "id": 1313, "name": "ElementaryTypeNameExpression", - "src": "10550:5:2" + "src": "10657:5:3" }, { "attributes": { @@ -15920,23 +16074,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1221, + "referencedDeclaration": 1299, "type": "string memory", "value": "confirmationCodePlain" }, - "id": 1236, + "id": 1314, "name": "Identifier", - "src": "10556:21:2" + "src": "10663:21:3" } ], - "id": 1237, + "id": 1315, "name": "FunctionCall", - "src": "10550:28:2" + "src": "10657:28:3" } ], - "id": 1238, + "id": 1316, "name": "MemberAccess", - "src": "10550:35:2" + "src": "10657:35:3" }, { "attributes": { @@ -15951,29 +16105,29 @@ "type": "int_const 0", "value": "0" }, - "id": 1239, + "id": 1317, "name": "Literal", - "src": "10588:1:2" + "src": "10695:1:3" } ], - "id": 1240, + "id": 1318, "name": "BinaryOperation", - "src": "10550:39:2" + "src": "10657:39:3" } ], - "id": 1241, + "id": 1319, "name": "FunctionCall", - "src": "10542:48:2" + "src": "10649:48:3" } ], - "id": 1242, + "id": 1320, "name": "ExpressionStatement", - "src": "10542:48:2" + "src": "10649:48:3" }, { "attributes": { "assignments": [ - 1244 + 1322 ] }, "children": [ @@ -15981,7 +16135,7 @@ "attributes": { "constant": false, "name": "data", - "scope": 1313, + "scope": 1391, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -15994,14 +16148,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1243, + "id": 1321, "name": "ElementaryTypeName", - "src": "10601:7:2" + "src": "10708:7:3" } ], - "id": 1244, + "id": 1322, "name": "VariableDeclaration", - "src": "10601:12:2" + "src": "10708:12:3" }, { "attributes": { @@ -16033,13 +16187,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1320, + "referencedDeclaration": 1580, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1245, + "id": 1323, "name": "Identifier", - "src": "10616:9:2" + "src": "10723:9:3" }, { "attributes": { @@ -16059,18 +16213,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1246, + "id": 1324, "name": "Identifier", - "src": "10639:3:2" + "src": "10746:3:3" } ], - "id": 1247, + "id": 1325, "name": "MemberAccess", - "src": "10639:10:2" + "src": "10746:10:3" }, { "attributes": { @@ -16078,23 +16232,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1221, + "referencedDeclaration": 1299, "type": "string memory", "value": "confirmationCodePlain" }, - "id": 1248, + "id": 1326, "name": "Identifier", - "src": "10663:21:2" + "src": "10770:21:3" } ], - "id": 1249, + "id": 1327, "name": "FunctionCall", - "src": "10616:78:2" + "src": "10723:78:3" } ], - "id": 1250, + "id": 1328, "name": "VariableDeclarationStatement", - "src": "10601:93:2" + "src": "10708:93:3" }, { "children": [ @@ -16124,13 +16278,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 1251, + "id": 1329, "name": "Identifier", - "src": "10704:7:2" + "src": "10811:7:3" }, { "attributes": { @@ -16170,13 +16324,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 279, + "referencedDeclaration": 357, "type": "function (bytes32,uint8,bytes32,bytes32) view returns (bool)", "value": "signerIsValid" }, - "id": 1252, + "id": 1330, "name": "Identifier", - "src": "10712:13:2" + "src": "10819:13:3" }, { "attributes": { @@ -16184,13 +16338,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1244, + "referencedDeclaration": 1322, "type": "bytes32", "value": "data" }, - "id": 1253, + "id": 1331, "name": "Identifier", - "src": "10726:4:2" + "src": "10833:4:3" }, { "attributes": { @@ -16198,13 +16352,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1223, + "referencedDeclaration": 1301, "type": "uint8", "value": "sigV" }, - "id": 1254, + "id": 1332, "name": "Identifier", - "src": "10732:4:2" + "src": "10839:4:3" }, { "attributes": { @@ -16212,13 +16366,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1225, + "referencedDeclaration": 1303, "type": "bytes32", "value": "sigR" }, - "id": 1255, + "id": 1333, "name": "Identifier", - "src": "10738:4:2" + "src": "10845:4:3" }, { "attributes": { @@ -16226,28 +16380,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1227, + "referencedDeclaration": 1305, "type": "bytes32", "value": "sigS" }, - "id": 1256, + "id": 1334, "name": "Identifier", - "src": "10744:4:2" + "src": "10851:4:3" } ], - "id": 1257, + "id": 1335, "name": "FunctionCall", - "src": "10712:37:2" + "src": "10819:37:3" } ], - "id": 1258, + "id": 1336, "name": "FunctionCall", - "src": "10704:46:2" + "src": "10811:46:3" } ], - "id": 1259, + "id": 1337, "name": "ExpressionStatement", - "src": "10704:46:2" + "src": "10811:46:3" }, { "attributes": { @@ -16261,7 +16415,7 @@ "attributes": { "constant": false, "name": "found", - "scope": 1313, + "scope": 1391, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -16274,19 +16428,19 @@ "name": "bool", "type": "bool" }, - "id": 1260, + "id": 1338, "name": "ElementaryTypeName", - "src": "10761:4:2" + "src": "10868:4:3" } ], - "id": 1261, + "id": 1339, "name": "VariableDeclaration", - "src": "10761:10:2" + "src": "10868:10:3" } ], - "id": 1262, + "id": 1340, "name": "VariableDeclarationStatement", - "src": "10761:10:2" + "src": "10868:10:3" }, { "attributes": { @@ -16300,7 +16454,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 1313, + "scope": 1391, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -16313,19 +16467,19 @@ "name": "uint", "type": "uint256" }, - "id": 1263, + "id": 1341, "name": "ElementaryTypeName", - "src": "10781:4:2" + "src": "10888:4:3" } ], - "id": 1264, + "id": 1342, "name": "VariableDeclaration", - "src": "10781:7:2" + "src": "10888:7:3" } ], - "id": 1265, + "id": 1343, "name": "VariableDeclarationStatement", - "src": "10781:7:2" + "src": "10888:7:3" }, { "attributes": { @@ -16339,7 +16493,7 @@ "attributes": { "constant": false, "name": "confirmed", - "scope": 1313, + "scope": 1391, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -16352,19 +16506,19 @@ "name": "bool", "type": "bool" }, - "id": 1266, + "id": 1344, "name": "ElementaryTypeName", - "src": "10798:4:2" + "src": "10905:4:3" } ], - "id": 1267, + "id": 1345, "name": "VariableDeclaration", - "src": "10798:14:2" + "src": "10905:14:3" } ], - "id": 1268, + "id": 1346, "name": "VariableDeclarationStatement", - "src": "10798:14:2" + "src": "10905:14:3" }, { "attributes": { @@ -16378,7 +16532,7 @@ "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 1313, + "scope": 1391, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -16391,19 +16545,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1269, + "id": 1347, "name": "ElementaryTypeName", - "src": "10822:7:2" + "src": "10929:7:3" } ], - "id": 1270, + "id": 1348, "name": "VariableDeclaration", - "src": "10822:24:2" + "src": "10929:24:3" } ], - "id": 1271, + "id": 1349, "name": "VariableDeclarationStatement", - "src": "10822:24:2" + "src": "10929:24:3" }, { "children": [ @@ -16435,13 +16589,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1261, + "referencedDeclaration": 1339, "type": "bool", "value": "found" }, - "id": 1272, + "id": 1350, "name": "Identifier", - "src": "10857:5:2" + "src": "10964:5:3" }, { "attributes": { @@ -16449,13 +16603,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1264, + "referencedDeclaration": 1342, "type": "uint256", "value": "ai" }, - "id": 1273, + "id": 1351, "name": "Identifier", - "src": "10864:2:2" + "src": "10971:2:3" }, { "attributes": { @@ -16463,13 +16617,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1267, + "referencedDeclaration": 1345, "type": "bool", "value": "confirmed" }, - "id": 1274, + "id": 1352, "name": "Identifier", - "src": "10868:9:2" + "src": "10975:9:3" }, { "attributes": { @@ -16477,18 +16631,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1270, + "referencedDeclaration": 1348, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 1275, + "id": 1353, "name": "Identifier", - "src": "10879:16:2" + "src": "10986:16:3" } ], - "id": 1276, + "id": 1354, "name": "TupleExpression", - "src": "10856:40:2" + "src": "10963:40:3" }, { "attributes": { @@ -16520,13 +16674,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 536, + "referencedDeclaration": 614, "type": "function (address,bytes32) view returns (bool,uint256,bool,bytes32)", "value": "userAddressByConfirmationCode" }, - "id": 1277, + "id": 1355, "name": "Identifier", - "src": "10899:29:2" + "src": "11006:29:3" }, { "attributes": { @@ -16546,18 +16700,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1278, + "id": 1356, "name": "Identifier", - "src": "10942:3:2" + "src": "11049:3:3" } ], - "id": 1279, + "id": 1357, "name": "MemberAccess", - "src": "10942:10:2" + "src": "11049:10:3" }, { "attributes": { @@ -16585,13 +16739,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1320, + "referencedDeclaration": 1580, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1280, + "id": 1358, "name": "Identifier", - "src": "10966:9:2" + "src": "11073:9:3" }, { "attributes": { @@ -16599,33 +16753,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1221, + "referencedDeclaration": 1299, "type": "string memory", "value": "confirmationCodePlain" }, - "id": 1281, + "id": 1359, "name": "Identifier", - "src": "10976:21:2" + "src": "11083:21:3" } ], - "id": 1282, + "id": 1360, "name": "FunctionCall", - "src": "10966:32:2" + "src": "11073:32:3" } ], - "id": 1283, + "id": 1361, "name": "FunctionCall", - "src": "10899:109:2" + "src": "11006:109:3" } ], - "id": 1284, + "id": 1362, "name": "Assignment", - "src": "10856:152:2" + "src": "10963:152:3" } ], - "id": 1285, + "id": 1363, "name": "ExpressionStatement", - "src": "10856:152:2" + "src": "10963:152:3" }, { "children": [ @@ -16655,13 +16809,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 1286, + "id": 1364, "name": "Identifier", - "src": "11018:7:2" + "src": "11125:7:3" }, { "attributes": { @@ -16669,23 +16823,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1261, + "referencedDeclaration": 1339, "type": "bool", "value": "found" }, - "id": 1287, + "id": 1365, "name": "Identifier", - "src": "11026:5:2" + "src": "11133:5:3" } ], - "id": 1288, + "id": 1366, "name": "FunctionCall", - "src": "11018:14:2" + "src": "11125:14:3" } ], - "id": 1289, + "id": 1367, "name": "ExpressionStatement", - "src": "11018:14:2" + "src": "11125:14:3" }, { "children": [ @@ -16715,13 +16869,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1329, + "referencedDeclaration": 1589, "type": "function (bool) pure", "value": "require" }, - "id": 1290, + "id": 1368, "name": "Identifier", - "src": "11042:7:2" + "src": "11149:7:3" }, { "attributes": { @@ -16741,28 +16895,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1267, + "referencedDeclaration": 1345, "type": "bool", "value": "confirmed" }, - "id": 1291, + "id": 1369, "name": "Identifier", - "src": "11051:9:2" + "src": "11158:9:3" } ], - "id": 1292, + "id": 1370, "name": "UnaryOperation", - "src": "11050:10:2" + "src": "11157:10:3" } ], - "id": 1293, + "id": 1371, "name": "FunctionCall", - "src": "11042:19:2" + "src": "11149:19:3" } ], - "id": 1294, + "id": 1372, "name": "ExpressionStatement", - "src": "11042:19:2" + "src": "11149:19:3" }, { "children": [ @@ -16802,7 +16956,7 @@ "isPure": false, "lValueRequested": false, "member_name": "setClaim", - "referencedDeclaration": 10, + "referencedDeclaration": 79, "type": "function (address,bytes32,bytes32) external" }, "children": [ @@ -16812,18 +16966,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 165, + "referencedDeclaration": 235, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 1295, + "id": 1373, "name": "Identifier", - "src": "11072:8:2" + "src": "11179:8:3" } ], - "id": 1297, + "id": 1375, "name": "MemberAccess", - "src": "11072:17:2" + "src": "11179:17:3" }, { "attributes": { @@ -16843,18 +16997,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1326, + "referencedDeclaration": 1586, "type": "msg", "value": "msg" }, - "id": 1298, + "id": 1376, "name": "Identifier", - "src": "11090:3:2" + "src": "11197:3:3" } ], - "id": 1299, + "id": 1377, "name": "MemberAccess", - "src": "11090:10:2" + "src": "11197:10:3" }, { "attributes": { @@ -16862,13 +17016,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1270, + "referencedDeclaration": 1348, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 1300, + "id": 1378, "name": "Identifier", - "src": "11102:16:2" + "src": "11209:16:3" }, { "attributes": { @@ -16898,7 +17052,7 @@ "isPure": false, "lValueRequested": false, "member_name": "encode", - "referencedDeclaration": 94, + "referencedDeclaration": 163, "type": "function (uint256) pure returns (bytes32)" }, "children": [ @@ -16908,18 +17062,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 155, + "referencedDeclaration": 224, "type": "type(library PhysicalAddressClaim)", "value": "PhysicalAddressClaim" }, - "id": 1301, + "id": 1379, "name": "Identifier", - "src": "11120:20:2" + "src": "11227:20:3" } ], - "id": 1302, + "id": 1380, "name": "MemberAccess", - "src": "11120:27:2" + "src": "11227:27:3" }, { "attributes": { @@ -16939,33 +17093,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1318, + "referencedDeclaration": 1578, "type": "block", "value": "block" }, - "id": 1303, + "id": 1381, "name": "Identifier", - "src": "11148:5:2" + "src": "11255:5:3" } ], - "id": 1304, + "id": 1382, "name": "MemberAccess", - "src": "11148:12:2" + "src": "11255:12:3" } ], - "id": 1305, + "id": 1383, "name": "FunctionCall", - "src": "11120:41:2" + "src": "11227:41:3" } ], - "id": 1306, + "id": 1384, "name": "FunctionCall", - "src": "11072:90:2" + "src": "11179:90:3" } ], - "id": 1307, + "id": 1385, "name": "ExpressionStatement", - "src": "11072:90:2" + "src": "11179:90:3" }, { "children": [ @@ -16986,13 +17140,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 221, + "referencedDeclaration": 291, "type": "uint64", "value": "totalConfirmed" }, - "id": 1308, + "id": 1386, "name": "Identifier", - "src": "11172:14:2" + "src": "11279:14:3" }, { "attributes": { @@ -17007,60 +17161,830 @@ "type": "int_const 1", "value": "1" }, - "id": 1309, + "id": 1387, "name": "Literal", - "src": "11190:1:2" + "src": "11297:1:3" } ], - "id": 1310, + "id": 1388, "name": "Assignment", - "src": "11172:19:2" + "src": "11279:19:3" } ], - "id": 1311, + "id": 1389, "name": "ExpressionStatement", - "src": "11172:19:2" + "src": "11279:19:3" } ], - "id": 1312, + "id": 1390, "name": "Block", - "src": "10532:666:2" + "src": "10639:666:3" } ], - "id": 1313, + "id": 1391, "name": "FunctionDefinition", - "src": "10395:803:2" - } - ], - "id": 1314, - "name": "ContractDefinition", - "src": "149:11051:2" - } - ], - "id": 1315, - "name": "SourceUnit", - "src": "0:11201:2" - }, - "compiler": { - "name": "solc", - "version": "0.4.19+commit.c4cbbb05.Emscripten.clang" - }, - "networks": { - "1523897710657": { - "events": {}, - "links": { - "PhysicalAddressClaim": "0xc395234b5d14bed13eb69595da09d7795892087a" - }, - "address": "0xbc34e0e4cff0643cf7dc5e2e1e8ec55757583c26" - }, - "1523901861051": { - "events": {}, - "links": { - "PhysicalAddressClaim": "0xc395234b5d14bed13eb69595da09d7795892087a" - }, - "address": "0xbc34e0e4cff0643cf7dc5e2e1e8ec55757583c26" - } + "src": "10502:803:3" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "claimTokens", + "payable": false, + "scope": 1444, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_token", + "scope": 1443, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1392, + "name": "ElementaryTypeName", + "src": "11332:7:3" + } + ], + "id": 1393, + "name": "VariableDeclaration", + "src": "11332:14:3" + }, + { + "attributes": { + "constant": false, + "name": "_to", + "scope": 1443, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1394, + "name": "ElementaryTypeName", + "src": "11348:7:3" + } + ], + "id": 1395, + "name": "VariableDeclaration", + "src": "11348:11:3" + } + ], + "id": 1396, + "name": "ParameterList", + "src": "11331:29:3" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1399, + "name": "ParameterList", + "src": "11378:0:3" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 310, + "type": "modifier ()", + "value": "onlyOwner" + }, + "id": 1397, + "name": "Identifier", + "src": "11368:9:3" + } + ], + "id": 1398, + "name": "ModifierInvocation", + "src": "11368:9:3" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1589, + "type": "function (bool) pure", + "value": "require" + }, + "id": 1400, + "name": "Identifier", + "src": "11388:7:3" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1393, + "type": "address", + "value": "_token" + }, + "id": 1401, + "name": "Identifier", + "src": "11396:6:3" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1402, + "name": "ElementaryTypeNameExpression", + "src": "11406:7:3" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1403, + "name": "Literal", + "src": "11414:1:3" + } + ], + "id": 1404, + "name": "FunctionCall", + "src": "11406:10:3" + } + ], + "id": 1405, + "name": "BinaryOperation", + "src": "11396:20:3" + } + ], + "id": 1406, + "name": "FunctionCall", + "src": "11388:29:3" + } + ], + "id": 1407, + "name": "ExpressionStatement", + "src": "11388:29:3" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1589, + "type": "function (bool) pure", + "value": "require" + }, + "id": 1408, + "name": "Identifier", + "src": "11427:7:3" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1395, + "type": "address", + "value": "_to" + }, + "id": 1409, + "name": "Identifier", + "src": "11435:3:3" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1410, + "name": "ElementaryTypeNameExpression", + "src": "11442:7:3" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1411, + "name": "Literal", + "src": "11450:1:3" + } + ], + "id": 1412, + "name": "FunctionCall", + "src": "11442:10:3" + } + ], + "id": 1413, + "name": "BinaryOperation", + "src": "11435:17:3" + } + ], + "id": 1414, + "name": "FunctionCall", + "src": "11427:26:3" + } + ], + "id": 1415, + "name": "ExpressionStatement", + "src": "11427:26:3" + }, + { + "attributes": { + "assignments": [ + 1417 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "token", + "scope": 1443, + "stateVariable": false, + "storageLocation": "default", + "type": "contract ERC20", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "ERC20", + "referencedDeclaration": 68, + "type": "contract ERC20" + }, + "id": 1416, + "name": "UserDefinedTypeName", + "src": "11464:5:3" + } + ], + "id": 1417, + "name": "VariableDeclaration", + "src": "11464:11:3" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "contract ERC20", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 68, + "type": "type(contract ERC20)", + "value": "ERC20" + }, + "id": 1418, + "name": "Identifier", + "src": "11478:5:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1393, + "type": "address", + "value": "_token" + }, + "id": 1419, + "name": "Identifier", + "src": "11484:6:3" + } + ], + "id": 1420, + "name": "FunctionCall", + "src": "11478:13:3" + } + ], + "id": 1421, + "name": "VariableDeclarationStatement", + "src": "11464:27:3" + }, + { + "attributes": { + "assignments": [ + 1423 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "balance", + "scope": 1443, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1422, + "name": "ElementaryTypeName", + "src": "11501:7:3" + } + ], + "id": 1423, + "name": "VariableDeclaration", + "src": "11501:15:3" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1444", + "typeString": "contract ProofOfPhysicalAddress" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balanceOf", + "referencedDeclaration": 13, + "type": "function (address) view external returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1417, + "type": "contract ERC20", + "value": "token" + }, + "id": 1424, + "name": "Identifier", + "src": "11519:5:3" + } + ], + "id": 1425, + "name": "MemberAccess", + "src": "11519:15:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1603, + "type": "contract ProofOfPhysicalAddress", + "value": "this" + }, + "id": 1426, + "name": "Identifier", + "src": "11535:4:3" + } + ], + "id": 1427, + "name": "FunctionCall", + "src": "11519:21:3" + } + ], + "id": 1428, + "name": "VariableDeclarationStatement", + "src": "11501:39:3" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "transfer", + "referencedDeclaration": 31, + "type": "function (address,uint256) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1417, + "type": "contract ERC20", + "value": "token" + }, + "id": 1429, + "name": "Identifier", + "src": "11550:5:3" + } + ], + "id": 1431, + "name": "MemberAccess", + "src": "11550:14:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1395, + "type": "address", + "value": "_to" + }, + "id": 1432, + "name": "Identifier", + "src": "11565:3:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1423, + "type": "uint256", + "value": "balance" + }, + "id": 1433, + "name": "Identifier", + "src": "11570:7:3" + } + ], + "id": 1434, + "name": "FunctionCall", + "src": "11550:28:3" + } + ], + "id": 1435, + "name": "ExpressionStatement", + "src": "11550:28:3" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 299, + "type": "function (address,address,uint256)", + "value": "ClaimedTokens" + }, + "id": 1436, + "name": "Identifier", + "src": "11588:13:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1393, + "type": "address", + "value": "_token" + }, + "id": 1437, + "name": "Identifier", + "src": "11602:6:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1395, + "type": "address", + "value": "_to" + }, + "id": 1438, + "name": "Identifier", + "src": "11610:3:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1423, + "type": "uint256", + "value": "balance" + }, + "id": 1439, + "name": "Identifier", + "src": "11615:7:3" + } + ], + "id": 1440, + "name": "FunctionCall", + "src": "11588:35:3" + } + ], + "id": 1441, + "name": "ExpressionStatement", + "src": "11588:35:3" + } + ], + "id": 1442, + "name": "Block", + "src": "11378:252:3" + } + ], + "id": 1443, + "name": "FunctionDefinition", + "src": "11311:319:3" + } + ], + "id": 1444, + "name": "ContractDefinition", + "src": "171:11461:3" + } + ], + "id": 1445, + "name": "SourceUnit", + "src": "0:11633:3" + }, + "compiler": { + "name": "solc", + "version": "0.4.19+commit.c4cbbb05.Emscripten.clang" }, + "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-05-14T14:15:17.728Z" + "updatedAt": "2018-05-16T15:31:07.465Z" } \ No newline at end of file diff --git a/blockchain/contracts/ERC20.sol b/blockchain/contracts/ERC20.sol new file mode 100644 index 00000000..90faf8ae --- /dev/null +++ b/blockchain/contracts/ERC20.sol @@ -0,0 +1,14 @@ +pragma solidity 0.4.19; + + +contract ERC20 { + function totalSupply() public constant returns (uint); + function balanceOf(address tokenOwner) public constant returns (uint balance); + function allowance(address tokenOwner, address spender) public constant returns (uint remaining); + function transfer(address to, uint tokens) public returns (bool success); + function approve(address spender, uint tokens) public returns (bool success); + function transferFrom(address from, address to, uint tokens) public returns (bool success); + + event Transfer(address indexed from, address indexed to, uint tokens); + event Approval(address indexed tokenOwner, address indexed spender, uint tokens); +} diff --git a/blockchain/contracts/ProofOfPhysicalAddress.sol b/blockchain/contracts/ProofOfPhysicalAddress.sol index 543f3557..5758fa5e 100644 --- a/blockchain/contracts/ProofOfPhysicalAddress.sol +++ b/blockchain/contracts/ProofOfPhysicalAddress.sol @@ -2,6 +2,7 @@ pragma solidity 0.4.19; import "./EthereumClaimsRegistryInterface.sol"; import "./PhysicalAddressClaim.sol"; +import "./ERC20.sol"; // Checks -> Effects -> Interactions @@ -45,6 +46,10 @@ contract ProofOfPhysicalAddress { uint64 public totalAddresses; uint64 public totalConfirmed; + // Events: + + event ClaimedTokens(address token, address to, uint256 amount); + // Modifiers: modifier onlyOwner() { require(msg.sender == owner); @@ -343,4 +348,14 @@ contract ProofOfPhysicalAddress { registry.setClaim(msg.sender, keccakIdentifier, PhysicalAddressClaim.encode(block.number)); totalConfirmed += 1; } + + function claimTokens(address _token, address _to) public onlyOwner { + require(_token != address(0)); + require(_to != address(0)); + + ERC20 token = ERC20(_token); + uint256 balance = token.balanceOf(this); + token.transfer(_to, balance); + ClaimedTokens(_token, _to, balance); + } } From 516653b125d778c97e85a8d7c2f3d49bcd8db409 Mon Sep 17 00:00:00 2001 From: Franco Victorio Date: Wed, 16 May 2018 12:35:52 -0300 Subject: [PATCH 3/3] Add tests for claimTokens --- blockchain/.solcover.js | 1 + blockchain/contracts/TestERC20.sol | 44 ++++++++++++++++++ blockchain/migrations/1522104575_popa.js | 7 ++- blockchain/package.json | 2 +- blockchain/test/proof_of_physical_address.js | 48 ++++++++++++++++++++ 5 files changed, 100 insertions(+), 2 deletions(-) create mode 100644 blockchain/contracts/TestERC20.sol diff --git a/blockchain/.solcover.js b/blockchain/.solcover.js index 9cc96d22..8afe9bcd 100644 --- a/blockchain/.solcover.js +++ b/blockchain/.solcover.js @@ -2,4 +2,5 @@ module.exports = { testrpcOptions: '-p 8555 --mnemonic "toddler weather rocket off sentence chat unlock flame organ shuffle treat awful"', compileCommand: '../node_modules/.bin/truffle compile', testCommand: '../node_modules/.bin/truffle test --network coverage', + skipFiles: ['ERC20.sol', 'TestERC20.sol'], }; diff --git a/blockchain/contracts/TestERC20.sol b/blockchain/contracts/TestERC20.sol new file mode 100644 index 00000000..f7dbd7df --- /dev/null +++ b/blockchain/contracts/TestERC20.sol @@ -0,0 +1,44 @@ +pragma solidity 0.4.19; + +import "./ERC20.sol"; + + +// contract used in the tests for ProofOfPhysicalAddress +contract TestERC20 is ERC20 { + uint256 public _totalSupply = 1000; + + mapping(address => uint256) balances; + + function TestERC20() public { + balances[msg.sender] = _totalSupply; + } + + function totalSupply() public constant returns (uint256) { + return _totalSupply; + } + + function balanceOf(address tokenOwner) public constant returns (uint256) { + return balances[tokenOwner]; + } + + function transfer(address to, uint256 tokens) public returns (bool success) { + balances[msg.sender] = balances[msg.sender] - tokens; + balances[to] = balances[to] + tokens; + return true; + } + + // not implemented + // the bodies are just to avoid compiler warnings + function allowance(address tokenOwner, address spender) public constant returns (uint remaining) { + tokenOwner; spender; + return 0; + } + function approve(address spender, uint tokens) public returns (bool success) { + spender; tokens; + return false; + } + function transferFrom(address from, address to, uint tokens) public returns (bool success) { + from; to; tokens; + return false; + } +} diff --git a/blockchain/migrations/1522104575_popa.js b/blockchain/migrations/1522104575_popa.js index bbcae9b8..f3c9b3b1 100644 --- a/blockchain/migrations/1522104575_popa.js +++ b/blockchain/migrations/1522104575_popa.js @@ -1,6 +1,7 @@ var POPA = artifacts.require('ProofOfPhysicalAddress'); var PhysicalAddressClaim = artifacts.require('PhysicalAddressClaim'); var EthereumClaimsRegistry = artifacts.require('EthereumClaimsRegistry'); +var TestERC20 = artifacts.require('TestERC20'); module.exports = function(deployer, network) { return deployer.then(async () => { @@ -8,7 +9,7 @@ module.exports = function(deployer, network) { await deployer.link(PhysicalAddressClaim, POPA); let ethereumClaimsRegistryAddress = null; - if (network === 'development' || network === 'coverage') { + if (network === 'development' || network === 'test' || network === 'coverage') { await deployer.deploy(EthereumClaimsRegistry); let ethereumClaimsRegistry = await EthereumClaimsRegistry.deployed(); ethereumClaimsRegistryAddress = ethereumClaimsRegistry.address; @@ -16,6 +17,10 @@ module.exports = function(deployer, network) { ethereumClaimsRegistryAddress = '0xaca1bcd8d0f5a9bfc95aff331da4c250cd9ac2da'; } + if (network === 'test' || network === 'coverage') { + await deployer.deploy(TestERC20); + } + await deployer.deploy(POPA, ethereumClaimsRegistryAddress); }); }; diff --git a/blockchain/package.json b/blockchain/package.json index 7da1f489..78f2d7fd 100644 --- a/blockchain/package.json +++ b/blockchain/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "scripts": { "coverage": "NODE_ENV=test solidity-coverage", - "test": "NODE_ENV=test truffle test" + "test": "NODE_ENV=test truffle test --network test" }, "dependencies": {}, "devDependencies": { diff --git a/blockchain/test/proof_of_physical_address.js b/blockchain/test/proof_of_physical_address.js index 533c87fe..ca9a18ea 100644 --- a/blockchain/test/proof_of_physical_address.js +++ b/blockchain/test/proof_of_physical_address.js @@ -1,4 +1,5 @@ const ProofOfPhysicalAddress = artifacts.require('ProofOfPhysicalAddress'); +const TestERC20 = artifacts.require('TestERC20'); const BigNumber = require('bignumber.js'); // solidity-coverage copies all the files to a directory one level deeper, so @@ -973,6 +974,53 @@ contract('setRegistry', function(accounts) { }); }); +contract('claimTokens', function(accounts) { + contract('', () => { + it('should allow the owner to send tokens in the contract to another user', async () => { + const popa = await ProofOfPhysicalAddress.deployed(); + const token = await TestERC20.deployed(); + + const initialBalance = Number(await token.balanceOf(accounts[0])); + + await token.transfer(popa.address, initialBalance); + + assert.equal(Number(await token.balanceOf(popa.address)), initialBalance); + assert.equal(Number(await token.balanceOf(accounts[0])), 0); + + await popa.claimTokens(token.address, accounts[0]); + + assert.equal(Number(await token.balanceOf(popa.address)), 0); + assert.equal(Number(await token.balanceOf(accounts[0])), initialBalance); + }); + }); + + contract('', () => { + it('should revert if token address is 0', async () => { + const popa = await ProofOfPhysicalAddress.deployed(); + + return popa.claimTokens('0x0', accounts[0]) + .then( + () => assert.fail(), // should reject + () => {} + ); + }); + }); + + contract('', () => { + it('should revert if recipient address is 0', async () => { + const popa = await ProofOfPhysicalAddress.deployed(); + const token = await TestERC20.deployed(); + + return popa.claimTokens(token.address, '0x0') + .then( + () => assert.fail(), // should reject + () => {} + ); + }); + }); + +}); + contract('helpers', function(accounts) { // userExists contract('', () => {