{
  "contractName": "ERC20SaleInputsRenderer",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "TOKEN_ADDRESS",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "WHITEPAPER_URL",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "PROJECT_NAME",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "COVER_IMAGE_URL",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "LOGO_URL",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "SALE_NAME",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "PROJECT_DESCRIPTION",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "WEBSITE_URL",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "VIDEO_URL",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "UPDATE_CONFIRM",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "UPDATE",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "PROJECT_SUMMARY",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "locale",
          "type": "string"
        },
        {
          "name": "key",
          "type": "string"
        },
        {
          "name": "value",
          "type": "string"
        }
      ],
      "name": "setResource",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "locale",
          "type": "string"
        },
        {
          "name": "key",
          "type": "string"
        }
      ],
      "name": "resource",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipRenounced",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_locale",
          "type": "string"
        },
        {
          "name": "_sale",
          "type": "address"
        }
      ],
      "name": "render",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260008054600160a060020a03191633179055613865806100256000396000f3006080604052600436106100e25763ffffffff60e060020a6000350416630bdf530081146100e757806320350b5b146101715780632a3bd17f14610186578063335d4b6d1461019b57806361f57b0b146101b0578063663a7ae7146101c5578063715018a6146101da57806371d55e0a146101f15780637588309d146102065780638da5cb5b1461021b5780638eda97ed1461024c578063b07b3c7814610261578063ca1a70be14610276578063d30f6e20146102da578063de4213dd146102ef578063ed3487fe14610304578063f2fde38b146103d9578063f65a5c1b146103fa575b600080fd5b3480156100f357600080fd5b506100fc610491565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561013657818101518382015260200161011e565b50505050905090810190601f1680156101635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017d57600080fd5b506100fc6104c8565b34801561019257600080fd5b506100fc6104ff565b3480156101a757600080fd5b506100fc610536565b3480156101bc57600080fd5b506100fc61056d565b3480156101d157600080fd5b506100fc6105a4565b3480156101e657600080fd5b506101ef6105db565b005b3480156101fd57600080fd5b506100fc610647565b34801561021257600080fd5b506100fc61067e565b34801561022757600080fd5b506102306106b5565b60408051600160a060020a039092168252519081900360200190f35b34801561025857600080fd5b506100fc6106c4565b34801561026d57600080fd5b506100fc6106fb565b34801561028257600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100fc94369492936024939284019190819084018382808284375094975050509235600160a060020a0316935061073292505050565b3480156102e657600080fd5b506100fc61269c565b3480156102fb57600080fd5b506100fc6126d3565b34801561031057600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101ef94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975061270a9650505050505050565b3480156103e557600080fd5b506101ef600160a060020a03600435166127f7565b34801561040657600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100fc94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975061281a9650505050505050565b60408051808201909152600d81527f746f6b656e5f6164647265737300000000000000000000000000000000000000602082015281565b60408051808201909152600e81527f776869746570617065725f75726c000000000000000000000000000000000000602082015281565b60408051808201909152600c81527f70726f6a6563745f6e616d650000000000000000000000000000000000000000602082015281565b60408051808201909152600f81527f636f7665725f696d6167655f75726c0000000000000000000000000000000000602082015281565b60408051808201909152600881527f6c6f676f5f75726c000000000000000000000000000000000000000000000000602082015281565b60408051808201909152600981527f73616c655f6e616d650000000000000000000000000000000000000000000000602082015281565b600054600160a060020a031633146105f257600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60408051808201909152601381527f70726f6a6563745f6465736372697074696f6e00000000000000000000000000602082015281565b60408051808201909152600b81527f776562736974655f75726c000000000000000000000000000000000000000000602082015281565b600054600160a060020a031681565b60408051808201909152600981527f766964656f5f75726c0000000000000000000000000000000000000000000000602082015281565b60408051808201909152600e81527f7570646174655f636f6e6669726d000000000000000000000000000000000000602082015281565b60408051600b80825261018082019092526060918291829160009190816020015b61075b6135fe565b81526020019060019003908161075357905050925060e0604051908101604052806001151581526020016040805190810160405280600d81526020017f746f6b656e5f616464726573730000000000000000000000000000000000000081525081526020016040805190810160405280600b81526020017f616464726573734564697400000000000000000000000000000000000000000081525081526020016001886040518082805190602001908083835b6020831061082d5780518252601f19909201916020918201910161080e565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600d8087527f746f6b656e5f616464726573730000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106108b85780518252601f199092019160209182019101610899565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f600260018316159098029095011695909504928301829004820288018201905281875292945092505083018282801561096c5780601f106109415761010080835404028352916020019161096c565b820191906000526020600020905b81548152906001019060200180831161094f57829003601f168201915b505050505081526020016109f96109f488600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109ba57600080fd5b505af11580156109ce573d6000803e3d6000fd5b505050506040513d60208110156109e457600080fd5b5051600160a060020a031661296b565b612b12565b8152602001610a06612b76565b8152602001610a13612bc9565b9052835184906000908110610a2457fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600c81526020017f70726f6a6563745f6e616d65000000000000000000000000000000000000000081525081526020016040805190810160405280600881526020017f746578744564697400000000000000000000000000000000000000000000000081525081526020016001886040518082805190602001908083835b60208310610aee5780518252601f199092019160209182019101610acf565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600c8087527f70726f6a6563745f6e616d65000000000000000000000000000000000000000093870193845291519095945092508291908083835b60208310610b795780518252601f199092019160209182019101610b5a565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c2d5780601f10610c0257610100808354040283529160200191610c2d565b820191906000526020600020905b815481529060010190602001808311610c1057829003601f168201915b50505050508152602001610d0787600160a060020a0316639a33e3006040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b505af1158015610c8c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610cb557600080fd5b810190808051640100000000811115610ccd57600080fd5b82016020810184811115610ce057600080fd5b8151640100000000811182820187101715610cfa57600080fd5b5050929190505050612b12565b8152602001610d14612b76565b8152602001610d21612bc9565b9052835184906001908110610d3257fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600f81526020017f70726f6a6563745f73756d6d617279000000000000000000000000000000000081525081526020016040805190810160405280600881526020017f746578744564697400000000000000000000000000000000000000000000000081525081526020016001886040518082805190602001908083835b60208310610dfc5780518252601f199092019160209182019101610ddd565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600f8087527f70726f6a6563745f73756d6d617279000000000000000000000000000000000093870193845291519095945092508291908083835b60208310610e875780518252601f199092019160209182019101610e68565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610f3b5780601f10610f1057610100808354040283529160200191610f3b565b820191906000526020600020905b815481529060010190602001808311610f1e57829003601f168201915b50505050508152602001610f8687600160a060020a0316639ec318bf6040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b8152602001610f93612b76565b8152602001610fa0612bc9565b9052835184906002908110610fb157fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280601381526020017f70726f6a6563745f6465736372697074696f6e0000000000000000000000000081525081526020016040805190810160405280600c81526020017f6d61726b646f776e45646974000000000000000000000000000000000000000081525081526020016001886040518082805190602001908083835b6020831061107b5780518252601f19909201916020918201910161105c565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260138087527f70726f6a6563745f6465736372697074696f6e0000000000000000000000000093870193845291519095945092508291908083835b602083106111065780518252601f1990920191602091820191016110e7565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156111ba5780601f1061118f576101008083540402835291602001916111ba565b820191906000526020600020905b81548152906001019060200180831161119d57829003601f168201915b5050505050815260200161120587600160a060020a031663755f047b6040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b8152602001611212612b76565b815260200161121f612bc9565b905283518490600390811061123057fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600981526020017f73616c655f6e616d65000000000000000000000000000000000000000000000081525081526020016040805190810160405280600881526020017f746578744564697400000000000000000000000000000000000000000000000081525081526020016001886040518082805190602001908083835b602083106112fa5780518252601f1990920191602091820191016112db565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260098087527f73616c655f6e616d65000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106113855780518252601f199092019160209182019101611366565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156114395780601f1061140e57610100808354040283529160200191611439565b820191906000526020600020905b81548152906001019060200180831161141c57829003601f168201915b5050505050815260200161148487600160a060020a03166306fdde036040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b8152602001611491612b76565b815260200161149e612bc9565b90528351849060049081106114af57fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600881526020017f6c6f676f5f75726c000000000000000000000000000000000000000000000000815250815260200160408051908101604052806007815260200160008051602061377e83398151915281525081526020016001886040518082805190602001908083835b602083106115675780518252601f199092019160209182019101611548565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260088087527f6c6f676f5f75726c00000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106115f25780518252601f1990920191602091820191016115d3565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156116a65780601f1061167b576101008083540402835291602001916116a6565b820191906000526020600020905b81548152906001019060200180831161168957829003601f168201915b505050505081526020016116f187600160a060020a031663993d77af6040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b81526020016116fe612b76565b815260200161170b612bc9565b905283518490600590811061171c57fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600f81526020017f636f7665725f696d6167655f75726c0000000000000000000000000000000000815250815260200160408051908101604052806007815260200160008051602061377e83398151915281525081526020016001886040518082805190602001908083835b602083106117d45780518252601f1990920191602091820191016117b5565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600f8087527f636f7665725f696d6167655f75726c000000000000000000000000000000000093870193845291519095945092508291908083835b6020831061185f5780518252601f199092019160209182019101611840565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156119135780601f106118e857610100808354040283529160200191611913565b820191906000526020600020905b8154815290600101906020018083116118f657829003601f168201915b5050505050815260200161195e87600160a060020a031663dea53c206040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b815260200161196b612b76565b8152602001611978612bc9565b905283518490600690811061198957fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600b81526020017f776562736974655f75726c000000000000000000000000000000000000000000815250815260200160408051908101604052806007815260200160008051602061377e83398151915281525081526020016001886040518082805190602001908083835b60208310611a415780518252601f199092019160209182019101611a22565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600b8087527f776562736974655f75726c00000000000000000000000000000000000000000093870193845291519095945092508291908083835b60208310611acc5780518252601f199092019160209182019101611aad565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015611b805780601f10611b5557610100808354040283529160200191611b80565b820191906000526020600020905b815481529060010190602001808311611b6357829003601f168201915b50505050508152602001611bcb87600160a060020a031663abb5ca096040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b8152602001611bd8612b76565b8152602001611be5612bc9565b9052835184906007908110611bf657fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600e81526020017f776869746570617065725f75726c000000000000000000000000000000000000815250815260200160408051908101604052806007815260200160008051602061377e83398151915281525081526020016001886040518082805190602001908083835b60208310611cae5780518252601f199092019160209182019101611c8f565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600e8087527f776869746570617065725f75726c00000000000000000000000000000000000093870193845291519095945092508291908083835b60208310611d395780518252601f199092019160209182019101611d1a565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015611ded5780601f10611dc257610100808354040283529160200191611ded565b820191906000526020600020905b815481529060010190602001808311611dd057829003601f168201915b50505050508152602001611e3887600160a060020a0316632c7a72f86040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b8152602001611e45612b76565b8152602001611e52612bc9565b9052835184906008908110611e6357fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600981526020017f766964656f5f75726c0000000000000000000000000000000000000000000000815250815260200160408051908101604052806007815260200160008051602061377e83398151915281525081526020016001886040518082805190602001908083835b60208310611f1b5780518252601f199092019160209182019101611efc565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260098087527f766964656f5f75726c000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b60208310611fa65780518252601f199092019160209182019101611f87565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f600260018316159098029095011695909504928301829004820288018201905281875292945092505083018282801561205a5780601f1061202f5761010080835404028352916020019161205a565b820191906000526020600020905b81548152906001019060200180831161203d57829003601f168201915b505050505081526020016120a587600160a060020a03166373c9fbe26040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b81526020016120b2612b76565b81526020016120bf612bc9565b90528351849060099081106120d057fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600681526020017f757064617465000000000000000000000000000000000000000000000000000081525081526020016040805190810160405280600681526020017f627574746f6e000000000000000000000000000000000000000000000000000081525081526020016001886040518082805190602001908083835b6020831061219a5780518252601f19909201916020918201910161217b565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260068087527f757064617465000000000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106122255780518252601f199092019160209182019101612206565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156122d95780601f106122ae576101008083540402835291602001916122d9565b820191906000526020600020905b8154815290600101906020018083116122bc57829003601f168201915b505050505081526020016040805190810160405280600481526020017f6e756c6c00000000000000000000000000000000000000000000000000000000815250815260200160a06040519081016040528060011515815260200188600160a060020a03168152602001608060405190810160405280604e81526020017f75706461746528737472696e672c737472696e672c737472696e672c7374726981526020017f6e672c737472696e672c737472696e672c737472696e672c737472696e672c7381526020017f7472696e672c6164647265737329000000000000000000000000000000000000815250815260200160c060405190810160405280609c815260200161379e609c9139815260200160018a6040518082805190602001908083835b6020831061241b5780518252601f1990920191602091820191016123fc565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600e8087527f7570646174655f636f6e6669726d00000000000000000000000000000000000093870193845291519095945092508291908083835b602083106124a65780518252601f199092019160209182019101612487565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f600260018316159098029095011695909504928301829004820288018201905281875292945092505083018282801561255a5780601f1061252f5761010080835404028352916020019161255a565b820191906000526020600020905b81548152906001019060200180831161253d57829003601f168201915b5050505050815250815260200161256f612bc9565b905283518490600a90811061258057fe5b906020019060200201819052506040805190810160405280600181526020017f5b000000000000000000000000000000000000000000000000000000000000008152509150600090505b825181101561265157600081111561261c5761261961260460408051908101604052806001815260200160fa60020a600b02815250612c56565b61260d84612c56565b9063ffffffff612c7f16565b91505b612647612604612642858481518110151561263357fe5b90602001906020020151612cf6565b612c56565b91506001016125ca565b6126926126046040805190810160405280600181526020017f5d00000000000000000000000000000000000000000000000000000000000000815250612c56565b9695505050505050565b60408051808201909152600681527f7570646174650000000000000000000000000000000000000000000000000000602082015281565b60408051808201909152600f81527f70726f6a6563745f73756d6d6172790000000000000000000000000000000000602082015281565b600054600160a060020a0316331461272157600080fd5b806001846040518082805190602001908083835b602083106127545780518252601f199092019160209182019101612735565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842087519094889450925082918401908083835b602083106127b05780518252601f199092019160209182019101612791565b51815160209384036101000a600019018019909216911617905292019485525060405193849003810190932084516127f1959194919091019250905061364a565b50505050565b600054600160a060020a0316331461280e57600080fd5b61281781612fcb565b50565b60606001836040518082805190602001908083835b6020831061284e5780518252601f19909201916020918201910161282f565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b602083106128aa5780518252601f19909201916020918201910161288b565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f600260018316159098029095011695909504928301829004820288018201905281875292945092505083018282801561295e5780601f106129335761010080835404028352916020019161295e565b820191906000526020600020905b81548152906001019060200180831161294157829003601f168201915b5050505050905092915050565b60408051602a80825260608083019093528291600091829182916020820161054080388339505081519195507f30000000000000000000000000000000000000000000000000000000000000009186915060009081106129c757fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535083517f78000000000000000000000000000000000000000000000000000000000000009085906001908110612a2857fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350859250600091505b6028821015612b0857506030600f8316016039600160a060020a0382161115612a87576027015b807f0100000000000000000000000000000000000000000000000000000000000000028483602803600101815181101515612abe57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506010600160a060020a038416049250600190910190612a60565b5091949350505050565b6060612b70612b3c60408051908101604052806001815260200160f960020a601102815250612c56565b61260d612642612b4b86612c56565b61260d60408051908101604052806001815260200160f960020a601102815250612c56565b92915050565b612b7e6136c8565b506040805160a0810182526000808252602080830182905283518082018552828152838501528351808201855282815260608401528351908101909352825260808101919091525b90565b612bd16136f5565b60408051606081018252600080825282518181526020818101909452919283019190612c13565b612c00613719565b815260200190600190039081612bf85790505b5081526020016000604051908082528060200260200182016040528015612c4e57816020015b6060815260200190600190039081612c395790505b509052905090565b612c5e61374c565b50604080518082019091528151815260208281019082018190525b50919050565b606080600083600001518560000151016040519080825280601f01601f191660200182016040528015612cbc578160200160208202803883390190505b509150602082019050612cd88186602001518760000151613048565b845160208501518551612cee9284019190613048565b509392505050565b606080826000015115612f90576040805190810160405280600781526020017f7b226964223a22000000000000000000000000000000000000000000000000008152509050612d54612d4b8460200151612c56565b61260d83612c56565b9050612d7e612d4b60408051908101604052806001815260200160f960020a601102815250612c56565b60a08401515190915015612de557612dcd612d4b6040805190810160405280600b81526020017f2c2022616374696f6e223a000000000000000000000000000000000000000000815250612c56565b9050612de2612d4b6126428560a0015161308c565b90505b60c08301515115612e4957612e31612d4b6040805190810160405280600a81526020017f2c20227461626c65223a00000000000000000000000000000000000000000000815250612c56565b9050612e46612d4b6126428560c0015161322f565b90505b612e8a612d4b6040805190810160405280600981526020017f2c2274797065223a220000000000000000000000000000000000000000000000815250612c56565b9050612e9c612d4b8460400151612c56565b9050612edf612d4b6040805190810160405280600b81526020017f222c226c6162656c223a22000000000000000000000000000000000000000000815250612c56565b9050612ef1612d4b8460600151612c56565b9050612f34612d4b6040805190810160405280600981526020017f222c2264617461223a0000000000000000000000000000000000000000000000815250612c56565b9050612f46612d4b8460800151612c56565b9050612f89612d4b6040805190810160405280600181526020017f7d00000000000000000000000000000000000000000000000000000000000000815250612c56565b9150612c79565b60408051808201909152600481527f6e756c6c0000000000000000000000000000000000000000000000000000000060208201529150612c79565b600160a060020a0381161515612fe057600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005b6020821061306d578251845260209384019390920191601f199091019061304b565b50905182516020929092036101000a6000190180199091169116179052565b606080826000015115612f90576040805190810160405280600c81526020017f7b2261646472657373223a22000000000000000000000000000000000000000081525090506130ed612d4b6126428560200151600160a060020a031661296b565b9050613130612d4b6040805190810160405280601681526020017f222c2266756e6374696f6e53656c6563746f72223a2200000000000000000000815250612c56565b9050613142612d4b8460400151612c56565b9050613185612d4b6040805190810160405280600e81526020017f222c22617267756d656e7473223a000000000000000000000000000000000000815250612c56565b9050613197612d4b8460600151612c56565b90506131da612d4b6040805190810160405280600c81526020017f2c22636f6e6669726d223a220000000000000000000000000000000000000000815250612c56565b90506131ec612d4b8460800151612c56565b9050612f89612d4b6040805190810160405280600281526020017f227d000000000000000000000000000000000000000000000000000000000000815250612c56565b60608060008084600001511561340757505060408051808201909152600c81527f7b22636f6c756d6e73223a5b0000000000000000000000000000000000000000602082015290506000805b8460200151518110156132fd5760008211156132c5576132c26132b960408051908101604052806001815260200160fa60020a600b02815250612c56565b61260d85612c56565b92505b6132ef6132b96126428760200151848151811015156132e057fe5b90602001906020020151613446565b92506001918201910161327b565b61333e6132b96040805190810160405280600a81526020017f5d2c22726f7773223a5b00000000000000000000000000000000000000000000815250612c56565b925060009150600090505b8460400151518110156133bf57600082111561338a576133876132b960408051908101604052806001815260200160fa60020a600b02815250612c56565b92505b6133b16132b98660400151838151811015156133a257fe5b90602001906020020151612c56565b925060019182019101613349565b6134006132b96040805190810160405280600281526020017f5d7d000000000000000000000000000000000000000000000000000000000000815250612c56565b935061343e565b60408051808201909152600481527f6e756c6c00000000000000000000000000000000000000000000000000000000602082015293505b505050919050565b606080826000015115612f90576040805190810160405280600781526020017f7b226964223a2200000000000000000000000000000000000000000000000000815250905061349b612d4b8460200151612c56565b90506134c5612d4b60408051908101604052806001815260200160f960020a601102815250612c56565b60808401515190915015613556576134fb612d4b60408051908101604052806001815260200160fa60020a600b02815250612c56565b905061353e612d4b6040805190810160405280600981526020017f22616374696f6e223a0000000000000000000000000000000000000000000000815250612c56565b9050613553612d4b612642856080015161308c565b90505b613597612d4b6040805190810160405280600981526020017f2c2274797065223a220000000000000000000000000000000000000000000000815250612c56565b90506135a9612d4b8460400151612c56565b90506135ec612d4b6040805190810160405280600b81526020017f222c226c6162656c223a22000000000000000000000000000000000000000000815250612c56565b90506131ec612d4b8460600151612c56565b6101a060405190810160405280600015158152602001606081526020016060815260200160608152602001606081526020016136386136c8565b81526020016136456136f5565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061368b57805160ff19168380011785556136b8565b828001600101855582156136b8579182015b828111156136b857825182559160200191906001019061369d565b506136c4929150613763565b5090565b6040805160a081018252600080825260208201526060918101829052818101829052608081019190915290565b60606040519081016040528060001515815260200160608152602001606081525090565b610120604051908101604052806000151581526020016060815260200160608152602001606081526020016136456136c8565b604080518082019091526000808252602082015290565b612bc691905b808211156136c45760008155600101613769560075726c45646974000000000000000000000000000000000000000000000000005b2270726f6a6563745f6e616d65222c2270726f6a6563745f73756d6d617279222c2270726f6a6563745f6465736372697074696f6e222c226c6f676f5f75726c222c22636f7665725f696d6167655f75726c222c22776562736974655f75726c222c22776869746570617065725f75726c222c22766964656f5f75726c222c2273616c655f6e616d65222c22746f6b656e5f61646472657373225da165627a7a7230582034ad6d0a6d44e61da2dee711dd8d812c48a97b57bf4aae37ae0d2c96ec9e9b470029",
  "deployedBytecode": "0x6080604052600436106100e25763ffffffff60e060020a6000350416630bdf530081146100e757806320350b5b146101715780632a3bd17f14610186578063335d4b6d1461019b57806361f57b0b146101b0578063663a7ae7146101c5578063715018a6146101da57806371d55e0a146101f15780637588309d146102065780638da5cb5b1461021b5780638eda97ed1461024c578063b07b3c7814610261578063ca1a70be14610276578063d30f6e20146102da578063de4213dd146102ef578063ed3487fe14610304578063f2fde38b146103d9578063f65a5c1b146103fa575b600080fd5b3480156100f357600080fd5b506100fc610491565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561013657818101518382015260200161011e565b50505050905090810190601f1680156101635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017d57600080fd5b506100fc6104c8565b34801561019257600080fd5b506100fc6104ff565b3480156101a757600080fd5b506100fc610536565b3480156101bc57600080fd5b506100fc61056d565b3480156101d157600080fd5b506100fc6105a4565b3480156101e657600080fd5b506101ef6105db565b005b3480156101fd57600080fd5b506100fc610647565b34801561021257600080fd5b506100fc61067e565b34801561022757600080fd5b506102306106b5565b60408051600160a060020a039092168252519081900360200190f35b34801561025857600080fd5b506100fc6106c4565b34801561026d57600080fd5b506100fc6106fb565b34801561028257600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100fc94369492936024939284019190819084018382808284375094975050509235600160a060020a0316935061073292505050565b3480156102e657600080fd5b506100fc61269c565b3480156102fb57600080fd5b506100fc6126d3565b34801561031057600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101ef94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975061270a9650505050505050565b3480156103e557600080fd5b506101ef600160a060020a03600435166127f7565b34801561040657600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100fc94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975061281a9650505050505050565b60408051808201909152600d81527f746f6b656e5f6164647265737300000000000000000000000000000000000000602082015281565b60408051808201909152600e81527f776869746570617065725f75726c000000000000000000000000000000000000602082015281565b60408051808201909152600c81527f70726f6a6563745f6e616d650000000000000000000000000000000000000000602082015281565b60408051808201909152600f81527f636f7665725f696d6167655f75726c0000000000000000000000000000000000602082015281565b60408051808201909152600881527f6c6f676f5f75726c000000000000000000000000000000000000000000000000602082015281565b60408051808201909152600981527f73616c655f6e616d650000000000000000000000000000000000000000000000602082015281565b600054600160a060020a031633146105f257600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60408051808201909152601381527f70726f6a6563745f6465736372697074696f6e00000000000000000000000000602082015281565b60408051808201909152600b81527f776562736974655f75726c000000000000000000000000000000000000000000602082015281565b600054600160a060020a031681565b60408051808201909152600981527f766964656f5f75726c0000000000000000000000000000000000000000000000602082015281565b60408051808201909152600e81527f7570646174655f636f6e6669726d000000000000000000000000000000000000602082015281565b60408051600b80825261018082019092526060918291829160009190816020015b61075b6135fe565b81526020019060019003908161075357905050925060e0604051908101604052806001151581526020016040805190810160405280600d81526020017f746f6b656e5f616464726573730000000000000000000000000000000000000081525081526020016040805190810160405280600b81526020017f616464726573734564697400000000000000000000000000000000000000000081525081526020016001886040518082805190602001908083835b6020831061082d5780518252601f19909201916020918201910161080e565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600d8087527f746f6b656e5f616464726573730000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106108b85780518252601f199092019160209182019101610899565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f600260018316159098029095011695909504928301829004820288018201905281875292945092505083018282801561096c5780601f106109415761010080835404028352916020019161096c565b820191906000526020600020905b81548152906001019060200180831161094f57829003601f168201915b505050505081526020016109f96109f488600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109ba57600080fd5b505af11580156109ce573d6000803e3d6000fd5b505050506040513d60208110156109e457600080fd5b5051600160a060020a031661296b565b612b12565b8152602001610a06612b76565b8152602001610a13612bc9565b9052835184906000908110610a2457fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600c81526020017f70726f6a6563745f6e616d65000000000000000000000000000000000000000081525081526020016040805190810160405280600881526020017f746578744564697400000000000000000000000000000000000000000000000081525081526020016001886040518082805190602001908083835b60208310610aee5780518252601f199092019160209182019101610acf565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600c8087527f70726f6a6563745f6e616d65000000000000000000000000000000000000000093870193845291519095945092508291908083835b60208310610b795780518252601f199092019160209182019101610b5a565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c2d5780601f10610c0257610100808354040283529160200191610c2d565b820191906000526020600020905b815481529060010190602001808311610c1057829003601f168201915b50505050508152602001610d0787600160a060020a0316639a33e3006040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b505af1158015610c8c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610cb557600080fd5b810190808051640100000000811115610ccd57600080fd5b82016020810184811115610ce057600080fd5b8151640100000000811182820187101715610cfa57600080fd5b5050929190505050612b12565b8152602001610d14612b76565b8152602001610d21612bc9565b9052835184906001908110610d3257fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600f81526020017f70726f6a6563745f73756d6d617279000000000000000000000000000000000081525081526020016040805190810160405280600881526020017f746578744564697400000000000000000000000000000000000000000000000081525081526020016001886040518082805190602001908083835b60208310610dfc5780518252601f199092019160209182019101610ddd565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600f8087527f70726f6a6563745f73756d6d617279000000000000000000000000000000000093870193845291519095945092508291908083835b60208310610e875780518252601f199092019160209182019101610e68565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610f3b5780601f10610f1057610100808354040283529160200191610f3b565b820191906000526020600020905b815481529060010190602001808311610f1e57829003601f168201915b50505050508152602001610f8687600160a060020a0316639ec318bf6040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b8152602001610f93612b76565b8152602001610fa0612bc9565b9052835184906002908110610fb157fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280601381526020017f70726f6a6563745f6465736372697074696f6e0000000000000000000000000081525081526020016040805190810160405280600c81526020017f6d61726b646f776e45646974000000000000000000000000000000000000000081525081526020016001886040518082805190602001908083835b6020831061107b5780518252601f19909201916020918201910161105c565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260138087527f70726f6a6563745f6465736372697074696f6e0000000000000000000000000093870193845291519095945092508291908083835b602083106111065780518252601f1990920191602091820191016110e7565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156111ba5780601f1061118f576101008083540402835291602001916111ba565b820191906000526020600020905b81548152906001019060200180831161119d57829003601f168201915b5050505050815260200161120587600160a060020a031663755f047b6040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b8152602001611212612b76565b815260200161121f612bc9565b905283518490600390811061123057fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600981526020017f73616c655f6e616d65000000000000000000000000000000000000000000000081525081526020016040805190810160405280600881526020017f746578744564697400000000000000000000000000000000000000000000000081525081526020016001886040518082805190602001908083835b602083106112fa5780518252601f1990920191602091820191016112db565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260098087527f73616c655f6e616d65000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106113855780518252601f199092019160209182019101611366565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156114395780601f1061140e57610100808354040283529160200191611439565b820191906000526020600020905b81548152906001019060200180831161141c57829003601f168201915b5050505050815260200161148487600160a060020a03166306fdde036040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b8152602001611491612b76565b815260200161149e612bc9565b90528351849060049081106114af57fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600881526020017f6c6f676f5f75726c000000000000000000000000000000000000000000000000815250815260200160408051908101604052806007815260200160008051602061377e83398151915281525081526020016001886040518082805190602001908083835b602083106115675780518252601f199092019160209182019101611548565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260088087527f6c6f676f5f75726c00000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106115f25780518252601f1990920191602091820191016115d3565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156116a65780601f1061167b576101008083540402835291602001916116a6565b820191906000526020600020905b81548152906001019060200180831161168957829003601f168201915b505050505081526020016116f187600160a060020a031663993d77af6040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b81526020016116fe612b76565b815260200161170b612bc9565b905283518490600590811061171c57fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600f81526020017f636f7665725f696d6167655f75726c0000000000000000000000000000000000815250815260200160408051908101604052806007815260200160008051602061377e83398151915281525081526020016001886040518082805190602001908083835b602083106117d45780518252601f1990920191602091820191016117b5565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600f8087527f636f7665725f696d6167655f75726c000000000000000000000000000000000093870193845291519095945092508291908083835b6020831061185f5780518252601f199092019160209182019101611840565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156119135780601f106118e857610100808354040283529160200191611913565b820191906000526020600020905b8154815290600101906020018083116118f657829003601f168201915b5050505050815260200161195e87600160a060020a031663dea53c206040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b815260200161196b612b76565b8152602001611978612bc9565b905283518490600690811061198957fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600b81526020017f776562736974655f75726c000000000000000000000000000000000000000000815250815260200160408051908101604052806007815260200160008051602061377e83398151915281525081526020016001886040518082805190602001908083835b60208310611a415780518252601f199092019160209182019101611a22565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600b8087527f776562736974655f75726c00000000000000000000000000000000000000000093870193845291519095945092508291908083835b60208310611acc5780518252601f199092019160209182019101611aad565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015611b805780601f10611b5557610100808354040283529160200191611b80565b820191906000526020600020905b815481529060010190602001808311611b6357829003601f168201915b50505050508152602001611bcb87600160a060020a031663abb5ca096040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b8152602001611bd8612b76565b8152602001611be5612bc9565b9052835184906007908110611bf657fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600e81526020017f776869746570617065725f75726c000000000000000000000000000000000000815250815260200160408051908101604052806007815260200160008051602061377e83398151915281525081526020016001886040518082805190602001908083835b60208310611cae5780518252601f199092019160209182019101611c8f565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600e8087527f776869746570617065725f75726c00000000000000000000000000000000000093870193845291519095945092508291908083835b60208310611d395780518252601f199092019160209182019101611d1a565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015611ded5780601f10611dc257610100808354040283529160200191611ded565b820191906000526020600020905b815481529060010190602001808311611dd057829003601f168201915b50505050508152602001611e3887600160a060020a0316632c7a72f86040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b8152602001611e45612b76565b8152602001611e52612bc9565b9052835184906008908110611e6357fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600981526020017f766964656f5f75726c0000000000000000000000000000000000000000000000815250815260200160408051908101604052806007815260200160008051602061377e83398151915281525081526020016001886040518082805190602001908083835b60208310611f1b5780518252601f199092019160209182019101611efc565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260098087527f766964656f5f75726c000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b60208310611fa65780518252601f199092019160209182019101611f87565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f600260018316159098029095011695909504928301829004820288018201905281875292945092505083018282801561205a5780601f1061202f5761010080835404028352916020019161205a565b820191906000526020600020905b81548152906001019060200180831161203d57829003601f168201915b505050505081526020016120a587600160a060020a03166373c9fbe26040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7857600080fd5b81526020016120b2612b76565b81526020016120bf612bc9565b90528351849060099081106120d057fe5b9060200190602002018190525060e0604051908101604052806001151581526020016040805190810160405280600681526020017f757064617465000000000000000000000000000000000000000000000000000081525081526020016040805190810160405280600681526020017f627574746f6e000000000000000000000000000000000000000000000000000081525081526020016001886040518082805190602001908083835b6020831061219a5780518252601f19909201916020918201910161217b565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260068087527f757064617465000000000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106122255780518252601f199092019160209182019101612206565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156122d95780601f106122ae576101008083540402835291602001916122d9565b820191906000526020600020905b8154815290600101906020018083116122bc57829003601f168201915b505050505081526020016040805190810160405280600481526020017f6e756c6c00000000000000000000000000000000000000000000000000000000815250815260200160a06040519081016040528060011515815260200188600160a060020a03168152602001608060405190810160405280604e81526020017f75706461746528737472696e672c737472696e672c737472696e672c7374726981526020017f6e672c737472696e672c737472696e672c737472696e672c737472696e672c7381526020017f7472696e672c6164647265737329000000000000000000000000000000000000815250815260200160c060405190810160405280609c815260200161379e609c9139815260200160018a6040518082805190602001908083835b6020831061241b5780518252601f1990920191602091820191016123fc565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600e8087527f7570646174655f636f6e6669726d00000000000000000000000000000000000093870193845291519095945092508291908083835b602083106124a65780518252601f199092019160209182019101612487565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f600260018316159098029095011695909504928301829004820288018201905281875292945092505083018282801561255a5780601f1061252f5761010080835404028352916020019161255a565b820191906000526020600020905b81548152906001019060200180831161253d57829003601f168201915b5050505050815250815260200161256f612bc9565b905283518490600a90811061258057fe5b906020019060200201819052506040805190810160405280600181526020017f5b000000000000000000000000000000000000000000000000000000000000008152509150600090505b825181101561265157600081111561261c5761261961260460408051908101604052806001815260200160fa60020a600b02815250612c56565b61260d84612c56565b9063ffffffff612c7f16565b91505b612647612604612642858481518110151561263357fe5b90602001906020020151612cf6565b612c56565b91506001016125ca565b6126926126046040805190810160405280600181526020017f5d00000000000000000000000000000000000000000000000000000000000000815250612c56565b9695505050505050565b60408051808201909152600681527f7570646174650000000000000000000000000000000000000000000000000000602082015281565b60408051808201909152600f81527f70726f6a6563745f73756d6d6172790000000000000000000000000000000000602082015281565b600054600160a060020a0316331461272157600080fd5b806001846040518082805190602001908083835b602083106127545780518252601f199092019160209182019101612735565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842087519094889450925082918401908083835b602083106127b05780518252601f199092019160209182019101612791565b51815160209384036101000a600019018019909216911617905292019485525060405193849003810190932084516127f1959194919091019250905061364a565b50505050565b600054600160a060020a0316331461280e57600080fd5b61281781612fcb565b50565b60606001836040518082805190602001908083835b6020831061284e5780518252601f19909201916020918201910161282f565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b602083106128aa5780518252601f19909201916020918201910161288b565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f600260018316159098029095011695909504928301829004820288018201905281875292945092505083018282801561295e5780601f106129335761010080835404028352916020019161295e565b820191906000526020600020905b81548152906001019060200180831161294157829003601f168201915b5050505050905092915050565b60408051602a80825260608083019093528291600091829182916020820161054080388339505081519195507f30000000000000000000000000000000000000000000000000000000000000009186915060009081106129c757fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535083517f78000000000000000000000000000000000000000000000000000000000000009085906001908110612a2857fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350859250600091505b6028821015612b0857506030600f8316016039600160a060020a0382161115612a87576027015b807f0100000000000000000000000000000000000000000000000000000000000000028483602803600101815181101515612abe57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506010600160a060020a038416049250600190910190612a60565b5091949350505050565b6060612b70612b3c60408051908101604052806001815260200160f960020a601102815250612c56565b61260d612642612b4b86612c56565b61260d60408051908101604052806001815260200160f960020a601102815250612c56565b92915050565b612b7e6136c8565b506040805160a0810182526000808252602080830182905283518082018552828152838501528351808201855282815260608401528351908101909352825260808101919091525b90565b612bd16136f5565b60408051606081018252600080825282518181526020818101909452919283019190612c13565b612c00613719565b815260200190600190039081612bf85790505b5081526020016000604051908082528060200260200182016040528015612c4e57816020015b6060815260200190600190039081612c395790505b509052905090565b612c5e61374c565b50604080518082019091528151815260208281019082018190525b50919050565b606080600083600001518560000151016040519080825280601f01601f191660200182016040528015612cbc578160200160208202803883390190505b509150602082019050612cd88186602001518760000151613048565b845160208501518551612cee9284019190613048565b509392505050565b606080826000015115612f90576040805190810160405280600781526020017f7b226964223a22000000000000000000000000000000000000000000000000008152509050612d54612d4b8460200151612c56565b61260d83612c56565b9050612d7e612d4b60408051908101604052806001815260200160f960020a601102815250612c56565b60a08401515190915015612de557612dcd612d4b6040805190810160405280600b81526020017f2c2022616374696f6e223a000000000000000000000000000000000000000000815250612c56565b9050612de2612d4b6126428560a0015161308c565b90505b60c08301515115612e4957612e31612d4b6040805190810160405280600a81526020017f2c20227461626c65223a00000000000000000000000000000000000000000000815250612c56565b9050612e46612d4b6126428560c0015161322f565b90505b612e8a612d4b6040805190810160405280600981526020017f2c2274797065223a220000000000000000000000000000000000000000000000815250612c56565b9050612e9c612d4b8460400151612c56565b9050612edf612d4b6040805190810160405280600b81526020017f222c226c6162656c223a22000000000000000000000000000000000000000000815250612c56565b9050612ef1612d4b8460600151612c56565b9050612f34612d4b6040805190810160405280600981526020017f222c2264617461223a0000000000000000000000000000000000000000000000815250612c56565b9050612f46612d4b8460800151612c56565b9050612f89612d4b6040805190810160405280600181526020017f7d00000000000000000000000000000000000000000000000000000000000000815250612c56565b9150612c79565b60408051808201909152600481527f6e756c6c0000000000000000000000000000000000000000000000000000000060208201529150612c79565b600160a060020a0381161515612fe057600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005b6020821061306d578251845260209384019390920191601f199091019061304b565b50905182516020929092036101000a6000190180199091169116179052565b606080826000015115612f90576040805190810160405280600c81526020017f7b2261646472657373223a22000000000000000000000000000000000000000081525090506130ed612d4b6126428560200151600160a060020a031661296b565b9050613130612d4b6040805190810160405280601681526020017f222c2266756e6374696f6e53656c6563746f72223a2200000000000000000000815250612c56565b9050613142612d4b8460400151612c56565b9050613185612d4b6040805190810160405280600e81526020017f222c22617267756d656e7473223a000000000000000000000000000000000000815250612c56565b9050613197612d4b8460600151612c56565b90506131da612d4b6040805190810160405280600c81526020017f2c22636f6e6669726d223a220000000000000000000000000000000000000000815250612c56565b90506131ec612d4b8460800151612c56565b9050612f89612d4b6040805190810160405280600281526020017f227d000000000000000000000000000000000000000000000000000000000000815250612c56565b60608060008084600001511561340757505060408051808201909152600c81527f7b22636f6c756d6e73223a5b0000000000000000000000000000000000000000602082015290506000805b8460200151518110156132fd5760008211156132c5576132c26132b960408051908101604052806001815260200160fa60020a600b02815250612c56565b61260d85612c56565b92505b6132ef6132b96126428760200151848151811015156132e057fe5b90602001906020020151613446565b92506001918201910161327b565b61333e6132b96040805190810160405280600a81526020017f5d2c22726f7773223a5b00000000000000000000000000000000000000000000815250612c56565b925060009150600090505b8460400151518110156133bf57600082111561338a576133876132b960408051908101604052806001815260200160fa60020a600b02815250612c56565b92505b6133b16132b98660400151838151811015156133a257fe5b90602001906020020151612c56565b925060019182019101613349565b6134006132b96040805190810160405280600281526020017f5d7d000000000000000000000000000000000000000000000000000000000000815250612c56565b935061343e565b60408051808201909152600481527f6e756c6c00000000000000000000000000000000000000000000000000000000602082015293505b505050919050565b606080826000015115612f90576040805190810160405280600781526020017f7b226964223a2200000000000000000000000000000000000000000000000000815250905061349b612d4b8460200151612c56565b90506134c5612d4b60408051908101604052806001815260200160f960020a601102815250612c56565b60808401515190915015613556576134fb612d4b60408051908101604052806001815260200160fa60020a600b02815250612c56565b905061353e612d4b6040805190810160405280600981526020017f22616374696f6e223a0000000000000000000000000000000000000000000000815250612c56565b9050613553612d4b612642856080015161308c565b90505b613597612d4b6040805190810160405280600981526020017f2c2274797065223a220000000000000000000000000000000000000000000000815250612c56565b90506135a9612d4b8460400151612c56565b90506135ec612d4b6040805190810160405280600b81526020017f222c226c6162656c223a22000000000000000000000000000000000000000000815250612c56565b90506131ec612d4b8460600151612c56565b6101a060405190810160405280600015158152602001606081526020016060815260200160608152602001606081526020016136386136c8565b81526020016136456136f5565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061368b57805160ff19168380011785556136b8565b828001600101855582156136b8579182015b828111156136b857825182559160200191906001019061369d565b506136c4929150613763565b5090565b6040805160a081018252600080825260208201526060918101829052818101829052608081019190915290565b60606040519081016040528060001515815260200160608152602001606081525090565b610120604051908101604052806000151581526020016060815260200160608152602001606081526020016136456136c8565b604080518082019091526000808252602082015290565b612bc691905b808211156136c45760008155600101613769560075726c45646974000000000000000000000000000000000000000000000000005b2270726f6a6563745f6e616d65222c2270726f6a6563745f73756d6d617279222c2270726f6a6563745f6465736372697074696f6e222c226c6f676f5f75726c222c22636f7665725f696d6167655f75726c222c22776562736974655f75726c222c22776869746570617065725f75726c222c22766964656f5f75726c222c2273616c655f6e616d65222c22746f6b656e5f61646472657373225da165627a7a7230582034ad6d0a6d44e61da2dee711dd8d812c48a97b57bf4aae37ae0d2c96ec9e9b470029",
  "sourceMap": "309:4722:2:-;;;567:5:27;:18;;-1:-1:-1;;;;;;567:18:27;575:10;567:18;;;309:4722:2;;;;;;",
  "deployedSourceMap": "309:4722:2:-;;;;;;;;;-1:-1:-1;;;309:4722:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;572:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;572:54:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;572:54:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1048:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1048:56:2;;;;632:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;632:52:2;;;;928:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;928:58:2;;;;878:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;878:44:2;;;;826:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;826:46:2;;;;1001:111:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:27;;;;;;754:66:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;754:66:2;;;;992:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;992:50:2;;;;238:20:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:27;;;;;;;;-1:-1:-1;;;;;238:20:27;;;;;;;;;;;;;;1110:46:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1110:46:2;;;;1208:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1208:56:2;;;;1271:3758;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1271:3758:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1271:3758:2;;-1:-1:-1;;;1271:3758:2;;-1:-1:-1;;;;;1271:3758:2;;-1:-1:-1;1271:3758:2;;-1:-1:-1;;;1271:3758:2;1162:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1162:40:2;;;;690:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;690:58:2;;;;186:126:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;186:126:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;186:126:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;186:126:21;;;;-1:-1:-1;186:126:21;-1:-1:-1;186:126:21;;-1:-1:-1;186:126:21;;;;;;;;-1:-1:-1;;186:126:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;186:126:21;;;;-1:-1:-1;186:126:21;-1:-1:-1;186:126:21;;-1:-1:-1;186:126:21;;;;;;;;-1:-1:-1;186:126:21;;-1:-1:-1;186:126:21;;-1:-1:-1;;;;;;;186:126:21;1274:103:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:27;-1:-1:-1;;;;;1274:103:27;;;;;318:120:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;318:120:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;318:120:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;318:120:21;;;;-1:-1:-1;318:120:21;-1:-1:-1;318:120:21;;-1:-1:-1;318:120:21;;;;;;;;-1:-1:-1;318:120:21;;-1:-1:-1;318:120:21;;-1:-1:-1;;;;;;;318:120:21;572:54:2;;;;;;;;;;;;;;;;;;;:::o;1048:56::-;;;;;;;;;;;;;;;;;;;:::o;632:52::-;;;;;;;;;;;;;;;;;;;:::o;928:58::-;;;;;;;;;;;;;;;;;;;:::o;878:44::-;;;;;;;;;;;;;;;;;;;:::o;826:46::-;;;;;;;;;;;;;;;;;;;:::o;1001:111:27:-;719:5;;-1:-1:-1;;;;;719:5:27;705:10;:19;697:28;;;;;;1077:5;;;1058:25;;-1:-1:-1;;;;;1077:5:27;;;;1058:25;;;1105:1;1089:18;;-1:-1:-1;;1089:18:27;;;1001:111::o;754:66:2:-;;;;;;;;;;;;;;;;;;;:::o;992:50::-;;;;;;;;;;;;;;;;;;;:::o;238:20:27:-;;;-1:-1:-1;;;;;238:20:27;;:::o;1110:46:2:-;;;;;;;;;;;;;;;;;;;:::o;1208:56::-;;;;;;;;;;;;;;;;;;;:::o;1271:3758::-;1396:26;;;1419:2;1396:26;;;;;;;;;1341:6;;;;;;4747;;1396:26;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1359:63;;1446:258;;;;;;;;;1476:4;1446:258;;;;;;1494:13;;;;;;;;;;;;;;;;;;1446:258;;;;;;;;;;;;;;;;;;;;;;;;;;1548:9;1558:7;1548:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1548:18:2;;;;;-1:-1:-1;1548:18:2;;;;;;;;;;;1567:13;;;;;;;;;;;;;;;;1548:33;;:18;;;-1:-1:-1;1548:33:2;-1:-1:-1;1548:33:2;;1567:13;;1548:33;1567:13;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;1548::2;;;;;;;;;;;;;;;;;;1446:258;;;;274:1:-1;1446:258:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1548:33;;-1:-1:-1;1446:258:2;-1:-1:-1;;1446:258:2;;1548:33;1446:258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1595:42;:33;1603:5;-1:-1:-1;;;;;1603:11:2;;:13;;;;;-1:-1:-1;;;1603:13:2;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1603:13:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1603:13:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1603:13:2;-1:-1:-1;;;;;1595:31:2;;:33::i;:::-;:40;:42::i;:::-;1446:258;;;;1651:15;:13;:15::i;:::-;1446:258;;;;1680:14;:12;:14::i;:::-;1446:258;;1432:11;;:8;;1441:1;;1432:11;;;;;;;;;;;;;:272;;;;1728:239;;;;;;;;;1758:4;1728:239;;;;;;1776:12;;;;;;;;;;;;;;;;;;1728:239;;;;;;;;;;;;;;;;;;;;;;;;;;1826:9;1836:7;1826:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1826:18:2;;;;;-1:-1:-1;1826:18:2;;;;;;;;;;;1845:12;;;;;;;;;;;;;;;;1826:32;;:18;;;-1:-1:-1;1826:32:2;-1:-1:-1;1826:32:2;;1845:12;;1826:32;1845:12;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;1826:32:2;;;;;;;;;;;;;;;;;;1728:239;;;;274:1:-1;1728:239:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1826:32;;-1:-1:-1;1728:239:2;-1:-1:-1;;1728:239:2;;1826:32;1728:239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1872:28;:5;-1:-1:-1;;;;;1872:17:2;;:19;;;;;-1:-1:-1;;;1872:19:2;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1872:19:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1872:19:2;;;;;;39:16:-1;36:1;17:17;2:54;101:4;1872:19:2;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;1872:19:2;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;1872:19:2;;;;;;:26;:28::i;:::-;1728:239;;;;1914:15;:13;:15::i;:::-;1728:239;;;;1943:14;:12;:14::i;:::-;1728:239;;1714:11;;:8;;1723:1;;1714:11;;;;;;;;;;;;;:253;;;;1991:248;;;;;;;;;2021:4;1991:248;;;;;;2039:15;;;;;;;;;;;;;;;;;;1991:248;;;;;;;;;;;;;;;;;;;;;;;;;;2092:9;2102:7;2092:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2092:18:2;;;;;-1:-1:-1;2092:18:2;;;;;;;;;;;2111:15;;;;;;;;;;;;;;;;2092:35;;:18;;;-1:-1:-1;2092:35:2;-1:-1:-1;2092:35:2;;2111:15;;2092:35;2111:15;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;2092:35:2;;;;;;;;;;;;;;;;;;1991:248;;;;274:1:-1;1991:248:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2092:35;;-1:-1:-1;1991:248:2;-1:-1:-1;;1991:248:2;;2092:35;1991:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2141:31;:5;-1:-1:-1;;;;;2141:20:2;;:22;;;;;-1:-1:-1;;;2141:22:2;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;2141:31:2;1991:248;;;;2186:15;:13;:15::i;:::-;1991:248;;;;2215:14;:12;:14::i;:::-;1991:248;;1977:11;;:8;;1986:1;;1977:11;;;;;;;;;;;;;:262;;;;2263:264;;;;;;;;;2293:4;2263:264;;;;;;2311:19;;;;;;;;;;;;;;;;;;2263:264;;;;;;;;;;;;;;;;;;;;;;;;;;2372:9;2382:7;2372:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2372:18:2;;;;;-1:-1:-1;2372:18:2;;;;;;;;;;;2391:19;;;;;;;;;;;;;;;;2372:39;;:18;;;-1:-1:-1;2372:39:2;-1:-1:-1;2372:39:2;;2391:19;;2372:39;2391:19;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;2372:39:2;;;;;;;;;;;;;;;;;;2263:264;;;;274:1:-1;2263:264:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2372:39;;-1:-1:-1;2263:264:2;-1:-1:-1;;2263:264:2;;2372:39;2263:264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2425:35;:5;-1:-1:-1;;;;;2425:24:2;;:26;;;;;-1:-1:-1;;;2425:26:2;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;2425:35:2;2263:264;;;;2474:15;:13;:15::i;:::-;2263:264;;;;2503:14;:12;:14::i;:::-;2263:264;;2249:11;;:8;;2258:1;;2249:11;;;;;;;;;;;;;:278;;;;2551:226;;;;;;;;;2581:4;2551:226;;;;;;2599:9;;;;;;;;;;;;;;;;;;2551:226;;;;;;;;;;;;;;;;;;;;;;;;;;2646:9;2656:7;2646:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2646:18:2;;;;;-1:-1:-1;2646:18:2;;;;;;;;;;;2665:9;;;;;;;;;;;;;;;;2646:29;;:18;;;-1:-1:-1;2646:29:2;-1:-1:-1;2646:29:2;;2665:9;;2646:29;2665:9;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;2646:29:2;;;;;;;;;;;;;;;;;;2551:226;;;;274:1:-1;2551:226:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2646:29;;-1:-1:-1;2551:226:2;-1:-1:-1;;2551:226:2;;2646:29;2551:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2689:21;:5;-1:-1:-1;;;;;2689:10:2;;:12;;;;;-1:-1:-1;;;2689:12:2;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;2689:21:2;2551:226;;;;2724:15;:13;:15::i;:::-;2551:226;;;;2753:14;:12;:14::i;:::-;2551:226;;2537:11;;:8;;2546:1;;2537:11;;;;;;;;;;;;;:240;;;;2801:226;;;;;;;;;2831:4;2801:226;;;;;;2849:8;;;;;;;;;;;;;;;;;;2801:226;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2801:226:2;;;;;;;2894:9;2904:7;2894:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2894:18:2;;;;;-1:-1:-1;2894:18:2;;;;;;;;;;;2913:8;;;;;;;;;;;;;;;;2894:28;;:18;;;-1:-1:-1;2894:28:2;-1:-1:-1;2894:28:2;;2913:8;;2894:28;2913:8;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;2894:28:2;;;;;;;;;;;;;;;;;;2801:226;;;;274:1:-1;2801:226:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2894:28;;-1:-1:-1;2801:226:2;-1:-1:-1;;2801:226:2;;2894:28;2801:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2936:24;:5;-1:-1:-1;;;;;2936:13:2;;:15;;;;;-1:-1:-1;;;2936:15:2;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;2936:24:2;2801:226;;;;2974:15;:13;:15::i;:::-;2801:226;;;;3003:14;:12;:14::i;:::-;2801:226;;2787:11;;:8;;2796:1;;2787:11;;;;;;;;;;;;;:240;;;;3051:246;;;;;;;;;3081:4;3051:246;;;;;;3099:15;;;;;;;;;;;;;;;;;;3051:246;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3051:246:2;;;;;;;3151:9;3161:7;3151:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;3151:18:2;;;;;-1:-1:-1;3151:18:2;;;;;;;;;;;3170:15;;;;;;;;;;;;;;;;3151:35;;:18;;;-1:-1:-1;3151:35:2;-1:-1:-1;3151:35:2;;3170:15;;3151:35;3170:15;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;3151:35:2;;;;;;;;;;;;;;;;;;3051:246;;;;274:1:-1;3051:246:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3151:35;;-1:-1:-1;3051:246:2;-1:-1:-1;;3051:246:2;;3151:35;3051:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3200:30;:5;-1:-1:-1;;;;;3200:19:2;;:21;;;;;-1:-1:-1;;;3200:21:2;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;3200:30:2;3051:246;;;;3244:15;:13;:15::i;:::-;3051:246;;;;3273:14;:12;:14::i;:::-;3051:246;;3037:11;;:8;;3046:1;;3037:11;;;;;;;;;;;;;:260;;;;3321:235;;;;;;;;;3351:4;3321:235;;;;;;3369:11;;;;;;;;;;;;;;;;;;3321:235;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3321:235:2;;;;;;;3417:9;3427:7;3417:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;3417:18:2;;;;;-1:-1:-1;3417:18:2;;;;;;;;;;;3436:11;;;;;;;;;;;;;;;;3417:31;;:18;;;-1:-1:-1;3417:31:2;-1:-1:-1;3417:31:2;;3436:11;;3417:31;3436:11;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;3417:31:2;;;;;;;;;;;;;;;;;;3321:235;;;;274:1:-1;3321:235:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3417:31;;-1:-1:-1;3321:235:2;-1:-1:-1;;3321:235:2;;3417:31;3321:235;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3462:27;:5;-1:-1:-1;;;;;3462:16:2;;:18;;;;;-1:-1:-1;;;3462:18:2;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;3462:27:2;3321:235;;;;3503:15;:13;:15::i;:::-;3321:235;;;;3532:14;:12;:14::i;:::-;3321:235;;3307:11;;:8;;3316:1;;3307:11;;;;;;;;;;;;;:249;;;;3580:244;;;;;;;;;3610:4;3580:244;;;;;;3628:14;;;;;;;;;;;;;;;;;;3580:244;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3580:244:2;;;;;;;3679:9;3689:7;3679:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;3679:18:2;;;;;-1:-1:-1;3679:18:2;;;;;;;;;;;3698:14;;;;;;;;;;;;;;;;3679:34;;:18;;;-1:-1:-1;3679:34:2;-1:-1:-1;3679:34:2;;3698:14;;3679:34;3698:14;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;3679:34:2;;;;;;;;;;;;;;;;;;3580:244;;;;274:1:-1;3580:244:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3679:34;;-1:-1:-1;3580:244:2;-1:-1:-1;;3580:244:2;;3679:34;3580:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3727:30;:5;-1:-1:-1;;;;;3727:19:2;;:21;;;;;-1:-1:-1;;;3727:21:2;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;3727:30:2;3580:244;;;;3771:15;:13;:15::i;:::-;3580:244;;;;3800:14;:12;:14::i;:::-;3580:244;;3566:11;;:8;;3575:1;;3566:11;;;;;;;;;;;;;:258;;;;3848:229;;;;;;;;;3878:4;3848:229;;;;;;3896:9;;;;;;;;;;;;;;;;;;3848:229;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3848:229:2;;;;;;;3942:9;3952:7;3942:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;3942:18:2;;;;;-1:-1:-1;3942:18:2;;;;;;;;;;;3961:9;;;;;;;;;;;;;;;;3942:29;;:18;;;-1:-1:-1;3942:29:2;-1:-1:-1;3942:29:2;;3961:9;;3942:29;3961:9;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;3942:29:2;;;;;;;;;;;;;;;;;;3848:229;;;;274:1:-1;3848:229:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3942:29;;-1:-1:-1;3848:229:2;-1:-1:-1;;3848:229:2;;3942:29;3848:229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3985:25;:5;-1:-1:-1;;;;;3985:14:2;;:16;;;;;-1:-1:-1;;;3985:16:2;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;3985:25:2;3848:229;;;;4024:15;:13;:15::i;:::-;3848:229;;;;4053:14;:12;:14::i;:::-;3848:229;;3834:11;;:8;;3843:1;;3834:11;;;;;;;;;;;;;:243;;;;4102:596;;;;;;;;;4132:4;4102:596;;;;;;4150:6;;;;;;;;;;;;;;;;;;4102:596;;;;;;;;;;;;;;;;;;;;;;;;;;4192:9;4202:7;4192:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;4192:18:2;;;;;-1:-1:-1;4192:18:2;;;;;;;;;;;4211:6;;;;;;;;;;;;;;;;4192:26;;:18;;;-1:-1:-1;4192:26:2;-1:-1:-1;4192:26:2;;4211:6;;4192:26;4211:6;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;4192:26:2;;;;;;;;;;;;;;;;;;4102:596;;;;274:1:-1;4102:596:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4192:26;;-1:-1:-1;4102:596:2;-1:-1:-1;;4102:596:2;;4192:26;4102:596;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4252:408;;;;;;;;;4284:4;4252:408;;;;;;4314:5;-1:-1:-1;;;;;4252:408:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4612:9;4622:7;4612:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;4612:18:2;;;;;-1:-1:-1;4612:18:2;;;;;;;;;;;4631:14;;;;;;;;;;;;;;;;4612:34;;:18;;;-1:-1:-1;4612:34:2;-1:-1:-1;4612:34:2;;4631:14;;4612:34;4631:14;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;4612:34:2;;;;;;;;;;;;;;;;;;4252:408;;;;274:1:-1;4252:408:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4612:34;;-1:-1:-1;4252:408:2;-1:-1:-1;;4252:408:2;;4612:34;4252:408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4102:596;;;;4674:14;:12;:14::i;:::-;4102:596;;4087:12;;:8;;4096:2;;4087:12;;;;;;;;;;;;;:611;;;;4708:24;;;;;;;;;;;;;;;;;;;;4756:1;4747:10;;4742:228;4763:8;:15;4759:1;:19;4742:228;;;4807:1;4803;:5;4799:87;;;4835:36;4857:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;4857:11:2;;;;:13::i;:::-;4835:14;:4;:12;:14::i;:::-;:21;:36;:21;:36;:::i;:::-;4828:43;;4799:87;4906:53;4928:30;:20;:8;4937:1;4928:11;;;;;;;;;;;;;;;;;;:18;:20::i;:::-;:28;:30::i;4906:53::-;4899:60;-1:-1:-1;4780:3:2;;4742:228;;;4986:36;5008:13;:11;;;;;;;;;;;;;;;;;;;:13::i;4986:36::-;4979:43;1271:3758;-1:-1:-1;;;;;;1271:3758:2:o;1162:40::-;;;;;;;;;;;;;;;;;;;:::o;690:58::-;;;;;;;;;;;;;;;;;;;:::o;186:126:21:-;719:5:27;;-1:-1:-1;;;;;719:5:27;705:10;:19;697:28;;;;;;300:5:21;275:9;285:6;275:17;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;275:17:21;;;;;-1:-1:-1;275:17:21;;;;;;;;;;:22;;:17;;:22;;-1:-1:-1;275:17:21;-1:-1:-1;275:17:21;;:22;;;;:17;:22;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;275:22:21;;;;;-1:-1:-1;275:22:21;;;;;;;;;;;:30;;;;:22;;:30;;;;;-1:-1:-1;275:30:21;-1:-1:-1;275:30:21;:::i;:::-;;186:126;;;:::o;1274:103:27:-;719:5;;-1:-1:-1;;;;;719:5:27;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;318:120:21:-;384:6;409:9;419:6;409:17;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;409:17:21;;;;;-1:-1:-1;409:17:21;;;;;;;;;;:22;;:17;;:22;;-1:-1:-1;409:17:21;-1:-1:-1;409:17:21;;:22;;;;:17;:22;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;409:22:21;;;;;;;;;;;;;;;;;;402:29;;;;274:1:-1;402:29:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;409:22;;-1:-1:-1;402:29:21;-1:-1:-1;;402:29:21;;409:22;402:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;318:120;;;;:::o;206:443:14:-;307:13;;;317:2;307:13;;;262:6;307:13;;;;;;262:6;;387:11;;;;;;307:13;;;17:15:-1;;105:10;307:13:14;88:34:-1;-1:-1;;330:7:14;;287:33;;-1:-1:-1;340:8:14;;287:33;;-1:-1:-1;335:1:14;;330:7;;;;;;;;;;:18;;;;;;;;;;-1:-1:-1;358:7:14;;368:9;;358:4;;363:1;;358:7;;;;;;;;;;:19;;;;;;;;;;;409:5;387:28;;450:1;446:5;;441:173;457:2;453:1;:6;441:173;;;-1:-1:-1;505:2:14;493:8;;;492:15;529:2;-1:-1:-1;;;;;525:6:14;;;521:19;;;538:2;533:7;521:19;578:1;573:7;;554:4;564:1;559:2;:6;568:1;559:10;554:16;;;;;;;;;;;;;;:26;;;;;;;;;;-1:-1:-1;601:2:14;-1:-1:-1;;;;;594:9:14;;;;-1:-1:-1;461:3:14;;;;;441:173;;;-1:-1:-1;637:4:14;;206:443;-1:-1:-1;;;;206:443:14:o;103:158:16:-;158:6;183:71;240:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;240:11:16;;;;:13::i;:::-;183:49;:39;204:17;:7;:15;:17::i;:::-;183:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;183:11:16;;;;:13::i;:71::-;176:78;103:158;-1:-1:-1;;103:158:16:o;329:116:19:-;369:6;;:::i;:::-;-1:-1:-1;401:37:19;;;;;;;;-1:-1:-1;401:37:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;329:116;;:::o;374:124:23:-;414:5;;:::i;:::-;445:46;;;;;;;;-1:-1:-1;445:46:23;;;458:15;;;;;445:46;458:15;;;;;;445:46;;;;;458:15;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;445:46;;;;488:1;475:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;445:46:23;;438:53;-1:-1:-1;374:124:23;:::o;2837:210:18:-;2897:5;;:::i;:::-;-1:-1:-1;3010:30:18;;;;;;;;;3016:18;;3010:30;;2979:4;2969:15;;;3010:30;;;;;;2837:210;;;;;:::o;23944:355::-;24022:6;24047:17;24111:11;24090:5;:10;;;24078:4;:9;;;:22;24067:34;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;24067:34:18;;24047:54;;24162:2;24157:3;24153:12;24143:22;;24176:36;24183:6;24191:4;:9;;;24202:4;:9;;;24176:6;:36::i;:::-;24238:9;;24249:10;;;;24261;;24222:50;;24229:18;;;24249:10;24222:6;:50::i;:::-;-1:-1:-1;24289:3:18;23944:355;-1:-1:-1;;;23944:355:18:o;568:1172:20:-;629:6;679:18;651:5;:12;;;647:1087;;;679:30;;;;;;;;;;;;;;;;;;;;730:41;752:18;:5;:8;;;:16;:18::i;:::-;730:14;:4;:12;:14::i;:41::-;723:48;;792:36;814:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;814:11:20;;;;:13::i;792:36::-;846:12;;;;:19;785:43;;-1:-1:-1;842:190:20;;;892:46;914:23;:21;;;;;;;;;;;;;;;;;;;:23::i;892:46::-;885:53;;963:54;985:31;:21;:5;:12;;;:19;:21::i;963:54::-;956:61;;842:190;1049:11;;;;:18;1045:187;;;1094:45;1116:22;:20;;;;;;;;;;;;;;;;;;;:22::i;1094:45::-;1087:52;;1164:53;1186:30;:20;:5;:11;;;:18;:20::i;1164:53::-;1157:60;;1045:187;1252:44;1274:21;:19;;;;;;;;;;;;;;;;;;;:21::i;1252:44::-;1245:51;;1317:44;1339:21;:5;:11;;;:19;:21::i;1317:44::-;1310:51;;1382:46;1404:23;:21;;;;;;;;;;;;;;;;;;;:23::i;1382:46::-;1375:53;;1449:44;1471:21;:5;:11;;;:19;:21::i;1449:44::-;1442:51;;1514:44;1536:21;:19;;;;;;;;;;;;;;;;;;;:21::i;1514:44::-;1507:51;;1579:43;1601:20;:5;:10;;;:18;:20::i;1579:43::-;1572:50;;1643:36;1665:13;:11;;;;;;;;;;;;;;;;;;;:13::i;1643:36::-;1636:43;;;;647:1087;1710:13;;;;;;;;;;;;;;;;;;-1:-1:-1;1710:13:20;;1512:171:27;-1:-1:-1;;;;;1582:23:27;;;;1574:32;;;;;;1638:5;;;1617:38;;-1:-1:-1;;;;;1617:38:27;;;;1638:5;;;1617:38;;;1661:5;:17;;-1:-1:-1;;1661:17:27;-1:-1:-1;;;;;1661:17:27;;;;;;;;;;1512:171::o;2089:548:18:-;2415:9;2209:164;2222:2;2215:9;;2209:164;;2291:10;;2278:24;;2337:2;2329:10;;;;2353:9;;;;-1:-1:-1;;2226:9:18;;;;2209:164;;;-1:-1:-1;2500:10:18;;2555:11;;2435:2;:8;;;;2427:3;:17;-1:-1:-1;;2427:21:18;2512:9;;2496:26;;;2551:22;;2599:21;2586:35;;2467:164::o;451:765:19:-;511:6;561:18;533:5;:12;;;529:681;;;561:35;;;;;;;;;;;;;;;;;;;;617:52;639:29;:19;:5;:8;;;-1:-1:-1;;;;;639:17:19;;:19::i;617:52::-;610:59;;690:57;712:34;:32;;;;;;;;;;;;;;;;;;;:34::i;690:57::-;683:64;;768:55;790:32;:5;:22;;;:30;:32::i;768:55::-;761:62;;844:49;866:26;:24;;;;;;;;;;;;;;;;;;;:26::i;844:49::-;837:56;;914:48;936:25;:5;:15;;;:23;:25::i;914:48::-;907:55;;983:47;1005:24;:22;;;;;;;;;;;;;;;;;;;:24::i;983:47::-;976:54;;1051:46;1073:23;:5;:13;;;:21;:23::i;1051:46::-;1044:53;;1118:37;1140:14;:12;;;;;;;;;;;;;;;;;;;:14::i;504:978:23:-;563:6;613:18;662:11;696:6;585:5;:12;;;581:895;;;-1:-1:-1;;613:35:23;;;;;;;;;;;;;;;;;;-1:-1:-1;;;691:298:23;712:5;:13;;;:20;708:1;:24;691:298;;;770:1;761:6;:10;757:100;;;802:36;824:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;824:11:23;;;;:13::i;:::-;802:14;:4;:12;:14::i;:36::-;795:43;;757:100;881:64;903:41;:31;917:5;:13;;;931:1;917:16;;;;;;;;;;;;;;;;;;903:13;:31::i;881:64::-;874:71;-1:-1:-1;973:1:23;963:11;;;;734:3;691:298;;;1009:45;1031:22;:20;;;;;;;;;;;;;;;;;;;:22::i;1009:45::-;1002:52;;1077:1;1068:10;;1101:1;1097:5;;1092:272;1108:5;:10;;;:17;1104:1;:21;1092:272;;;1163:1;1154:6;:10;1150:100;;;1195:36;1217:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;1217:11:23;;;;:13::i;1195:36::-;1188:43;;1150:100;1274:46;1296:23;:5;:10;;;1307:1;1296:13;;;;;;;;;;;;;;;;;;:21;:23::i;1274:46::-;1267:53;-1:-1:-1;1348:1:23;1338:11;;;;1127:3;1092:272;;;1384:37;1406:14;:12;;;;;;;;;;;;;;;;;;;:14::i;1384:37::-;1377:44;;;;581:895;1452:13;;;;;;;;;;;;;;;;;;-1:-1:-1;581:895:23;504:978;;;;;;:::o;1488:909::-;1555:6;1605:18;1577:5;:12;;;1573:818;;;1605:30;;;;;;;;;;;;;;;;;;;;1656:41;1678:18;:5;:8;;;:16;:18::i;1656:41::-;1649:48;;1718:36;1740:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;1740:11:23;;;;:13::i;1718:36::-;1772:12;;;;:19;1711:43;;-1:-1:-1;1768:249:23;;;1818:36;1840:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;1840:11:23;;;;:13::i;1818:36::-;1811:43;;1879:44;1901:21;:19;;;;;;;;;;;;;;;;;;;:21::i;1879:44::-;1872:51;;1948:54;1970:31;:21;:5;:12;;;:19;:21::i;1948:54::-;1941:61;;1768:249;2037:44;2059:21;:19;;;;;;;;;;;;;;;;;;;:21::i;2037:44::-;2030:51;;2102:44;2124:21;:5;:11;;;:19;:21::i;2102:44::-;2095:51;;2167:46;2189:23;:21;;;;;;;;;;;;;;;;;;;:23::i;2167:46::-;2160:53;;2234:44;2256:21;:5;:11;;;:19;:21::i;309:4722:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;309:4722:2;;;-1:-1:-1;309:4722:2;:::i;:::-;;;:::o;:::-;;;;;;;;;-1:-1:-1;309:4722:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;309:4722:2;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;",
  "source": "pragma solidity ^0.4.24;\n\nimport \"./ERC20SaleWidgetRenderer.sol\";\nimport \"tokenboost-solidity/contracts/utils/UintUtils.sol\";\nimport \"tokenboost-solidity/contracts/utils/BoolUtils.sol\";\nimport \"tokenboost-solidity/contracts/utils/StringUtils.sol\";\nimport \"tokenboost-solidity/contracts/widget/Elements.sol\";\n\ncontract ERC20SaleInputsRenderer is ERC20SaleWidgetRenderer {\n    using strings for *;\n    using UintUtils for uint;\n    using BoolUtils for bool;\n    using AddressUtils for address;\n    using StringUtils for string;\n    using Elements for Elements.Element;\n\n    string public constant TOKEN_ADDRESS = \"token_address\";\n    string public constant PROJECT_NAME = \"project_name\";\n    string public constant PROJECT_SUMMARY = \"project_summary\";\n    string public constant PROJECT_DESCRIPTION = \"project_description\";\n    string public constant SALE_NAME = \"sale_name\";\n    string public constant LOGO_URL = \"logo_url\";\n    string public constant COVER_IMAGE_URL = \"cover_image_url\";\n    string public constant WEBSITE_URL = \"website_url\";\n    string public constant WHITEPAPER_URL = \"whitepaper_url\";\n    string public constant VIDEO_URL = \"video_url\";\n    string public constant UPDATE = \"update\";\n    string public constant UPDATE_CONFIRM = \"update_confirm\";\n\n    function render(string _locale, ERC20Sale _sale) public view returns (string) {\n        Elements.Element[] memory elements = new Elements.Element[](11);\n        elements[0] = Elements.Element(\n            true,\n            TOKEN_ADDRESS,\n            \"addressEdit\",\n            resources[_locale][TOKEN_ADDRESS],\n            address(_sale.token()).toString().quoted(),\n            Actions.empty(),\n            Tables.empty()\n        );\n        elements[1] = Elements.Element(\n            true,\n            PROJECT_NAME,\n            \"textEdit\",\n            resources[_locale][PROJECT_NAME],\n            _sale.projectName().quoted(),\n            Actions.empty(),\n            Tables.empty()\n        );\n        elements[2] = Elements.Element(\n            true,\n            PROJECT_SUMMARY,\n            \"textEdit\",\n            resources[_locale][PROJECT_SUMMARY],\n            _sale.projectSummary().quoted(),\n            Actions.empty(),\n            Tables.empty()\n        );\n        elements[3] = Elements.Element(\n            true,\n            PROJECT_DESCRIPTION,\n            \"markdownEdit\",\n            resources[_locale][PROJECT_DESCRIPTION],\n            _sale.projectDescription().quoted(),\n            Actions.empty(),\n            Tables.empty()\n        );\n        elements[4] = Elements.Element(\n            true,\n            SALE_NAME,\n            \"textEdit\",\n            resources[_locale][SALE_NAME],\n            _sale.name().quoted(),\n            Actions.empty(),\n            Tables.empty()\n        );\n        elements[5] = Elements.Element(\n            true,\n            LOGO_URL,\n            \"urlEdit\",\n            resources[_locale][LOGO_URL],\n            _sale.logoUrl().quoted(),\n            Actions.empty(),\n            Tables.empty()\n        );\n        elements[6] = Elements.Element(\n            true,\n            COVER_IMAGE_URL,\n            \"urlEdit\",\n            resources[_locale][COVER_IMAGE_URL],\n            _sale.coverImageUrl().quoted(),\n            Actions.empty(),\n            Tables.empty()\n        );\n        elements[7] = Elements.Element(\n            true,\n            WEBSITE_URL,\n            \"urlEdit\",\n            resources[_locale][WEBSITE_URL],\n            _sale.websiteUrl().quoted(),\n            Actions.empty(),\n            Tables.empty()\n        );\n        elements[8] = Elements.Element(\n            true,\n            WHITEPAPER_URL,\n            \"urlEdit\",\n            resources[_locale][WHITEPAPER_URL],\n            _sale.whitepaperUrl().quoted(),\n            Actions.empty(),\n            Tables.empty()\n        );\n        elements[9] = Elements.Element(\n            true,\n            VIDEO_URL,\n            \"urlEdit\",\n            resources[_locale][VIDEO_URL],\n            _sale.videoUrl().quoted(),\n            Actions.empty(),\n            Tables.empty()\n        );\n        elements[10] = Elements.Element(\n            true,\n            UPDATE,\n            \"button\",\n            resources[_locale][UPDATE],\n            \"null\",\n            Actions.Action(\n                true,\n                address(_sale),\n                \"update(string,string,string,string,string,string,string,string,string,address)\",\n                '[\"project_name\",\"project_summary\",\"project_description\",\"logo_url\",\"cover_image_url\",\"website_url\",\"whitepaper_url\",\"video_url\",\"sale_name\",\"token_address\"]',\n                resources[_locale][UPDATE_CONFIRM]\n            ),\n            Tables.empty()\n        );\n        string memory json = \"[\";\n        for (uint i = 0; i < elements.length; i++) {\n            if (i > 0) {\n                json = json.toSlice().concat(','.toSlice());\n            }\n            json = json.toSlice().concat(elements[i].toJson().toSlice());\n        }\n        return json.toSlice().concat(']'.toSlice());\n    }\n}\n",
  "sourcePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20sale/contracts/sale/erc20/widget/ERC20SaleInputsRenderer.sol",
  "ast": {
    "absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20sale/contracts/sale/erc20/widget/ERC20SaleInputsRenderer.sol",
    "exportedSymbols": {
      "ERC20SaleInputsRenderer": [
        914
      ]
    },
    "id": 915,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 467,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:2"
      },
      {
        "absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20sale/contracts/sale/erc20/widget/ERC20SaleWidgetRenderer.sol",
        "file": "./ERC20SaleWidgetRenderer.sol",
        "id": 468,
        "nodeType": "ImportDirective",
        "scope": 915,
        "sourceUnit": 1175,
        "src": "26:39:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/utils/UintUtils.sol",
        "file": "tokenboost-solidity/contracts/utils/UintUtils.sol",
        "id": 469,
        "nodeType": "ImportDirective",
        "scope": 915,
        "sourceUnit": 2639,
        "src": "66:59:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/utils/BoolUtils.sol",
        "file": "tokenboost-solidity/contracts/utils/BoolUtils.sol",
        "id": 470,
        "nodeType": "ImportDirective",
        "scope": 915,
        "sourceUnit": 2518,
        "src": "126:59:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/utils/StringUtils.sol",
        "file": "tokenboost-solidity/contracts/utils/StringUtils.sol",
        "id": 471,
        "nodeType": "ImportDirective",
        "scope": 915,
        "sourceUnit": 2548,
        "src": "186:61:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/widget/Elements.sol",
        "file": "tokenboost-solidity/contracts/widget/Elements.sol",
        "id": 472,
        "nodeType": "ImportDirective",
        "scope": 915,
        "sourceUnit": 4711,
        "src": "248:59:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 473,
              "name": "ERC20SaleWidgetRenderer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1174,
              "src": "345:23:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC20SaleWidgetRenderer_$1174",
                "typeString": "contract ERC20SaleWidgetRenderer"
              }
            },
            "id": 474,
            "nodeType": "InheritanceSpecifier",
            "src": "345:23:2"
          }
        ],
        "contractDependencies": [
          1174,
          4758,
          5355
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 914,
        "linearizedBaseContracts": [
          914,
          1174,
          4758,
          5355
        ],
        "name": "ERC20SaleInputsRenderer",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 476,
            "libraryName": {
              "contractScope": null,
              "id": 475,
              "name": "strings",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4333,
              "src": "381:7:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_strings_$4333",
                "typeString": "library strings"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "375:20:2",
            "typeName": null
          },
          {
            "id": 479,
            "libraryName": {
              "contractScope": null,
              "id": 477,
              "name": "UintUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2638,
              "src": "406:9:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_UintUtils_$2638",
                "typeString": "library UintUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "400:25:2",
            "typeName": {
              "id": 478,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "420:4:2",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "id": 482,
            "libraryName": {
              "contractScope": null,
              "id": 480,
              "name": "BoolUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2517,
              "src": "436:9:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BoolUtils_$2517",
                "typeString": "library BoolUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "430:25:2",
            "typeName": {
              "id": 481,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "450:4:2",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            }
          },
          {
            "id": 485,
            "libraryName": {
              "contractScope": null,
              "id": 483,
              "name": "AddressUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2498,
              "src": "466:12:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AddressUtils_$2498",
                "typeString": "library AddressUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "460:31:2",
            "typeName": {
              "id": 484,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "483:7:2",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            }
          },
          {
            "id": 488,
            "libraryName": {
              "contractScope": null,
              "id": 486,
              "name": "StringUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2547,
              "src": "502:11:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StringUtils_$2547",
                "typeString": "library StringUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "496:29:2",
            "typeName": {
              "id": 487,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "518:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            }
          },
          {
            "id": 491,
            "libraryName": {
              "contractScope": null,
              "id": 489,
              "name": "Elements",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4710,
              "src": "536:8:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Elements_$4710",
                "typeString": "library Elements"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "530:36:2",
            "typeName": {
              "contractScope": null,
              "id": 490,
              "name": "Elements.Element",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4509,
              "src": "549:16:2",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Element_$4509_storage_ptr",
                "typeString": "struct Elements.Element"
              }
            }
          },
          {
            "constant": true,
            "id": 494,
            "name": "TOKEN_ADDRESS",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "572:54:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 492,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "572:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "746f6b656e5f61646472657373",
              "id": 493,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "611:15:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_4cb59f37c0f9d09ea41ec01867728e0af61d0339b945f7d193fd07f4f96cfee8",
                "typeString": "literal_string \"token_address\""
              },
              "value": "token_address"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 497,
            "name": "PROJECT_NAME",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "632:52:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 495,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "632:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "70726f6a6563745f6e616d65",
              "id": 496,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "670:14:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_72206555397097457f51b53bf0d3762c8d79347aee8ab2f9e3ef30ce5499265c",
                "typeString": "literal_string \"project_name\""
              },
              "value": "project_name"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 500,
            "name": "PROJECT_SUMMARY",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "690:58:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 498,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "690:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "70726f6a6563745f73756d6d617279",
              "id": 499,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "731:17:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_6a2ed8f5483a87036b400cbf07741c161763af6b1f6a56bbbd6f4aa4bc8e8c1f",
                "typeString": "literal_string \"project_summary\""
              },
              "value": "project_summary"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 503,
            "name": "PROJECT_DESCRIPTION",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "754:66:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 501,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "754:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "70726f6a6563745f6465736372697074696f6e",
              "id": 502,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "799:21:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_6e41f72ce2506c3cece828c8356b65e8e2412bf05826d07c135f1e4acb3dd40c",
                "typeString": "literal_string \"project_description\""
              },
              "value": "project_description"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 506,
            "name": "SALE_NAME",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "826:46:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 504,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "826:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "73616c655f6e616d65",
              "id": 505,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "861:11:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_e5086e965e321904846ff4886201d28649e8ba86c6133f0c66bcb047a389a8d7",
                "typeString": "literal_string \"sale_name\""
              },
              "value": "sale_name"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 509,
            "name": "LOGO_URL",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "878:44:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 507,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "878:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6c6f676f5f75726c",
              "id": 508,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "912:10:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_92ff1fe1b0494891ed568e7f946a96d57ba0dd41ed346d87f77dd80a4188734b",
                "typeString": "literal_string \"logo_url\""
              },
              "value": "logo_url"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 512,
            "name": "COVER_IMAGE_URL",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "928:58:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 510,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "928:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "636f7665725f696d6167655f75726c",
              "id": 511,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "969:17:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_65f14844e0749f111d2ef9b73600be37ef7f5ef4170b6ef7bfd5575b4b792910",
                "typeString": "literal_string \"cover_image_url\""
              },
              "value": "cover_image_url"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 515,
            "name": "WEBSITE_URL",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "992:50:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 513,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "992:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "776562736974655f75726c",
              "id": 514,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1029:13:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_962a1cdc38e70bafa14ca64be23a3f9df08f016b5a4c14833b8458e473e8ed05",
                "typeString": "literal_string \"website_url\""
              },
              "value": "website_url"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 518,
            "name": "WHITEPAPER_URL",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "1048:56:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 516,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1048:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "776869746570617065725f75726c",
              "id": 517,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1088:16:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_72592107246b66a0a11c85d75ed23209fdf1ac5baffb96814de4099e3ea2154c",
                "typeString": "literal_string \"whitepaper_url\""
              },
              "value": "whitepaper_url"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 521,
            "name": "VIDEO_URL",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "1110:46:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 519,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1110:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "766964656f5f75726c",
              "id": 520,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1145:11:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_f8db688bf738fb7a8902c9484ac79dbbbb8fbc592863baca43968e00e311742c",
                "typeString": "literal_string \"video_url\""
              },
              "value": "video_url"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 524,
            "name": "UPDATE",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "1162:40:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 522,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1162:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "757064617465",
              "id": 523,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1194:8:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_5ef8d21b3c3919d0cb2b4728880495e379f8c1817d7867ff6b1360f2321f9598",
                "typeString": "literal_string \"update\""
              },
              "value": "update"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 527,
            "name": "UPDATE_CONFIRM",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "1208:56:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 525,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1208:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7570646174655f636f6e6669726d",
              "id": 526,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1248:16:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_393ccb80dc23ac0b3575aa245e34b77b706631c022f63fd616454fbfd294407e",
                "typeString": "literal_string \"update_confirm\""
              },
              "value": "update_confirm"
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 912,
              "nodeType": "Block",
              "src": "1349:3680:2",
              "statements": [
                {
                  "assignments": [
                    540
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 540,
                      "name": "elements",
                      "nodeType": "VariableDeclaration",
                      "scope": 913,
                      "src": "1359:34:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                        "typeString": "struct Elements.Element[]"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 538,
                          "name": "Elements.Element",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 4509,
                          "src": "1359:16:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Element_$4509_storage_ptr",
                            "typeString": "struct Elements.Element"
                          }
                        },
                        "id": 539,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1359:18:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_storage_$dyn_storage_ptr",
                          "typeString": "struct Elements.Element[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 546,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "3131",
                        "id": 544,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1419:2:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_11_by_1",
                          "typeString": "int_const 11"
                        },
                        "value": "11"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_11_by_1",
                          "typeString": "int_const 11"
                        }
                      ],
                      "id": 543,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1396:22:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Element_$4509_memory_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (struct Elements.Element memory[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 541,
                          "name": "Elements.Element",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 4509,
                          "src": "1400:16:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Element_$4509_storage_ptr",
                            "typeString": "struct Elements.Element"
                          }
                        },
                        "id": 542,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1400:18:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_storage_$dyn_storage_ptr",
                          "typeString": "struct Elements.Element[]"
                        }
                      }
                    },
                    "id": 545,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1396:26:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory",
                      "typeString": "struct Elements.Element memory[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1359:63:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 576,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 547,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "1432:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 549,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 548,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1441:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1432:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 552,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1476:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 553,
                          "name": "TOKEN_ADDRESS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 494,
                          "src": "1494:13:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "6164647265737345646974",
                          "id": 554,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1521:13:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_9da0ac31fc220ced4c03decd71d5120e5144f94b04cabb5c22d40a0b3ec00e0c",
                            "typeString": "literal_string \"addressEdit\""
                          },
                          "value": "addressEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 555,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "1548:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 557,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 556,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "1558:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1548:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 559,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 558,
                            "name": "TOKEN_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 494,
                            "src": "1567:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1548:33:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 561,
                                          "name": "_sale",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 531,
                                          "src": "1603:5:2",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                            "typeString": "contract ERC20Sale"
                                          }
                                        },
                                        "id": 562,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "token",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 29,
                                        "src": "1603:11:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ERC20_$5398_$",
                                          "typeString": "function () view external returns (contract ERC20)"
                                        }
                                      },
                                      "id": 563,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1603:13:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_ERC20_$5398",
                                        "typeString": "contract ERC20"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_ERC20_$5398",
                                        "typeString": "contract ERC20"
                                      }
                                    ],
                                    "id": 560,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "1595:7:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 564,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1595:22:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "id": 565,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "toString",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2497,
                                "src": "1595:31:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$bound_to$_t_address_$",
                                  "typeString": "function (address) pure returns (string memory)"
                                }
                              },
                              "id": 566,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1595:33:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "id": 567,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "1595:40:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 568,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1595:42:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 569,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "1651:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 570,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "1651:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 571,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1651:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 572,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "1680:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 573,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "1680:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 574,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1680:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_9da0ac31fc220ced4c03decd71d5120e5144f94b04cabb5c22d40a0b3ec00e0c",
                            "typeString": "literal_string \"addressEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 550,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "1446:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 551,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "1446:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 575,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1446:258:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "1432:272:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 577,
                  "nodeType": "ExpressionStatement",
                  "src": "1432:272:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 578,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "1714:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 580,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 579,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1723:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1714:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 583,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1758:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 584,
                          "name": "PROJECT_NAME",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 497,
                          "src": "1776:12:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "7465787445646974",
                          "id": 585,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1802:10:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_963dc6a95a4e7696efe631e725091702ed9b3841ec84deb82b0371983869e6af",
                            "typeString": "literal_string \"textEdit\""
                          },
                          "value": "textEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 586,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "1826:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 588,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 587,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "1836:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1826:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 590,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 589,
                            "name": "PROJECT_NAME",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 497,
                            "src": "1845:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1826:32:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 591,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "1872:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 592,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "projectName",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1339,
                                "src": "1872:17:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 593,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1872:19:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 594,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "1872:26:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 595,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1872:28:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 596,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "1914:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 597,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "1914:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 598,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1914:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 599,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "1943:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 600,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "1943:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 601,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1943:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_963dc6a95a4e7696efe631e725091702ed9b3841ec84deb82b0371983869e6af",
                            "typeString": "literal_string \"textEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 581,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "1728:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 582,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "1728:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 602,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1728:239:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "1714:253:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 604,
                  "nodeType": "ExpressionStatement",
                  "src": "1714:253:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 605,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "1977:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 607,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "32",
                        "id": 606,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1986:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1977:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 610,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2021:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 611,
                          "name": "PROJECT_SUMMARY",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 500,
                          "src": "2039:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "7465787445646974",
                          "id": 612,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2068:10:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_963dc6a95a4e7696efe631e725091702ed9b3841ec84deb82b0371983869e6af",
                            "typeString": "literal_string \"textEdit\""
                          },
                          "value": "textEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 613,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "2092:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 615,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 614,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "2102:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2092:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 617,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 616,
                            "name": "PROJECT_SUMMARY",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 500,
                            "src": "2111:15:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2092:35:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 618,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "2141:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 619,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "projectSummary",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1341,
                                "src": "2141:20:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 620,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2141:22:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 621,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "2141:29:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 622,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2141:31:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 623,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "2186:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 624,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "2186:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 625,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2186:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 626,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "2215:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 627,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "2215:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 628,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2215:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_963dc6a95a4e7696efe631e725091702ed9b3841ec84deb82b0371983869e6af",
                            "typeString": "literal_string \"textEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 608,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "1991:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 609,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "1991:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 629,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1991:248:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "1977:262:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 631,
                  "nodeType": "ExpressionStatement",
                  "src": "1977:262:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 657,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 632,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "2249:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 634,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "33",
                        "id": 633,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2258:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_3_by_1",
                          "typeString": "int_const 3"
                        },
                        "value": "3"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2249:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 637,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2293:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 638,
                          "name": "PROJECT_DESCRIPTION",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 503,
                          "src": "2311:19:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "6d61726b646f776e45646974",
                          "id": 639,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2344:14:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_a4c2f4e79e543dfb5ddd2a3ad2769436975a796ff69d51fb1344986ab9aeab37",
                            "typeString": "literal_string \"markdownEdit\""
                          },
                          "value": "markdownEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 640,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "2372:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 642,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 641,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "2382:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2372:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 644,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 643,
                            "name": "PROJECT_DESCRIPTION",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 503,
                            "src": "2391:19:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2372:39:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 645,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "2425:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 646,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "projectDescription",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1343,
                                "src": "2425:24:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 647,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2425:26:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 648,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "2425:33:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 649,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2425:35:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 650,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "2474:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 651,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "2474:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 652,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2474:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 653,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "2503:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 654,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "2503:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 655,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2503:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_a4c2f4e79e543dfb5ddd2a3ad2769436975a796ff69d51fb1344986ab9aeab37",
                            "typeString": "literal_string \"markdownEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 635,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "2263:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 636,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "2263:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 656,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2263:264:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "2249:278:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 658,
                  "nodeType": "ExpressionStatement",
                  "src": "2249:278:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 684,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 659,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "2537:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 661,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "34",
                        "id": 660,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2546:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_4_by_1",
                          "typeString": "int_const 4"
                        },
                        "value": "4"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2537:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 664,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2581:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 665,
                          "name": "SALE_NAME",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 506,
                          "src": "2599:9:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "7465787445646974",
                          "id": 666,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2622:10:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_963dc6a95a4e7696efe631e725091702ed9b3841ec84deb82b0371983869e6af",
                            "typeString": "literal_string \"textEdit\""
                          },
                          "value": "textEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 667,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "2646:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 669,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 668,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "2656:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2646:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 671,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 670,
                            "name": "SALE_NAME",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 506,
                            "src": "2665:9:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2646:29:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 672,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "2689:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 673,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "name",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1355,
                                "src": "2689:10:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 674,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2689:12:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 675,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "2689:19:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 676,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2689:21:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 677,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "2724:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 678,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "2724:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 679,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2724:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 680,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "2753:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 681,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "2753:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 682,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2753:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_963dc6a95a4e7696efe631e725091702ed9b3841ec84deb82b0371983869e6af",
                            "typeString": "literal_string \"textEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 662,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "2551:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 663,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "2551:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 683,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2551:226:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "2537:240:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 685,
                  "nodeType": "ExpressionStatement",
                  "src": "2537:240:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 711,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 686,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "2787:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 688,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 687,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2796:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2787:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 691,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2831:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 692,
                          "name": "LOGO_URL",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 509,
                          "src": "2849:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "75726c45646974",
                          "id": 693,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2871:9:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          "value": "urlEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 694,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "2894:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 696,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 695,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "2904:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2894:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 698,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 697,
                            "name": "LOGO_URL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 509,
                            "src": "2913:8:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2894:28:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 699,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "2936:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 700,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "logoUrl",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1345,
                                "src": "2936:13:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 701,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2936:15:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 702,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "2936:22:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2936:24:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 704,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "2974:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 705,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "2974:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 706,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2974:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 707,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "3003:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 708,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "3003:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 709,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3003:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 689,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "2801:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 690,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "2801:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 710,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2801:226:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "2787:240:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 712,
                  "nodeType": "ExpressionStatement",
                  "src": "2787:240:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 738,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 713,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "3037:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 715,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "36",
                        "id": 714,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3046:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_6_by_1",
                          "typeString": "int_const 6"
                        },
                        "value": "6"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3037:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 718,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3081:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 719,
                          "name": "COVER_IMAGE_URL",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 512,
                          "src": "3099:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "75726c45646974",
                          "id": 720,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3128:9:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          "value": "urlEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 721,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "3151:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 723,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 722,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "3161:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3151:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 725,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 724,
                            "name": "COVER_IMAGE_URL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 512,
                            "src": "3170:15:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3151:35:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 726,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "3200:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 727,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "coverImageUrl",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1347,
                                "src": "3200:19:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 728,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3200:21:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "3200:28:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 730,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3200:30:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 731,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "3244:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 732,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "3244:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 733,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3244:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 734,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "3273:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 735,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "3273:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 736,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3273:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 716,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "3051:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 717,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "3051:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 737,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3051:246:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "3037:260:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 739,
                  "nodeType": "ExpressionStatement",
                  "src": "3037:260:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 740,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "3307:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 742,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "37",
                        "id": 741,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3316:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_7_by_1",
                          "typeString": "int_const 7"
                        },
                        "value": "7"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3307:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 745,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3351:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 746,
                          "name": "WEBSITE_URL",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 515,
                          "src": "3369:11:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "75726c45646974",
                          "id": 747,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3394:9:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          "value": "urlEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 748,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "3417:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 750,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 749,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "3427:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3417:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 752,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 751,
                            "name": "WEBSITE_URL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 515,
                            "src": "3436:11:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3417:31:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 753,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "3462:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 754,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "websiteUrl",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1349,
                                "src": "3462:16:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 755,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3462:18:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 756,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "3462:25:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 757,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3462:27:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 758,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "3503:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 759,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "3503:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 760,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3503:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 761,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "3532:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 762,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "3532:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 763,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3532:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 743,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "3321:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 744,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "3321:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 764,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3321:235:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "3307:249:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 766,
                  "nodeType": "ExpressionStatement",
                  "src": "3307:249:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 792,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 767,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "3566:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 769,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "38",
                        "id": 768,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3575:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_8_by_1",
                          "typeString": "int_const 8"
                        },
                        "value": "8"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3566:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 772,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3610:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 773,
                          "name": "WHITEPAPER_URL",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 518,
                          "src": "3628:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "75726c45646974",
                          "id": 774,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3656:9:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          "value": "urlEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 775,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "3679:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 777,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 776,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "3689:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3679:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 779,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 778,
                            "name": "WHITEPAPER_URL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 518,
                            "src": "3698:14:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3679:34:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 780,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "3727:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 781,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "whitepaperUrl",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1351,
                                "src": "3727:19:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 782,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3727:21:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 783,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "3727:28:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 784,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3727:30:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 785,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "3771:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 786,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "3771:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 787,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3771:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 788,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "3800:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 789,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "3800:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 790,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3800:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 770,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "3580:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 771,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "3580:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 791,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3580:244:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "3566:258:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 793,
                  "nodeType": "ExpressionStatement",
                  "src": "3566:258:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 819,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 794,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "3834:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 796,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "39",
                        "id": 795,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3843:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_9_by_1",
                          "typeString": "int_const 9"
                        },
                        "value": "9"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3834:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 799,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3878:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 800,
                          "name": "VIDEO_URL",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 521,
                          "src": "3896:9:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "75726c45646974",
                          "id": 801,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3919:9:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          "value": "urlEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 802,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "3942:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 804,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 803,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "3952:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3942:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 806,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 805,
                            "name": "VIDEO_URL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 521,
                            "src": "3961:9:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3942:29:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 807,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "3985:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 808,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "videoUrl",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1353,
                                "src": "3985:14:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 809,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3985:16:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 810,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "3985:23:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 811,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3985:25:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 812,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "4024:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 813,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "4024:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 814,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4024:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 815,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "4053:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 816,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "4053:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 817,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4053:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 797,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "3848:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 798,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "3848:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 818,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3848:229:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "3834:243:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 820,
                  "nodeType": "ExpressionStatement",
                  "src": "3834:243:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 853,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 821,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "4087:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 823,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "3130",
                        "id": 822,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4096:2:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_10_by_1",
                          "typeString": "int_const 10"
                        },
                        "value": "10"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4087:12:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 826,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4132:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 827,
                          "name": "UPDATE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 524,
                          "src": "4150:6:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "627574746f6e",
                          "id": 828,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4170:8:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_a81da2f95bacdc95271ab6d8ca852be6742f3b8901ebe5d98b694fb7e4de4090",
                            "typeString": "literal_string \"button\""
                          },
                          "value": "button"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 829,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "4192:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 831,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 830,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "4202:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4192:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 833,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 832,
                            "name": "UPDATE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 524,
                            "src": "4211:6:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4192:26:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "6e756c6c",
                          "id": 834,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4232:6:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805",
                            "typeString": "literal_string \"null\""
                          },
                          "value": "null"
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 837,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4284:4:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 839,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "4314:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                ],
                                "id": 838,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "4306:7:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 840,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4306:14:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "75706461746528737472696e672c737472696e672c737472696e672c737472696e672c737472696e672c737472696e672c737472696e672c737472696e672c737472696e672c6164647265737329",
                              "id": 841,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4338:80:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_cdd5fce53fd9c5dad3ff9b23d9178c446b764499078fc80fd4ac3a87f5ca74e9",
                                "typeString": "literal_string \"update(string,string,string,string,string,string,string,string,string,address)\""
                              },
                              "value": "update(string,string,string,string,string,string,string,string,string,address)"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "5b2270726f6a6563745f6e616d65222c2270726f6a6563745f73756d6d617279222c2270726f6a6563745f6465736372697074696f6e222c226c6f676f5f75726c222c22636f7665725f696d6167655f75726c222c22776562736974655f75726c222c22776869746570617065725f75726c222c22766964656f5f75726c222c2273616c655f6e616d65222c22746f6b656e5f61646472657373225d",
                              "id": 842,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4436:158:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_9535c49cdc6972e477ed3c6131b17b1228e93635ec0491b932b51402c8a3e50e",
                                "typeString": "literal_string \"[\"project_name\",\"project_summary\",\"project_description\",\"logo_url\",\"cover_image_url\",\"website_url\",\"whitepaper_url\",\"video_url\",\"sale_name\",\"token_address\"]\""
                              },
                              "value": "[\"project_name\",\"project_summary\",\"project_description\",\"logo_url\",\"cover_image_url\",\"website_url\",\"whitepaper_url\",\"video_url\",\"sale_name\",\"token_address\"]"
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 843,
                                  "name": "resources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4721,
                                  "src": "4612:9:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                    "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                  }
                                },
                                "id": 845,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 844,
                                  "name": "_locale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 529,
                                  "src": "4622:7:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "4612:18:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                  "typeString": "mapping(string memory => string storage ref)"
                                }
                              },
                              "id": 847,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 846,
                                "name": "UPDATE_CONFIRM",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 527,
                                "src": "4631:14:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4612:34:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_cdd5fce53fd9c5dad3ff9b23d9178c446b764499078fc80fd4ac3a87f5ca74e9",
                                "typeString": "literal_string \"update(string,string,string,string,string,string,string,string,string,address)\""
                              },
                              {
                                "typeIdentifier": "t_stringliteral_9535c49cdc6972e477ed3c6131b17b1228e93635ec0491b932b51402c8a3e50e",
                                "typeString": "literal_string \"[\"project_name\",\"project_summary\",\"project_description\",\"logo_url\",\"cover_image_url\",\"website_url\",\"whitepaper_url\",\"video_url\",\"sale_name\",\"token_address\"]\""
                              },
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 835,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "4252:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 836,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "Action",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4353,
                            "src": "4252:14:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_Action_$4353_storage_ptr_$",
                              "typeString": "type(struct Actions.Action storage pointer)"
                            }
                          },
                          "id": 848,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4252:408:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 849,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "4674:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 850,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "4674:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 851,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4674:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_a81da2f95bacdc95271ab6d8ca852be6742f3b8901ebe5d98b694fb7e4de4090",
                            "typeString": "literal_string \"button\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805",
                            "typeString": "literal_string \"null\""
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 824,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "4102:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 825,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "4102:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 852,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4102:596:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "4087:611:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 854,
                  "nodeType": "ExpressionStatement",
                  "src": "4087:611:2"
                },
                {
                  "assignments": [
                    856
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 856,
                      "name": "json",
                      "nodeType": "VariableDeclaration",
                      "scope": 913,
                      "src": "4708:18:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 855,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "4708:6:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 858,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "5b",
                    "id": 857,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4729:3:2",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_9f50164828976b6baa479ea39c718c745bbc0d2521b67dfde8474cbdc9711057",
                      "typeString": "literal_string \"[\""
                    },
                    "value": "["
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4708:24:2"
                },
                {
                  "body": {
                    "id": 901,
                    "nodeType": "Block",
                    "src": "4785:185:2",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 872,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 870,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 860,
                            "src": "4803:1:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 871,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4807:1:2",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4803:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 885,
                        "nodeType": "IfStatement",
                        "src": "4799:87:2",
                        "trueBody": {
                          "id": 884,
                          "nodeType": "Block",
                          "src": "4810:76:2",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 882,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 873,
                                  "name": "json",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 856,
                                  "src": "4828:4:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "expression": {
                                          "argumentTypes": null,
                                          "hexValue": "2c",
                                          "id": 878,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "4857:3:2",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_3e7a35b97029f9e0cf6effd71c1a7958822e9a217d3a3aec886668a7dd8231cb",
                                            "typeString": "literal_string \",\""
                                          },
                                          "value": ","
                                        },
                                        "id": 879,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "toSlice",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 2705,
                                        "src": "4857:11:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                          "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                        }
                                      },
                                      "id": 880,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "4857:13:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                                        "typeString": "struct strings.slice memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                                        "typeString": "struct strings.slice memory"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 874,
                                          "name": "json",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 856,
                                          "src": "4835:4:2",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        },
                                        "id": 875,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "toSlice",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 2705,
                                        "src": "4835:12:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                          "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                        }
                                      },
                                      "id": 876,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "4835:14:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                                        "typeString": "struct strings.slice memory"
                                      }
                                    },
                                    "id": 877,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "concat",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4218,
                                    "src": "4835:21:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$2645_memory_ptr_$_t_struct$_slice_$2645_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$2645_memory_ptr_$",
                                      "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                                    }
                                  },
                                  "id": 881,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4835:36:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "src": "4828:43:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              "id": 883,
                              "nodeType": "ExpressionStatement",
                              "src": "4828:43:2"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 899,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 886,
                            "name": "json",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 856,
                            "src": "4899:4:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 891,
                                          "name": "elements",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 540,
                                          "src": "4928:8:2",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                                            "typeString": "struct Elements.Element memory[] memory"
                                          }
                                        },
                                        "id": 893,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 892,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 860,
                                          "src": "4937:1:2",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "4928:11:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Element_$4509_memory",
                                          "typeString": "struct Elements.Element memory"
                                        }
                                      },
                                      "id": 894,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "toJson",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4709,
                                      "src": "4928:18:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Element_$4509_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_Element_$4509_memory_ptr_$",
                                        "typeString": "function (struct Elements.Element memory) pure returns (string memory)"
                                      }
                                    },
                                    "id": 895,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4928:20:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 896,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "toSlice",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2705,
                                  "src": "4928:28:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                    "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                  }
                                },
                                "id": 897,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4928:30:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                                  "typeString": "struct strings.slice memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                                  "typeString": "struct strings.slice memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 887,
                                    "name": "json",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 856,
                                    "src": "4906:4:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 888,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "toSlice",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2705,
                                  "src": "4906:12:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                    "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                  }
                                },
                                "id": 889,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4906:14:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                                  "typeString": "struct strings.slice memory"
                                }
                              },
                              "id": 890,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "concat",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4218,
                              "src": "4906:21:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$2645_memory_ptr_$_t_struct$_slice_$2645_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$2645_memory_ptr_$",
                                "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                              }
                            },
                            "id": 898,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4906:53:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "src": "4899:60:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        "id": 900,
                        "nodeType": "ExpressionStatement",
                        "src": "4899:60:2"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 866,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 863,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 860,
                      "src": "4759:1:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 864,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "4763:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 865,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4763:15:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4759:19:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 902,
                  "initializationExpression": {
                    "assignments": [
                      860
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 860,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 913,
                        "src": "4747:6:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 859,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "4747:4:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 862,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 861,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4756:1:2",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "4747:10:2"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 868,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "4780:3:2",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 867,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 860,
                        "src": "4780:1:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 869,
                    "nodeType": "ExpressionStatement",
                    "src": "4780:3:2"
                  },
                  "nodeType": "ForStatement",
                  "src": "4742:228:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "hexValue": "5d",
                            "id": 907,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5008:3:2",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29",
                              "typeString": "literal_string \"]\""
                            },
                            "value": "]"
                          },
                          "id": 908,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "toSlice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2705,
                          "src": "5008:11:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                            "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                          }
                        },
                        "id": 909,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5008:13:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                          "typeString": "struct strings.slice memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                          "typeString": "struct strings.slice memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 903,
                            "name": "json",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 856,
                            "src": "4986:4:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "id": 904,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "toSlice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2705,
                          "src": "4986:12:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                            "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                          }
                        },
                        "id": 905,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4986:14:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                          "typeString": "struct strings.slice memory"
                        }
                      },
                      "id": 906,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "concat",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4218,
                      "src": "4986:21:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$2645_memory_ptr_$_t_struct$_slice_$2645_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$2645_memory_ptr_$",
                        "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                      }
                    },
                    "id": 910,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4986:36:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 535,
                  "id": 911,
                  "nodeType": "Return",
                  "src": "4979:43:2"
                }
              ]
            },
            "documentation": null,
            "id": 913,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "render",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 532,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 529,
                  "name": "_locale",
                  "nodeType": "VariableDeclaration",
                  "scope": 913,
                  "src": "1287:14:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 528,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1287:6:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 531,
                  "name": "_sale",
                  "nodeType": "VariableDeclaration",
                  "scope": 913,
                  "src": "1303:15:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                    "typeString": "contract ERC20Sale"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 530,
                    "name": "ERC20Sale",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 386,
                    "src": "1303:9:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ERC20Sale_$386",
                      "typeString": "contract ERC20Sale"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1286:33:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 535,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 534,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 913,
                  "src": "1341:6:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 533,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1341:6:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1340:8:2"
            },
            "scope": 914,
            "src": "1271:3758:2",
            "stateMutability": "view",
            "superFunction": 1173,
            "visibility": "public"
          }
        ],
        "scope": 915,
        "src": "309:4722:2"
      }
    ],
    "src": "0:5032:2"
  },
  "legacyAST": {
    "absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20sale/contracts/sale/erc20/widget/ERC20SaleInputsRenderer.sol",
    "exportedSymbols": {
      "ERC20SaleInputsRenderer": [
        914
      ]
    },
    "id": 915,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 467,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:2"
      },
      {
        "absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20sale/contracts/sale/erc20/widget/ERC20SaleWidgetRenderer.sol",
        "file": "./ERC20SaleWidgetRenderer.sol",
        "id": 468,
        "nodeType": "ImportDirective",
        "scope": 915,
        "sourceUnit": 1175,
        "src": "26:39:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/utils/UintUtils.sol",
        "file": "tokenboost-solidity/contracts/utils/UintUtils.sol",
        "id": 469,
        "nodeType": "ImportDirective",
        "scope": 915,
        "sourceUnit": 2639,
        "src": "66:59:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/utils/BoolUtils.sol",
        "file": "tokenboost-solidity/contracts/utils/BoolUtils.sol",
        "id": 470,
        "nodeType": "ImportDirective",
        "scope": 915,
        "sourceUnit": 2518,
        "src": "126:59:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/utils/StringUtils.sol",
        "file": "tokenboost-solidity/contracts/utils/StringUtils.sol",
        "id": 471,
        "nodeType": "ImportDirective",
        "scope": 915,
        "sourceUnit": 2548,
        "src": "186:61:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/widget/Elements.sol",
        "file": "tokenboost-solidity/contracts/widget/Elements.sol",
        "id": 472,
        "nodeType": "ImportDirective",
        "scope": 915,
        "sourceUnit": 4711,
        "src": "248:59:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 473,
              "name": "ERC20SaleWidgetRenderer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1174,
              "src": "345:23:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC20SaleWidgetRenderer_$1174",
                "typeString": "contract ERC20SaleWidgetRenderer"
              }
            },
            "id": 474,
            "nodeType": "InheritanceSpecifier",
            "src": "345:23:2"
          }
        ],
        "contractDependencies": [
          1174,
          4758,
          5355
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 914,
        "linearizedBaseContracts": [
          914,
          1174,
          4758,
          5355
        ],
        "name": "ERC20SaleInputsRenderer",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 476,
            "libraryName": {
              "contractScope": null,
              "id": 475,
              "name": "strings",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4333,
              "src": "381:7:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_strings_$4333",
                "typeString": "library strings"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "375:20:2",
            "typeName": null
          },
          {
            "id": 479,
            "libraryName": {
              "contractScope": null,
              "id": 477,
              "name": "UintUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2638,
              "src": "406:9:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_UintUtils_$2638",
                "typeString": "library UintUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "400:25:2",
            "typeName": {
              "id": 478,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "420:4:2",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "id": 482,
            "libraryName": {
              "contractScope": null,
              "id": 480,
              "name": "BoolUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2517,
              "src": "436:9:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BoolUtils_$2517",
                "typeString": "library BoolUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "430:25:2",
            "typeName": {
              "id": 481,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "450:4:2",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            }
          },
          {
            "id": 485,
            "libraryName": {
              "contractScope": null,
              "id": 483,
              "name": "AddressUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2498,
              "src": "466:12:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AddressUtils_$2498",
                "typeString": "library AddressUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "460:31:2",
            "typeName": {
              "id": 484,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "483:7:2",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            }
          },
          {
            "id": 488,
            "libraryName": {
              "contractScope": null,
              "id": 486,
              "name": "StringUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2547,
              "src": "502:11:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StringUtils_$2547",
                "typeString": "library StringUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "496:29:2",
            "typeName": {
              "id": 487,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "518:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            }
          },
          {
            "id": 491,
            "libraryName": {
              "contractScope": null,
              "id": 489,
              "name": "Elements",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4710,
              "src": "536:8:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Elements_$4710",
                "typeString": "library Elements"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "530:36:2",
            "typeName": {
              "contractScope": null,
              "id": 490,
              "name": "Elements.Element",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4509,
              "src": "549:16:2",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Element_$4509_storage_ptr",
                "typeString": "struct Elements.Element"
              }
            }
          },
          {
            "constant": true,
            "id": 494,
            "name": "TOKEN_ADDRESS",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "572:54:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 492,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "572:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "746f6b656e5f61646472657373",
              "id": 493,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "611:15:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_4cb59f37c0f9d09ea41ec01867728e0af61d0339b945f7d193fd07f4f96cfee8",
                "typeString": "literal_string \"token_address\""
              },
              "value": "token_address"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 497,
            "name": "PROJECT_NAME",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "632:52:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 495,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "632:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "70726f6a6563745f6e616d65",
              "id": 496,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "670:14:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_72206555397097457f51b53bf0d3762c8d79347aee8ab2f9e3ef30ce5499265c",
                "typeString": "literal_string \"project_name\""
              },
              "value": "project_name"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 500,
            "name": "PROJECT_SUMMARY",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "690:58:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 498,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "690:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "70726f6a6563745f73756d6d617279",
              "id": 499,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "731:17:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_6a2ed8f5483a87036b400cbf07741c161763af6b1f6a56bbbd6f4aa4bc8e8c1f",
                "typeString": "literal_string \"project_summary\""
              },
              "value": "project_summary"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 503,
            "name": "PROJECT_DESCRIPTION",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "754:66:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 501,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "754:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "70726f6a6563745f6465736372697074696f6e",
              "id": 502,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "799:21:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_6e41f72ce2506c3cece828c8356b65e8e2412bf05826d07c135f1e4acb3dd40c",
                "typeString": "literal_string \"project_description\""
              },
              "value": "project_description"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 506,
            "name": "SALE_NAME",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "826:46:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 504,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "826:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "73616c655f6e616d65",
              "id": 505,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "861:11:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_e5086e965e321904846ff4886201d28649e8ba86c6133f0c66bcb047a389a8d7",
                "typeString": "literal_string \"sale_name\""
              },
              "value": "sale_name"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 509,
            "name": "LOGO_URL",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "878:44:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 507,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "878:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6c6f676f5f75726c",
              "id": 508,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "912:10:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_92ff1fe1b0494891ed568e7f946a96d57ba0dd41ed346d87f77dd80a4188734b",
                "typeString": "literal_string \"logo_url\""
              },
              "value": "logo_url"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 512,
            "name": "COVER_IMAGE_URL",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "928:58:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 510,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "928:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "636f7665725f696d6167655f75726c",
              "id": 511,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "969:17:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_65f14844e0749f111d2ef9b73600be37ef7f5ef4170b6ef7bfd5575b4b792910",
                "typeString": "literal_string \"cover_image_url\""
              },
              "value": "cover_image_url"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 515,
            "name": "WEBSITE_URL",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "992:50:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 513,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "992:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "776562736974655f75726c",
              "id": 514,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1029:13:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_962a1cdc38e70bafa14ca64be23a3f9df08f016b5a4c14833b8458e473e8ed05",
                "typeString": "literal_string \"website_url\""
              },
              "value": "website_url"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 518,
            "name": "WHITEPAPER_URL",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "1048:56:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 516,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1048:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "776869746570617065725f75726c",
              "id": 517,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1088:16:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_72592107246b66a0a11c85d75ed23209fdf1ac5baffb96814de4099e3ea2154c",
                "typeString": "literal_string \"whitepaper_url\""
              },
              "value": "whitepaper_url"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 521,
            "name": "VIDEO_URL",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "1110:46:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 519,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1110:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "766964656f5f75726c",
              "id": 520,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1145:11:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_f8db688bf738fb7a8902c9484ac79dbbbb8fbc592863baca43968e00e311742c",
                "typeString": "literal_string \"video_url\""
              },
              "value": "video_url"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 524,
            "name": "UPDATE",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "1162:40:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 522,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1162:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "757064617465",
              "id": 523,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1194:8:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_5ef8d21b3c3919d0cb2b4728880495e379f8c1817d7867ff6b1360f2321f9598",
                "typeString": "literal_string \"update\""
              },
              "value": "update"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 527,
            "name": "UPDATE_CONFIRM",
            "nodeType": "VariableDeclaration",
            "scope": 914,
            "src": "1208:56:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 525,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1208:6:2",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7570646174655f636f6e6669726d",
              "id": 526,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1248:16:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_393ccb80dc23ac0b3575aa245e34b77b706631c022f63fd616454fbfd294407e",
                "typeString": "literal_string \"update_confirm\""
              },
              "value": "update_confirm"
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 912,
              "nodeType": "Block",
              "src": "1349:3680:2",
              "statements": [
                {
                  "assignments": [
                    540
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 540,
                      "name": "elements",
                      "nodeType": "VariableDeclaration",
                      "scope": 913,
                      "src": "1359:34:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                        "typeString": "struct Elements.Element[]"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 538,
                          "name": "Elements.Element",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 4509,
                          "src": "1359:16:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Element_$4509_storage_ptr",
                            "typeString": "struct Elements.Element"
                          }
                        },
                        "id": 539,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1359:18:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_storage_$dyn_storage_ptr",
                          "typeString": "struct Elements.Element[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 546,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "3131",
                        "id": 544,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1419:2:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_11_by_1",
                          "typeString": "int_const 11"
                        },
                        "value": "11"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_11_by_1",
                          "typeString": "int_const 11"
                        }
                      ],
                      "id": 543,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1396:22:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Element_$4509_memory_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (struct Elements.Element memory[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 541,
                          "name": "Elements.Element",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 4509,
                          "src": "1400:16:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Element_$4509_storage_ptr",
                            "typeString": "struct Elements.Element"
                          }
                        },
                        "id": 542,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1400:18:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_storage_$dyn_storage_ptr",
                          "typeString": "struct Elements.Element[]"
                        }
                      }
                    },
                    "id": 545,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1396:26:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory",
                      "typeString": "struct Elements.Element memory[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1359:63:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 576,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 547,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "1432:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 549,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 548,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1441:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1432:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 552,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1476:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 553,
                          "name": "TOKEN_ADDRESS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 494,
                          "src": "1494:13:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "6164647265737345646974",
                          "id": 554,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1521:13:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_9da0ac31fc220ced4c03decd71d5120e5144f94b04cabb5c22d40a0b3ec00e0c",
                            "typeString": "literal_string \"addressEdit\""
                          },
                          "value": "addressEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 555,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "1548:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 557,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 556,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "1558:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1548:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 559,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 558,
                            "name": "TOKEN_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 494,
                            "src": "1567:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1548:33:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 561,
                                          "name": "_sale",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 531,
                                          "src": "1603:5:2",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                            "typeString": "contract ERC20Sale"
                                          }
                                        },
                                        "id": 562,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "token",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 29,
                                        "src": "1603:11:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ERC20_$5398_$",
                                          "typeString": "function () view external returns (contract ERC20)"
                                        }
                                      },
                                      "id": 563,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1603:13:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_ERC20_$5398",
                                        "typeString": "contract ERC20"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_ERC20_$5398",
                                        "typeString": "contract ERC20"
                                      }
                                    ],
                                    "id": 560,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "1595:7:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 564,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1595:22:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "id": 565,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "toString",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2497,
                                "src": "1595:31:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$bound_to$_t_address_$",
                                  "typeString": "function (address) pure returns (string memory)"
                                }
                              },
                              "id": 566,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1595:33:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "id": 567,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "1595:40:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 568,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1595:42:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 569,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "1651:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 570,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "1651:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 571,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1651:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 572,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "1680:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 573,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "1680:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 574,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1680:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_9da0ac31fc220ced4c03decd71d5120e5144f94b04cabb5c22d40a0b3ec00e0c",
                            "typeString": "literal_string \"addressEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 550,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "1446:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 551,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "1446:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 575,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1446:258:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "1432:272:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 577,
                  "nodeType": "ExpressionStatement",
                  "src": "1432:272:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 578,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "1714:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 580,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 579,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1723:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1714:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 583,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1758:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 584,
                          "name": "PROJECT_NAME",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 497,
                          "src": "1776:12:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "7465787445646974",
                          "id": 585,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1802:10:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_963dc6a95a4e7696efe631e725091702ed9b3841ec84deb82b0371983869e6af",
                            "typeString": "literal_string \"textEdit\""
                          },
                          "value": "textEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 586,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "1826:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 588,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 587,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "1836:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1826:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 590,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 589,
                            "name": "PROJECT_NAME",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 497,
                            "src": "1845:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1826:32:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 591,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "1872:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 592,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "projectName",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1339,
                                "src": "1872:17:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 593,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1872:19:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 594,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "1872:26:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 595,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1872:28:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 596,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "1914:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 597,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "1914:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 598,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1914:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 599,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "1943:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 600,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "1943:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 601,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1943:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_963dc6a95a4e7696efe631e725091702ed9b3841ec84deb82b0371983869e6af",
                            "typeString": "literal_string \"textEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 581,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "1728:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 582,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "1728:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 602,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1728:239:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "1714:253:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 604,
                  "nodeType": "ExpressionStatement",
                  "src": "1714:253:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 605,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "1977:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 607,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "32",
                        "id": 606,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1986:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1977:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 610,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2021:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 611,
                          "name": "PROJECT_SUMMARY",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 500,
                          "src": "2039:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "7465787445646974",
                          "id": 612,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2068:10:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_963dc6a95a4e7696efe631e725091702ed9b3841ec84deb82b0371983869e6af",
                            "typeString": "literal_string \"textEdit\""
                          },
                          "value": "textEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 613,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "2092:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 615,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 614,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "2102:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2092:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 617,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 616,
                            "name": "PROJECT_SUMMARY",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 500,
                            "src": "2111:15:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2092:35:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 618,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "2141:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 619,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "projectSummary",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1341,
                                "src": "2141:20:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 620,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2141:22:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 621,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "2141:29:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 622,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2141:31:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 623,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "2186:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 624,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "2186:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 625,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2186:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 626,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "2215:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 627,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "2215:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 628,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2215:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_963dc6a95a4e7696efe631e725091702ed9b3841ec84deb82b0371983869e6af",
                            "typeString": "literal_string \"textEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 608,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "1991:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 609,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "1991:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 629,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1991:248:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "1977:262:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 631,
                  "nodeType": "ExpressionStatement",
                  "src": "1977:262:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 657,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 632,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "2249:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 634,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "33",
                        "id": 633,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2258:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_3_by_1",
                          "typeString": "int_const 3"
                        },
                        "value": "3"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2249:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 637,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2293:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 638,
                          "name": "PROJECT_DESCRIPTION",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 503,
                          "src": "2311:19:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "6d61726b646f776e45646974",
                          "id": 639,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2344:14:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_a4c2f4e79e543dfb5ddd2a3ad2769436975a796ff69d51fb1344986ab9aeab37",
                            "typeString": "literal_string \"markdownEdit\""
                          },
                          "value": "markdownEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 640,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "2372:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 642,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 641,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "2382:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2372:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 644,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 643,
                            "name": "PROJECT_DESCRIPTION",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 503,
                            "src": "2391:19:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2372:39:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 645,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "2425:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 646,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "projectDescription",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1343,
                                "src": "2425:24:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 647,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2425:26:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 648,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "2425:33:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 649,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2425:35:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 650,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "2474:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 651,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "2474:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 652,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2474:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 653,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "2503:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 654,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "2503:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 655,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2503:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_a4c2f4e79e543dfb5ddd2a3ad2769436975a796ff69d51fb1344986ab9aeab37",
                            "typeString": "literal_string \"markdownEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 635,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "2263:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 636,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "2263:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 656,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2263:264:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "2249:278:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 658,
                  "nodeType": "ExpressionStatement",
                  "src": "2249:278:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 684,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 659,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "2537:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 661,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "34",
                        "id": 660,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2546:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_4_by_1",
                          "typeString": "int_const 4"
                        },
                        "value": "4"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2537:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 664,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2581:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 665,
                          "name": "SALE_NAME",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 506,
                          "src": "2599:9:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "7465787445646974",
                          "id": 666,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2622:10:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_963dc6a95a4e7696efe631e725091702ed9b3841ec84deb82b0371983869e6af",
                            "typeString": "literal_string \"textEdit\""
                          },
                          "value": "textEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 667,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "2646:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 669,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 668,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "2656:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2646:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 671,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 670,
                            "name": "SALE_NAME",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 506,
                            "src": "2665:9:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2646:29:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 672,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "2689:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 673,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "name",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1355,
                                "src": "2689:10:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 674,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2689:12:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 675,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "2689:19:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 676,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2689:21:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 677,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "2724:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 678,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "2724:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 679,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2724:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 680,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "2753:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 681,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "2753:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 682,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2753:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_963dc6a95a4e7696efe631e725091702ed9b3841ec84deb82b0371983869e6af",
                            "typeString": "literal_string \"textEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 662,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "2551:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 663,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "2551:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 683,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2551:226:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "2537:240:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 685,
                  "nodeType": "ExpressionStatement",
                  "src": "2537:240:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 711,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 686,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "2787:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 688,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 687,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2796:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2787:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 691,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2831:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 692,
                          "name": "LOGO_URL",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 509,
                          "src": "2849:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "75726c45646974",
                          "id": 693,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2871:9:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          "value": "urlEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 694,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "2894:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 696,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 695,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "2904:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2894:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 698,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 697,
                            "name": "LOGO_URL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 509,
                            "src": "2913:8:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2894:28:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 699,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "2936:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 700,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "logoUrl",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1345,
                                "src": "2936:13:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 701,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2936:15:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 702,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "2936:22:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2936:24:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 704,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "2974:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 705,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "2974:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 706,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2974:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 707,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "3003:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 708,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "3003:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 709,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3003:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 689,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "2801:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 690,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "2801:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 710,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2801:226:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "2787:240:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 712,
                  "nodeType": "ExpressionStatement",
                  "src": "2787:240:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 738,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 713,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "3037:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 715,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "36",
                        "id": 714,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3046:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_6_by_1",
                          "typeString": "int_const 6"
                        },
                        "value": "6"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3037:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 718,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3081:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 719,
                          "name": "COVER_IMAGE_URL",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 512,
                          "src": "3099:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "75726c45646974",
                          "id": 720,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3128:9:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          "value": "urlEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 721,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "3151:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 723,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 722,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "3161:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3151:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 725,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 724,
                            "name": "COVER_IMAGE_URL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 512,
                            "src": "3170:15:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3151:35:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 726,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "3200:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 727,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "coverImageUrl",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1347,
                                "src": "3200:19:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 728,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3200:21:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "3200:28:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 730,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3200:30:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 731,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "3244:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 732,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "3244:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 733,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3244:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 734,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "3273:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 735,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "3273:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 736,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3273:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 716,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "3051:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 717,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "3051:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 737,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3051:246:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "3037:260:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 739,
                  "nodeType": "ExpressionStatement",
                  "src": "3037:260:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 740,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "3307:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 742,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "37",
                        "id": 741,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3316:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_7_by_1",
                          "typeString": "int_const 7"
                        },
                        "value": "7"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3307:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 745,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3351:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 746,
                          "name": "WEBSITE_URL",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 515,
                          "src": "3369:11:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "75726c45646974",
                          "id": 747,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3394:9:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          "value": "urlEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 748,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "3417:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 750,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 749,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "3427:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3417:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 752,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 751,
                            "name": "WEBSITE_URL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 515,
                            "src": "3436:11:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3417:31:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 753,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "3462:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 754,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "websiteUrl",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1349,
                                "src": "3462:16:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 755,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3462:18:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 756,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "3462:25:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 757,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3462:27:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 758,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "3503:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 759,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "3503:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 760,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3503:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 761,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "3532:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 762,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "3532:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 763,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3532:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 743,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "3321:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 744,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "3321:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 764,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3321:235:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "3307:249:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 766,
                  "nodeType": "ExpressionStatement",
                  "src": "3307:249:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 792,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 767,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "3566:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 769,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "38",
                        "id": 768,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3575:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_8_by_1",
                          "typeString": "int_const 8"
                        },
                        "value": "8"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3566:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 772,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3610:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 773,
                          "name": "WHITEPAPER_URL",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 518,
                          "src": "3628:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "75726c45646974",
                          "id": 774,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3656:9:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          "value": "urlEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 775,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "3679:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 777,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 776,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "3689:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3679:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 779,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 778,
                            "name": "WHITEPAPER_URL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 518,
                            "src": "3698:14:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3679:34:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 780,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "3727:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 781,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "whitepaperUrl",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1351,
                                "src": "3727:19:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 782,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3727:21:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 783,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "3727:28:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 784,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3727:30:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 785,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "3771:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 786,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "3771:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 787,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3771:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 788,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "3800:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 789,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "3800:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 790,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3800:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 770,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "3580:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 771,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "3580:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 791,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3580:244:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "3566:258:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 793,
                  "nodeType": "ExpressionStatement",
                  "src": "3566:258:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 819,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 794,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "3834:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 796,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "39",
                        "id": 795,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3843:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_9_by_1",
                          "typeString": "int_const 9"
                        },
                        "value": "9"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3834:11:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 799,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3878:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 800,
                          "name": "VIDEO_URL",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 521,
                          "src": "3896:9:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "75726c45646974",
                          "id": 801,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3919:9:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          "value": "urlEdit"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 802,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "3942:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 804,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 803,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "3952:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3942:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 806,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 805,
                            "name": "VIDEO_URL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 521,
                            "src": "3961:9:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3942:29:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 807,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "3985:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 808,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "videoUrl",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1353,
                                "src": "3985:14:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 809,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3985:16:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            "id": 810,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "quoted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2546,
                            "src": "3985:23:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (string memory)"
                            }
                          },
                          "id": 811,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3985:25:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 812,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "4024:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 813,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4369,
                            "src": "4024:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
                              "typeString": "function () pure returns (struct Actions.Action memory)"
                            }
                          },
                          "id": 814,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4024:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 815,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "4053:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 816,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "4053:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 817,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4053:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_6fde38b8006d4edf6e468f03e1d3fd876e8f0075d158950cdd4000f3bb005aee",
                            "typeString": "literal_string \"urlEdit\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 797,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "3848:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 798,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "3848:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 818,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3848:229:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "3834:243:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 820,
                  "nodeType": "ExpressionStatement",
                  "src": "3834:243:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 853,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 821,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "4087:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 823,
                      "indexExpression": {
                        "argumentTypes": null,
                        "hexValue": "3130",
                        "id": 822,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4096:2:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_10_by_1",
                          "typeString": "int_const 10"
                        },
                        "value": "10"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4087:12:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 826,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4132:4:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "id": 827,
                          "name": "UPDATE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 524,
                          "src": "4150:6:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "627574746f6e",
                          "id": 828,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4170:8:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_a81da2f95bacdc95271ab6d8ca852be6742f3b8901ebe5d98b694fb7e4de4090",
                            "typeString": "literal_string \"button\""
                          },
                          "value": "button"
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 829,
                              "name": "resources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4721,
                              "src": "4192:9:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                              }
                            },
                            "id": 831,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 830,
                              "name": "_locale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 529,
                              "src": "4202:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4192:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                              "typeString": "mapping(string memory => string storage ref)"
                            }
                          },
                          "id": 833,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 832,
                            "name": "UPDATE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 524,
                            "src": "4211:6:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4192:26:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "6e756c6c",
                          "id": 834,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4232:6:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805",
                            "typeString": "literal_string \"null\""
                          },
                          "value": "null"
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 837,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4284:4:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 839,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 531,
                                  "src": "4314:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                                    "typeString": "contract ERC20Sale"
                                  }
                                ],
                                "id": 838,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "4306:7:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 840,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4306:14:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "75706461746528737472696e672c737472696e672c737472696e672c737472696e672c737472696e672c737472696e672c737472696e672c737472696e672c737472696e672c6164647265737329",
                              "id": 841,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4338:80:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_cdd5fce53fd9c5dad3ff9b23d9178c446b764499078fc80fd4ac3a87f5ca74e9",
                                "typeString": "literal_string \"update(string,string,string,string,string,string,string,string,string,address)\""
                              },
                              "value": "update(string,string,string,string,string,string,string,string,string,address)"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "5b2270726f6a6563745f6e616d65222c2270726f6a6563745f73756d6d617279222c2270726f6a6563745f6465736372697074696f6e222c226c6f676f5f75726c222c22636f7665725f696d6167655f75726c222c22776562736974655f75726c222c22776869746570617065725f75726c222c22766964656f5f75726c222c2273616c655f6e616d65222c22746f6b656e5f61646472657373225d",
                              "id": 842,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4436:158:2",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_9535c49cdc6972e477ed3c6131b17b1228e93635ec0491b932b51402c8a3e50e",
                                "typeString": "literal_string \"[\"project_name\",\"project_summary\",\"project_description\",\"logo_url\",\"cover_image_url\",\"website_url\",\"whitepaper_url\",\"video_url\",\"sale_name\",\"token_address\"]\""
                              },
                              "value": "[\"project_name\",\"project_summary\",\"project_description\",\"logo_url\",\"cover_image_url\",\"website_url\",\"whitepaper_url\",\"video_url\",\"sale_name\",\"token_address\"]"
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 843,
                                  "name": "resources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4721,
                                  "src": "4612:9:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                    "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                  }
                                },
                                "id": 845,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 844,
                                  "name": "_locale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 529,
                                  "src": "4622:7:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "4612:18:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                  "typeString": "mapping(string memory => string storage ref)"
                                }
                              },
                              "id": 847,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 846,
                                "name": "UPDATE_CONFIRM",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 527,
                                "src": "4631:14:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4612:34:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_cdd5fce53fd9c5dad3ff9b23d9178c446b764499078fc80fd4ac3a87f5ca74e9",
                                "typeString": "literal_string \"update(string,string,string,string,string,string,string,string,string,address)\""
                              },
                              {
                                "typeIdentifier": "t_stringliteral_9535c49cdc6972e477ed3c6131b17b1228e93635ec0491b932b51402c8a3e50e",
                                "typeString": "literal_string \"[\"project_name\",\"project_summary\",\"project_description\",\"logo_url\",\"cover_image_url\",\"website_url\",\"whitepaper_url\",\"video_url\",\"sale_name\",\"token_address\"]\""
                              },
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 835,
                              "name": "Actions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4481,
                              "src": "4252:7:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
                                "typeString": "type(library Actions)"
                              }
                            },
                            "id": 836,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "Action",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4353,
                            "src": "4252:14:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_Action_$4353_storage_ptr_$",
                              "typeString": "type(struct Actions.Action storage pointer)"
                            }
                          },
                          "id": 848,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4252:408:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Action_$4353_memory",
                            "typeString": "struct Actions.Action memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 849,
                              "name": "Tables",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5114,
                              "src": "4674:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
                                "typeString": "type(library Tables)"
                              }
                            },
                            "id": 850,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "empty",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4830,
                            "src": "4674:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
                              "typeString": "function () pure returns (struct Tables.Table memory)"
                            }
                          },
                          "id": 851,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4674:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_a81da2f95bacdc95271ab6d8ca852be6742f3b8901ebe5d98b694fb7e4de4090",
                            "typeString": "literal_string \"button\""
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805",
                            "typeString": "literal_string \"null\""
                          },
                          {
                            "typeIdentifier": "t_struct$_Action_$4353_memory",
                            "typeString": "struct Actions.Action memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
                            "typeString": "struct Tables.Table memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 824,
                          "name": "Elements",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4710,
                          "src": "4102:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Elements_$4710_$",
                            "typeString": "type(library Elements)"
                          }
                        },
                        "id": 825,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "Element",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4509,
                        "src": "4102:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
                          "typeString": "type(struct Elements.Element storage pointer)"
                        }
                      },
                      "id": 852,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4102:596:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Element_$4509_memory",
                        "typeString": "struct Elements.Element memory"
                      }
                    },
                    "src": "4087:611:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Element_$4509_memory",
                      "typeString": "struct Elements.Element memory"
                    }
                  },
                  "id": 854,
                  "nodeType": "ExpressionStatement",
                  "src": "4087:611:2"
                },
                {
                  "assignments": [
                    856
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 856,
                      "name": "json",
                      "nodeType": "VariableDeclaration",
                      "scope": 913,
                      "src": "4708:18:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 855,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "4708:6:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 858,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "5b",
                    "id": 857,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4729:3:2",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_9f50164828976b6baa479ea39c718c745bbc0d2521b67dfde8474cbdc9711057",
                      "typeString": "literal_string \"[\""
                    },
                    "value": "["
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4708:24:2"
                },
                {
                  "body": {
                    "id": 901,
                    "nodeType": "Block",
                    "src": "4785:185:2",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 872,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 870,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 860,
                            "src": "4803:1:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 871,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4807:1:2",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4803:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 885,
                        "nodeType": "IfStatement",
                        "src": "4799:87:2",
                        "trueBody": {
                          "id": 884,
                          "nodeType": "Block",
                          "src": "4810:76:2",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 882,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 873,
                                  "name": "json",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 856,
                                  "src": "4828:4:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "expression": {
                                          "argumentTypes": null,
                                          "hexValue": "2c",
                                          "id": 878,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "4857:3:2",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_3e7a35b97029f9e0cf6effd71c1a7958822e9a217d3a3aec886668a7dd8231cb",
                                            "typeString": "literal_string \",\""
                                          },
                                          "value": ","
                                        },
                                        "id": 879,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "toSlice",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 2705,
                                        "src": "4857:11:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                          "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                        }
                                      },
                                      "id": 880,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "4857:13:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                                        "typeString": "struct strings.slice memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                                        "typeString": "struct strings.slice memory"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 874,
                                          "name": "json",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 856,
                                          "src": "4835:4:2",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        },
                                        "id": 875,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "toSlice",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 2705,
                                        "src": "4835:12:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                          "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                        }
                                      },
                                      "id": 876,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "4835:14:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                                        "typeString": "struct strings.slice memory"
                                      }
                                    },
                                    "id": 877,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "concat",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4218,
                                    "src": "4835:21:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$2645_memory_ptr_$_t_struct$_slice_$2645_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$2645_memory_ptr_$",
                                      "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                                    }
                                  },
                                  "id": 881,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4835:36:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "src": "4828:43:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              "id": 883,
                              "nodeType": "ExpressionStatement",
                              "src": "4828:43:2"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 899,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 886,
                            "name": "json",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 856,
                            "src": "4899:4:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 891,
                                          "name": "elements",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 540,
                                          "src": "4928:8:2",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                                            "typeString": "struct Elements.Element memory[] memory"
                                          }
                                        },
                                        "id": 893,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 892,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 860,
                                          "src": "4937:1:2",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "4928:11:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Element_$4509_memory",
                                          "typeString": "struct Elements.Element memory"
                                        }
                                      },
                                      "id": 894,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "toJson",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4709,
                                      "src": "4928:18:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Element_$4509_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_Element_$4509_memory_ptr_$",
                                        "typeString": "function (struct Elements.Element memory) pure returns (string memory)"
                                      }
                                    },
                                    "id": 895,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4928:20:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 896,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "toSlice",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2705,
                                  "src": "4928:28:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                    "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                  }
                                },
                                "id": 897,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4928:30:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                                  "typeString": "struct strings.slice memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                                  "typeString": "struct strings.slice memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 887,
                                    "name": "json",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 856,
                                    "src": "4906:4:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 888,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "toSlice",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2705,
                                  "src": "4906:12:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                    "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                  }
                                },
                                "id": 889,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4906:14:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                                  "typeString": "struct strings.slice memory"
                                }
                              },
                              "id": 890,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "concat",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4218,
                              "src": "4906:21:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$2645_memory_ptr_$_t_struct$_slice_$2645_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$2645_memory_ptr_$",
                                "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                              }
                            },
                            "id": 898,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4906:53:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "src": "4899:60:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        "id": 900,
                        "nodeType": "ExpressionStatement",
                        "src": "4899:60:2"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 866,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 863,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 860,
                      "src": "4759:1:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 864,
                        "name": "elements",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 540,
                        "src": "4763:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Element_$4509_memory_$dyn_memory_ptr",
                          "typeString": "struct Elements.Element memory[] memory"
                        }
                      },
                      "id": 865,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4763:15:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4759:19:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 902,
                  "initializationExpression": {
                    "assignments": [
                      860
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 860,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 913,
                        "src": "4747:6:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 859,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "4747:4:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 862,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 861,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4756:1:2",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "4747:10:2"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 868,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "4780:3:2",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 867,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 860,
                        "src": "4780:1:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 869,
                    "nodeType": "ExpressionStatement",
                    "src": "4780:3:2"
                  },
                  "nodeType": "ForStatement",
                  "src": "4742:228:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "hexValue": "5d",
                            "id": 907,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5008:3:2",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29",
                              "typeString": "literal_string \"]\""
                            },
                            "value": "]"
                          },
                          "id": 908,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "toSlice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2705,
                          "src": "5008:11:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                            "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                          }
                        },
                        "id": 909,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5008:13:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                          "typeString": "struct strings.slice memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                          "typeString": "struct strings.slice memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 903,
                            "name": "json",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 856,
                            "src": "4986:4:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "id": 904,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "toSlice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2705,
                          "src": "4986:12:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                            "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                          }
                        },
                        "id": 905,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4986:14:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
                          "typeString": "struct strings.slice memory"
                        }
                      },
                      "id": 906,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "concat",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4218,
                      "src": "4986:21:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$2645_memory_ptr_$_t_struct$_slice_$2645_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$2645_memory_ptr_$",
                        "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                      }
                    },
                    "id": 910,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4986:36:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 535,
                  "id": 911,
                  "nodeType": "Return",
                  "src": "4979:43:2"
                }
              ]
            },
            "documentation": null,
            "id": 913,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "render",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 532,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 529,
                  "name": "_locale",
                  "nodeType": "VariableDeclaration",
                  "scope": 913,
                  "src": "1287:14:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 528,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1287:6:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 531,
                  "name": "_sale",
                  "nodeType": "VariableDeclaration",
                  "scope": 913,
                  "src": "1303:15:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ERC20Sale_$386",
                    "typeString": "contract ERC20Sale"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 530,
                    "name": "ERC20Sale",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 386,
                    "src": "1303:9:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ERC20Sale_$386",
                      "typeString": "contract ERC20Sale"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1286:33:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 535,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 534,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 913,
                  "src": "1341:6:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 533,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1341:6:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1340:8:2"
            },
            "scope": 914,
            "src": "1271:3758:2",
            "stateMutability": "view",
            "superFunction": 1173,
            "visibility": "public"
          }
        ],
        "scope": 915,
        "src": "309:4722:2"
      }
    ],
    "src": "0:5032:2"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {
    "1": {
      "events": {},
      "links": {},
      "address": "0x3ddafa5d77fee85c80b3591754e7f5036f624919",
      "transactionHash": "0xe055a0f96c81f46053552f2045e7b704519fc508d57d6bc6e3907e937b725643"
    },
    "3": {
      "events": {},
      "links": {},
      "address": "0xa2d262a1de9e09424af2b5fbf48f30fb60596a86",
      "transactionHash": "0xf7ee1d7e17ef946eb8ea2e10289039e26015ec7254e6ffb88ce48a0ae094170f"
    },
    "5777": {
      "events": {},
      "links": {},
      "address": "0x637b1fb6a5e84df9a35ef3acddd48db1ed1862ed",
      "transactionHash": "0x1f309c96b7f630a0256005e127630b49fc732d50e6597eebd57296c79798b208"
    }
  },
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-11-01T09:28:40.954Z"
}