[
{
"id": 27013,
"label": "Nome do app",
"name": "APP_NAME",
"value": "CONNECT WORLD™",
"type": "STRING",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27014,
"label": "Logo do app",
"name": "APP_LOGO",
"value": "https://i.ibb.co/cgvrvRD/DTyyxbbodj.png",
"type": "IMAGE",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27015,
"label": "Imagem de fundo",
"name": "APP_BACKGROUND_IMAGE",
"value": "https://i.ibb.co/7nVr2JB/DTke432nqb.jpg",
"type": "IMAGE",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27016,
"label": "Tipo do fundo do app",
"name": "APP_BACKGROUND_TYPE",
"value": {
"options": [
{
"label": "Imagem",
"value": "IMAGE"
},
{
"label": "Cor",
"value": "COLOR"
}
],
"selected": "IMAGE"
},
"type": "SELECT",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27017,
"label": "Cor de fundo",
"name": "APP_BACKGROUND_COLOR",
"value": "#080e16c7",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27018,
"label": "Cor do card inicial",
"name": "APP_CARD_COLOR",
"value": "#1d242e73",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27019,
"label": "Raio do card inicial",
"name": "APP_CARD_RADIUS",
"value": 20,
"type": "INTEGER",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27020,
"label": "Cor do card de status",
"name": "APP_CARD_STATUS_COLOR",
"value": "#1d242e73",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27021,
"label": "Raio do card de status",
"name": "APP_CARD_STATUS_RADIUS",
"value": 25,
"type": "INTEGER",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27022,
"label": "Cor do card de configurações",
"name": "APP_CARD_CONFIG_COLOR",
"value": "#0E171EC9",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27023,
"label": "Cor do fundo dos dialogs",
"name": "APP_DIALOG_BACKGROUND_COLOR",
"value": "#050C5AE4",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27024,
"label": "Cor do fundo do dialog de log",
"name": "APP_DIALOG_LOGGER_COLOR",
"value": "#080e16c7",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27025,
"label": "Cor das bordas",
"name": "APP_BORDER_COLOR",
"value": "#1d242e73",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27026,
"label": "Cor dos inputs",
"name": "APP_INPUT_COLOR",
"value": "#1d242e73",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27027,
"label": "Raio dos inputs",
"name": "APP_INPUT_RADIUS",
"value": 25,
"type": "INTEGER",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27028,
"label": "Cor dos textos",
"name": "APP_TEXT_COLOR",
"value": "#FFFFFFFF",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27029,
"label": "Cor dos botões",
"name": "APP_BUTTON_COLOR",
"value": "#1d242e73",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27030,
"label": "Raio dos botões",
"name": "APP_BUTTON_RADIUS",
"value": 25,
"type": "INTEGER",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27031,
"label": "Cor dos icones",
"name": "APP_ICON_COLOR",
"value": "#FFFFFFFF",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27032,
"label": "Exibir modo de conexão",
"name": "APP_SHOW_CONNECTION_MODE",
"value": false,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27033,
"label": "Atualizar automaticamente as configurações ao lançar uma atualização.",
"name": "APP_CONFIG_AUTO_UPDATE",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27034,
"label": "Iniciar o app automaticamente ao reiniciar o dispositivo",
"name": "APP_AUTO_START",
"value": false,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27035,
"label": "Usar limiter de conexão",
"name": "APP_CONNECTION_LIMITER",
"value": false,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27036,
"label": "Usar botão de atualizações",
"name": "APP_BTN_UPDATE_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27037,
"label": "Usar botão de registros",
"name": "APP_BTN_LOGGER_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27038,
"label": "Usar botão de pagina webview",
"name": "APP_BTN_PAGE_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27039,
"label": "Ativar dialog de erros",
"name": "APP_DIALOG_ERROR_ENABLED",
"value": false,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27040,
"label": "Ativar dialog de checkuser",
"name": "APP_CHECKUSER_DIALOG_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27041,
"label": "Ativar toast de sucesso",
"name": "APP_SUCCESS_TOAST_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27042,
"label": "Ativar toast de erro",
"name": "APP_ERROR_TOAST_ENABLED",
"value": false,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27043,
"label": "Usar layout webview",
"name": "APP_LAYOUT_WEBVIEW_ENABLED",
"value": false,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27044,
"label": "Mensagem",
"name": "APP_MESSAGE",
"value": "😎 Seja bem vindo a CONNECT WORLD™",
"type": "TEXT",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27046,
"label": "Tipo de mensagem",
"name": "APP_MESSAGE_TYPE",
"value": {
"options": [
{
"label": "Alerta",
"value": "ALERT"
},
{
"label": "Informação",
"value": "INFO"
},
{
"label": "Boas vindas",
"value": "WELCOME"
},
{
"label": "Sem mensagem",
"value": "NONE"
}
],
"selected": "NONE"
},
"type": "SELECT",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27045,
"label": "URL de atualização do aplicativo",
"name": "APP_UPDATE_URL",
"value": null,
"type": "URL",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27047,
"label": "LAYOUT WEBVIEW (POR SUA CONTA E RISCO)",
"name": "APP_LAYOUT_WEBVIEW",
"value": null,
"type": "HTML",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27048,
"label": "ANDROID WEBVIEW (POR SUA CONTA E RISCO)",
"name": "APP_SUPPORT_BUTTON",
"value": "<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n\n <title>979789237 - @raionetoficial</title>\n\n <style>\n :root {\n font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;\n line-height: 1.5;\n font-weight: 400;\n font-synthesis: none;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n\n --space-status-bar: 10px;\n --space-nav-bar: 33px;\n }\n\n *,\n *::before,\n *::after {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n\n html,\n body,\n main {\n width: 100%;\n height: 100%;\n }\n\n main {\n max-width: 600px;\n\n display: flex;\n flex-direction: column;\n\n margin: 0 auto;\n padding: var(--space-status-bar) 10px var(--space-nav-bar) 10px;\n }\n\n section.bottom {\n width: 100%;\n height: auto;\n\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n\n margin: auto 0 0 0;\n }\n\n section.bottom button {\n min-height: 60px;\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-direction: column;\n gap: 5px;\n\n padding: 3%;\n\n border: 0;\n border-radius: 10px;\n\n background: #03030359;\n }\n\n section.bottom button span {\n font-size: 0.7rem;\n font-weight: bold;\n text-transform: uppercase;\n color: #ffffff;\n }\n\n section.bottom button svg {\n color: #ffffff;\n }\n\n .display-none {\n display: none;\n }\n </style>\n </head>\n <body>\n <main>\n <section class=\"bottom\">\n <button type=\"button\" id=\"iptv\">\n <span>ATUALIZAR</span>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-repeat\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M11.534 7h3.932a.25.25 0 0 1 .192.41l-1.966 2.36a.25.25 0 0 1-.384 0l-1.966-2.36a.25.25 0 0 1 .192-.41zm-11 2h3.932a.25.25 0 0 0 .192-.41L2.692 6.23a.25.25 0 0 0-.384 0L.342 8.59A.25.25 0 0 0 .534 9z\"\n />\n <path\n fill-rule=\"evenodd\"\n d=\"M8 3c-1.552 0-2.94.707-3.857 1.818a.5.5 0 1 1-.771-.636A6.002 6.002 0 0 1 13.917 7H12.9A5.002 5.002 0 0 0 8 3zM3.1 9a5.002 5.002 0 0 0 8.757 2.182.5.5 0 1 1 .771.636A6.002 6.002 0 0 1 2.083 9H3.1z\"\n />\n </svg>\n </button>\n\n <button type=\"button\" id=\"youtube\">\n <span>SPEEDTEST</span>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" \n width=\"16\" \n height=\"16\" \n viewBox=\"0 0 50 50\"\n style=\"fill:#ffffff;\">\n <path d=\"M 25 2 C 12.317 2 2 12.318 2 25 C 2 31.417 4.6454375 37.226344 8.8984375 41.402344 L 13.240234 37.248047 C 10.017234 34.152047 8 29.811 8 25 C 8 15.626 15.626 8 25 8 C 34.374 8 42 15.626 42 25 C 42 29.811 39.982766 34.152047 36.759766 37.248047 L 41.101562 41.402344 C 45.354562 37.226344 48 31.417 48 25 C 48 12.318 37.683 2 25 2 z M 32.232422 15.232422 L 20 26 L 25 31 L 35.767578 18.767578 L 32.232422 15.232422 z\"></path>\n </svg>\n </button>\n </button>\n \n <button type=\"button\" id=\"apn\">\n <span>AJUSTAR APN</span>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-wrench-adjustable\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M16 4.5a4.492 4.492 0 0 1-1.703 3.526L13 5l2.959-1.11c.027.2.041.403.041.61Z\"\n />\n <path\n d=\"M11.5 9c.653 0 1.273-.139 1.833-.39L12 5.5 11 3l3.826-1.53A4.5 4.5 0 0 0 7.29 6.092l-6.116 5.096a2.583 2.583 0 1 0 3.638 3.638L9.908 8.71A4.49 4.49 0 0 0 11.5 9Zm-1.292-4.361-.596.893.809-.27a.25.25 0 0 1 .287.377l-.596.893.809-.27.158.475-1.5.5a.25.25 0 0 1-.287-.376l.596-.893-.809.27a.25.25 0 0 1-.287-.377l.596-.893-.809.27-.158-.475 1.5-.5a.25.25 0 0 1 .287.376ZM3 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"\n />\n </svg>\n </button>\n\n <button type=\"button\" id=\"hotspot\">\n <span>Rotear</span>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n id=\"hotspot-on\"\n class=\"bi bi-wifi\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M15.384 6.115a.485.485 0 0 0-.047-.736A12.444 12.444 0 0 0 8 3C5.259 3 2.723 3.882.663 5.379a.485.485 0 0 0-.048.736.518.518 0 0 0 .668.05A11.448 11.448 0 0 1 8 4c2.507 0 4.827.802 6.716 2.164.205.148.49.13.668-.049z\"\n />\n <path\n d=\"M13.229 8.271a.482.482 0 0 0-.063-.745A9.455 9.455 0 0 0 8 6c-1.905 0-3.68.56-5.166 1.526a.48.48 0 0 0-.063.745.525.525 0 0 0 .652.065A8.46 8.46 0 0 1 8 7a8.46 8.46 0 0 1 4.576 1.336c.206.132.48.108.653-.065zm-2.183 2.183c.226-.226.185-.605-.1-.75A6.473 6.473 0 0 0 8 9c-1.06 0-2.062.254-2.946.704-.285.145-.326.524-.1.75l.015.015c.16.16.407.19.611.09A5.478 5.478 0 0 1 8 10c.868 0 1.69.201 2.42.56.203.1.45.07.61-.091l.016-.015zM9.06 12.44c.196-.196.198-.52-.04-.66A1.99 1.99 0 0 0 8 11.5a1.99 1.99 0 0 0-1.02.28c-.238.14-.236.464-.04.66l.706.706a.5.5 0 0 0 .707 0l.707-.707z\"\n />\n </svg>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n id=\"hotspot-off\"\n class=\"bi bi-wifi-off display-none\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M10.706 3.294A12.545 12.545 0 0 0 8 3C5.259 3 2.723 3.882.663 5.379a.485.485 0 0 0-.048.736.518.518 0 0 0 .668.05A11.448 11.448 0 0 1 8 4c.63 0 1.249.05 1.852.148l.854-.854zM8 6c-1.905 0-3.68.56-5.166 1.526a.48.48 0 0 0-.063.745.525.525 0 0 0 .652.065 8.448 8.448 0 0 1 3.51-1.27L8 6zm2.596 1.404.785-.785c.63.24 1.227.545 1.785.907a.482.482 0 0 1 .063.745.525.525 0 0 1-.652.065 8.462 8.462 0 0 0-1.98-.932zM8 10l.933-.933a6.455 6.455 0 0 1 2.013.637c.285.145.326.524.1.75l-.015.015a.532.532 0 0 1-.611.09A5.478 5.478 0 0 0 8 10zm4.905-4.905.747-.747c.59.3 1.153.645 1.685 1.03a.485.485 0 0 1 .047.737.518.518 0 0 1-.668.05 11.493 11.493 0 0 0-1.811-1.07zM9.02 11.78c.238.14.236.464.04.66l-.707.706a.5.5 0 0 1-.707 0l-.707-.707c-.195-.195-.197-.518.04-.66A1.99 1.99 0 0 1 8 11.5c.374 0 .723.102 1.021.28zm4.355-9.905a.53.53 0 0 1 .75.75l-10.75 10.75a.53.53 0 0 1-.75-.75l10.75-10.75z\"\n />\n </svg>\n </button>\n </section>\n </main>\n\n <!-- FUNÇÕES DO APP -->\n <script>\n const appStatusBar = () => DtGetStatusBarHeight.execute()\n const appNavBar = () => DtGetNavigationBarHeight.execute()\n\n const appCarrier = () => Android.getNetworkName()\n const appLocalIp = () => Android.getLocalIP()\n\n const appBattery = () => DtIgnoreBatteryOptimizations.execute()\n const appApn = () => DtStartApnActivity.execute()\n const appLink = (value) => DtStartWebViewActivity.execute(value)\n const appClean = () => DtCleanApp.execute()\n const appCheckUser = () => DtStartCheckUser.execute()\n\n const appGetStatusHotspot = () => DtGetStatusHotSpotService.execute()\n const appStartHotspot = () => DtStartHotSpotService.execute()\n const appStopHotspot = () => DtStopHotSpotService.execute()\n\n const appGetConfigLabel = (label) => DtGetAppConfig.execute(label)\n </script>\n\n <!-- DOM WRAPPER -->\n <script>\n const Dom = (selector) => {\n const _elements = document.querySelectorAll(selector)\n\n const wrapper = {\n on(listeners) {\n for (const [event, listener] of Object.entries(listeners)) {\n _elements.forEach((element) => {\n element.addEventListener(event, listener)\n })\n }\n\n return wrapper\n },\n addClass: (...tokens) => {\n _elements.forEach((element) => {\n element.classList.add(...tokens)\n })\n\n return wrapper\n },\n removeClass: (...tokens) => {\n _elements.forEach((element) => {\n element.classList.remove(...tokens)\n })\n\n return wrapper\n },\n toggleClass: (token, force) => {\n _elements.forEach((element) => {\n element.classList.toggle(token, force)\n })\n\n return wrapper\n },\n style(styles) {\n for (const [property, value] of Object.entries(styles)) {\n console.log(value)\n _elements.forEach((element) => {\n element.style[property] = value\n })\n }\n\n return wrapper\n },\n attr(attrs) {\n for (const [name, value] of Object.entries(attrs)) {\n _elements.forEach((element) => element.setAttribute(name, value))\n }\n\n return wrapper\n },\n html(value) {\n _elements.forEach((element) => (element.innerHTML = value))\n return wrapper\n },\n }\n\n return wrapper\n }\n </script>\n\n <!-- VÁRIAVEIS ROOT -->\n <script>\n document.documentElement.style.setProperty(\n \"--space-status-bar\",\n `${appStatusBar() + 10}px`\n )\n document.documentElement.style.setProperty(\n \"--space-nav-bar\",\n `${appNavBar() + 10}px`\n )\n </script>\n\n <!-- VARIAVEIS -->\n <script>\n const AllButtons = Dom(\"section.bottom button\")\n\n const ButtonIptv = Dom(\"#iptv\")\n const ButtonYoutube = Dom(\"#youtube\")\n const ButtonRenovar = Dom(\"#renovar\")\n const ButtonApn = Dom(\"#apn\")\n const ButtonHotspot = Dom(\"#hotspot\")\n\n const hotspotIconOn = Dom(\"#hotspot-on\")\n const hotspotIconOff = Dom(\"#hotspot-off\")\n </script>\n\n <!-- FUNÇÕES -->\n <script>\n const setBackgroundStyleButton = () => {\n const data = appGetConfigLabel(\"APP_BUTTON_COLOR\")\n\n AllButtons.style({ background: `${JSON.parse(data).value}` })\n }\n\n const startHotspot = () => {\n appStartHotspot()\n\n hotspotIconOn.addClass(\"display-none\")\n hotspotIconOff.removeClass(\"display-none\")\n }\n\n const stopHotspot = () => {\n appStopHotspot()\n\n hotspotIconOn.removeClass(\"display-none\")\n hotspotIconOff.addClass(\"display-none\")\n }\n\n const toggleHotspot = () => {\n appGetStatusHotspot() === \"STOPPED\" ? startHotspot() : stopHotspot()\n }\n\n const setStatusHotspot = () => {\n if (appGetStatusHotspot() === \"STOPPED\") {\n hotspotIconOn.removeClass(\"display-none\")\n hotspotIconOff.addClass(\"display-none\")\n } else {\n hotspotIconOn.addClass(\"display-none\")\n hotspotIconOff.removeClass(\"display-none\")\n }\n }\n </script>\n\n <!-- AÇÕES -->\n <script>\n ButtonIptv.on({ click: () => DtStartAppUpdate.execute() })\n ButtonYoutube.on({ click: () => appLink(\"https://fast.com/pt/\") })\n ButtonRenovar.on({ click: () => appLink(\"https://topnetbr.store/renovar.php\") })\n ButtonApn.on({ click: () => appApn() })\n ButtonHotspot.on({ click: () => toggleHotspot() })\n\n setStatusHotspot()\n setBackgroundStyleButton()\n </script>\n </body>\n</html>",
"type": "HTML",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
},
{
"id": 27049,
"label": "PAGINA WEBVIEW (POR SUA CONTA E RISCO)",
"name": "APP_WEB_VIEW",
"value": null,
"type": "HTML",
"status": "ACTIVE",
"user_id": "9261b9df-5bd7-4571-9514-9d03e0812c15"
}
]