Layout DT


SUBMITTED BY: terrorxdroid

DATE: March 27, 2024, 5:31 p.m.

UPDATED: Oct. 2, 2024, 8:18 p.m.

FORMAT: Text only

SIZE: 103.5 kB

HITS: 707

  1. [
  2. {
  3. "label": "Nome do app",
  4. "name": "APP_NAME",
  5. "value": "DTunnel Mod",
  6. "type": "STRING"
  7. },
  8. {
  9. "label": "Logo do app",
  10. "name": "APP_LOGO",
  11. "value": "https://i.imgur.com/Ycp3Wms.png",
  12. "type": "IMAGE"
  13. },
  14. {
  15. "label": "Imagem de fundo",
  16. "name": "APP_BACKGROUND_IMAGE",
  17. "value": "https://i.imgur.com/l7ic0Gw.jpeg",
  18. "type": "IMAGE"
  19. },
  20. {
  21. "label": "Tipo do fundo do app",
  22. "name": "APP_BACKGROUND_TYPE",
  23. "value": {
  24. "options": [
  25. {
  26. "label": "Imagem",
  27. "value": "IMAGE"
  28. },
  29. {
  30. "label": "Cor",
  31. "value": "COLOR"
  32. }
  33. ],
  34. "selected": "IMAGE"
  35. },
  36. "type": "SELECT"
  37. },
  38. {
  39. "label": "Cor de fundo",
  40. "name": "APP_BACKGROUND_COLOR",
  41. "value": "#080e16c7",
  42. "type": "COLOR"
  43. },
  44. {
  45. "label": "Cor do card inicial",
  46. "name": "APP_CARD_COLOR",
  47. "value": "#1d242e73",
  48. "type": "COLOR"
  49. },
  50. {
  51. "label": "Raio do card inicial",
  52. "name": "APP_CARD_RADIUS",
  53. "value": 20,
  54. "type": "INTEGER"
  55. },
  56. {
  57. "label": "Cor do card de status",
  58. "name": "APP_CARD_STATUS_COLOR",
  59. "value": "#1d242e73",
  60. "type": "COLOR"
  61. },
  62. {
  63. "label": "Raio do card de status",
  64. "name": "APP_CARD_STATUS_RADIUS",
  65. "value": 25,
  66. "type": "INTEGER"
  67. },
  68. {
  69. "label": "Cor do card de configurações",
  70. "name": "APP_CARD_CONFIG_COLOR",
  71. "value": "#0E171EC9",
  72. "type": "COLOR"
  73. },
  74. {
  75. "label": "Cor do fundo dos dialogs",
  76. "name": "APP_DIALOG_BACKGROUND_COLOR",
  77. "value": "#050C5AE4",
  78. "type": "COLOR"
  79. },
  80. {
  81. "label": "Cor do fundo do dialog de log",
  82. "name": "APP_DIALOG_LOGGER_COLOR",
  83. "value": "#080e16c7",
  84. "type": "COLOR"
  85. },
  86. {
  87. "label": "Cor das bordas",
  88. "name": "APP_BORDER_COLOR",
  89. "value": "#1d242e73",
  90. "type": "COLOR"
  91. },
  92. {
  93. "label": "Cor dos inputs",
  94. "name": "APP_INPUT_COLOR",
  95. "value": "#1d242e73",
  96. "type": "COLOR"
  97. },
  98. {
  99. "label": "Raio dos inputs",
  100. "name": "APP_INPUT_RADIUS",
  101. "value": 25,
  102. "type": "INTEGER"
  103. },
  104. {
  105. "label": "Cor dos textos",
  106. "name": "APP_TEXT_COLOR",
  107. "value": "#FFFFFFFF",
  108. "type": "COLOR"
  109. },
  110. {
  111. "label": "Cor dos botões",
  112. "name": "APP_BUTTON_COLOR",
  113. "value": "#1d242e73",
  114. "type": "COLOR"
  115. },
  116. {
  117. "label": "Raio dos botões",
  118. "name": "APP_BUTTON_RADIUS",
  119. "value": 25,
  120. "type": "INTEGER"
  121. },
  122. {
  123. "label": "Cor dos icones",
  124. "name": "APP_ICON_COLOR",
  125. "value": "#FFFFFFFF",
  126. "type": "COLOR"
  127. },
  128. {
  129. "label": "Exibir modo de conexão",
  130. "name": "APP_SHOW_CONNECTION_MODE",
  131. "value": true,
  132. "type": "BOOLEAN"
  133. },
  134. {
  135. "label": "Atualizar automaticamente as configurações ao lançar uma atualização.",
  136. "name": "APP_CONFIG_AUTO_UPDATE",
  137. "value": false,
  138. "type": "BOOLEAN"
  139. },
  140. {
  141. "label": "Iniciar o app automaticamente ao reiniciar o dispositivo",
  142. "name": "APP_AUTO_START",
  143. "value": false,
  144. "type": "BOOLEAN"
  145. },
  146. {
  147. "label": "Usar limiter de conexão",
  148. "name": "APP_CONNECTION_LIMITER",
  149. "value": false,
  150. "type": "BOOLEAN"
  151. },
  152. {
  153. "label": "Usar botão de atualizações",
  154. "name": "APP_BTN_UPDATE_ENABLED",
  155. "value": true,
  156. "type": "BOOLEAN"
  157. },
  158. {
  159. "label": "Usar botão de registros",
  160. "name": "APP_BTN_LOGGER_ENABLED",
  161. "value": true,
  162. "type": "BOOLEAN"
  163. },
  164. {
  165. "label": "Usar botão de pagina webview",
  166. "name": "APP_BTN_PAGE_ENABLED",
  167. "value": true,
  168. "type": "BOOLEAN"
  169. },
  170. {
  171. "label": "Ativar dialog de erros",
  172. "name": "APP_DIALOG_ERROR_ENABLED",
  173. "value": true,
  174. "type": "BOOLEAN"
  175. },
  176. {
  177. "label": "Ativar dialog de checkuser",
  178. "name": "APP_CHECKUSER_DIALOG_ENABLED",
  179. "value": true,
  180. "type": "BOOLEAN"
  181. },
  182. {
  183. "label": "Ativar toast de sucesso",
  184. "name": "APP_SUCCESS_TOAST_ENABLED",
  185. "value": true,
  186. "type": "BOOLEAN"
  187. },
  188. {
  189. "label": "Ativar toast de erro",
  190. "name": "APP_ERROR_TOAST_ENABLED",
  191. "value": true,
  192. "type": "BOOLEAN"
  193. },
  194. {
  195. "label": "Usar layout webview",
  196. "name": "APP_LAYOUT_WEBVIEW_ENABLED",
  197. "value": true,
  198. "type": "BOOLEAN"
  199. },
  200. {
  201. "label": "Mensagem",
  202. "name": "APP_MESSAGE",
  203. "value": null,
  204. "type": "TEXT"
  205. },
  206. {
  207. "label": "Tipo de mensagem",
  208. "name": "APP_MESSAGE_TYPE",
  209. "value": {
  210. "options": [
  211. {
  212. "label": "Alerta",
  213. "value": "ALERT"
  214. },
  215. {
  216. "label": "Informação",
  217. "value": "INFO"
  218. },
  219. {
  220. "label": "Boas vindas",
  221. "value": "WELCOME"
  222. },
  223. {
  224. "label": "Sem mensagem",
  225. "value": "NONE"
  226. }
  227. ],
  228. "selected": "NONE"
  229. },
  230. "type": "SELECT"
  231. },
  232. {
  233. "label": "URL de atualização do aplicativo",
  234. "name": "APP_UPDATE_URL",
  235. "value": null,
  236. "type": "URL"
  237. },
  238. {
  239. "label": "LAYOUT WEBVIEW (POR SUA CONTA E RISCO)",
  240. "name": "APP_LAYOUT_WEBVIEW",
  241. "value": "<!DOCTYPE html>\n<html class=\"w-full h-full\" lang=\"pt-BR\">\n\n<head>\n<meta charset=\"UTF-8\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.3\" />\n<title>LopesNet DT Tunnel</title>\n\n<style>\n*,\n:after,\n:before \n{\nbox-sizing: border-box;\nborder: 0 solid #e5e7eb;\n-webkit-tap-highlight-color: transparent;\n}\n\n:after,\n:before \n{\n--tw-content: \"\"\n}\n\nhtml \n{\nline-height: 1.0;\n-webkit-text-size-adjust: 80%;\n-moz-tab-size: 4;\n-o-tab-size: 4;\ntab-size: 4;\nfont-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;\nfont-feature-settings: normal;\nfont-variation-settings: normal\n}\n\nbody \n{\nmargin: 0;\nline-height: inherit;\n}\n\nhr \n{\nheight: 0;\ncolor: inherit;\nborder-top-width: 1px\n}\n\nabbr:where([title]) \n{\n-webkit-text-decoration: underline dotted;\ntext-decoration: underline dotted\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 \n{\nfont-size: inherit;\nfont-weight: inherit\n}\n\na \n{\ncolor: inherit;\ntext-decoration: inherit\n}\n\nb,\nstrong \n{\nfont-weight: bolder\n}\n\ncode,\nkbd,\npre,\nsamp \n{\nfont-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;\nfont-size: 1em\n}\n\nsmall \n{\nfont-size: 75%\n}\n\nsub,\nsup \n{\nfont-size: 75%;\nline-height: 0;\nposition: relative;\nvertical-align: initial\n}\n\nsub \n{\nbottom: -.20em\n}\n\nsup \n{\ntop: -.3em\n}\n\ntable \n{\ntext-indent: 0;\nborder-color: inherit;\nborder-collapse: collapse\n}\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea \n{\nfont-family: inherit;\nfont-feature-settings: inherit;\nfont-variation-settings: inherit;\nfont-size: 80%;\nfont-weight: inherit;\nline-height: inherit;\ncolor: inherit;\nmargin: 0;\npadding: 0\n}\n\nbutton,\nselect \n{\ntext-transform: none\n}\n\n[type=button],\n[type=reset],\n[type=submit],\nbutton \n{\nbackground-color: initial;\nbackground-image: none\n}\n\n:-moz-focusring \n{\noutline: auto\n}\n\n:-moz-ui-invalid \n{\nbox-shadow: none\n}\n\nprogress \n{\nvertical-align: initial\n}\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button \n{\nheight: auto\n}\n\n[type=search] \n{\noutline-offset: -1px\n}\n\n::-webkit-search-decoration \n{\n-webkit-appearance: none\n}\n\n::-webkit-file-upload-button \n{\n-webkit-appearance: button;\nfont: inherit\n}\n\nsummary \n{\ndisplay: list-item\n}\n\nblockquote,\ndd,\ndl,\nfigure,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\np,\npre \n{\nmargin: 0\n}\n\nfieldset \n{\nmargin: 0\n}\n\nfieldset,\nlegend \n{\npadding: 0\n}\n\nmenu,\nol,\nul \n{\nlist-style: none;\nmargin: 0;\npadding: 0\n}\n\ndialog \n{\npadding: 0\n}\n\ntextarea {\nresize: vertical\n}\n\ninput::-moz-placeholder,\ntextarea::-moz-placeholder \n{\nopacity: 1;\ncolor: #9ca3af\n}\n\ninput::placeholder,\ntextarea::placeholder \n{\nopacity: 1;\ncolor: #9ca3af\n}\n\n[role=button],\nbutton \n{\ncursor: pointer\n}\n\n:disabled \n{\ncursor: default\n}\n\naudio,\ncanvas,\nembed,\niframe,\nimg,\nobject,\nsvg,\nvideo \n{\ndisplay: block;\n}\n\nimg,\nvideo {\nmax-width: 75%;\nheight: auto\n}\n\n[hidden] \n{\ndisplay: none\n}\n\n*,\n::backdrop,\n:after,\n:before \n{\n--tw-border-spacing-x: 0;\n--tw-border-spacing-y: 0;\n--tw-translate-x: 0;\n--tw-translate-y: 0;\n--tw-rotate: 0;\n--tw-skew-x: 0;\n--tw-skew-y: 0;\n--tw-scale-x: 1;\n--tw-scale-y: 1;\n--tw-pan-x: ;\n--tw-pan-y: ;\n--tw-pinch-zoom: ;\n--tw-scroll-snap-strictness: proximity;\n--tw-gradient-from-position: ;\n--tw-gradient-via-position: ;\n--tw-gradient-to-position: ;\n--tw-ordinal: ;\n--tw-slashed-zero: ;\n--tw-numeric-figure: ;\n--tw-numeric-spacing: ;\n--tw-numeric-fraction: ;\n--tw-ring-inset: ;\n--tw-ring-offset-width: 0px;\n--tw-ring-offset-color: #fff;\n--tw-ring-color: #3b82f680;\n--tw-ring-offset-shadow: 0 0 #0000;\n--tw-ring-shadow: 0 0 #0000;\n--tw-shadow: 0 0 #0000;\n--tw-shadow-colored: 0 0 #0000;\n--tw-blur: ;\n--tw-brightness: ;\n--tw-contrast: ;\n--tw-grayscale: ;\n--tw-hue-rotate: ;\n--tw-invert: ;\n--tw-saturate: ;\n--tw-sepia: ;\n--tw-drop-shadow: ;\n--tw-backdrop-blur: ;\n--tw-backdrop-brightness: ;\n--tw-backdrop-contrast: ;\n--tw-backdrop-grayscale: ;\n--tw-backdrop-hue-rotate: ;\n--tw-backdrop-invert: ;\n--tw-backdrop-opacity: ;\n--tw-backdrop-saturate: ;\n--tw-backdrop-sepia:\n}\n\n.absolute \n{\nposition: absolute\n}\n\n.relative \n{\nposition: relative\n}\n\n.bottom-1 \n{\nbottom: .20rem\n}\n\n.left-1\\/2 \n{\nleft: 45%\n}\n\n.right-1 \n{\nright: 0.5rem;\n}\n\n.top-1 \n{\ntop: .20rem\n}\n\n.top-1\\/2 \n{\ntop: 50%\n}\n\n.my-3 \n{\nmargin-top: .75rem;\nmargin-bottom: .75rem\n}\n\n.mb-1 \n{\nmargin-bottom: .25rem\n}\n\n.mb-2 \n{\nmargin-bottom: .5rem\n}\n\n.mb-3 \n{\nmargin-bottom: .75rem\n}\n\n.ml-auto \n{\nmargin-left: auto\n}\n\n.mt-14 \n{\nmargin-top: 3.5rem\n}\n\n.mt-2 \n{\nmargin-top: .5rem\n}\n\n.mt-2\\.5 \n{\nmargin-top: .625rem\n}\n\n.mt-3 \n{\nmargin-top: .75rem\n}\n\n.mt-5 {\nmargin-top: 1.25rem\n}\n\n.mt-5 \n{\nmargin-top: 2rem\n}\n\n.mt-auto \n{\nmargin-top: auto\n}\n\n.block \n{\ndisplay: block\n}\n\n.flex \n{\ndisplay: flex\n}\n\n.grid {\ndisplay: grid\n}\n\n.hidden \n{\ndisplay: none\n}\n\n.h-1\\/5 \n{\nheight: 20%\n}\n\n.h-10 \n{\nheight: 2.5rem\n}\n\n.h-12\n{\nheight: 3rem\n}\n\n.h-2\\/3 \n{\nheight: 66.666667%\n}\n\n.h-2\\/4 \n{\nheight: 50%\n}\n\n.h-20 \n{\nheight: 5rem\n}\n\n.h-3 \n{\nheight: .75rem\n}\n\n.h-4 \n{\nheight: 1rem\n}\n\n.h-5 \n{\nheight: 1.25rem\n}\n\n.h-6 \n{\nheight: 1.5rem\n}\n\n.h-8 \n{\nheight: 2rem\n}\n\n.h-9 \n{\nheight: 2.25rem\n}\n\n.h-\\[100\\%\\] \n{\nheight: 100%\n}\n\n.h-\\[40px\\] \n{\nheight: 40px\n}\n\n.h-\\[90\\%\\] \n{\nheight: 90%\n}\n\n.h-\\[calc\\(100\\%-160px\\)\\] \n{\nheight: calc(100% - 150px)\n}\n\n.h-auto {\nheight: auto\n}\n\n.h-full \n{\nheight: 100%\n}\n\n.max-h-8 \n{\nmax-height: 2rem\n}\n\n.max-h-\\[10\\%\\] {\nmax-height: 10%\n}\n\n.max-h-\\[66\\.666667\\%\\] \n{\nmax-height: 66.666667%\n}\n\n.min-h-\\[40px\\] \n{\nmin-height: 40px\n}\n\n.w-10 \n{\nwidth: 2.5rem\n}\n\n.w-11\\/12 \n{\nwidth: 91.666667%\n}\n\n.w-14 \n{\nwidth: 3.5rem\n}\n\n.w-2\\/4 \n{\nwidth: 50%\n}\n\n.w-20 \n{\nwidth: 5rem\n}\n\n.w-4 \n{\nwidth: 1rem\n}\n\n.w-4\\/5 \n{\nwidth: 80%\n}\n\n.w-5 \n{\nwidth: 1.25rem\n}\n\n.w-5\\/6 \n{\nwidth: 83.333333%\n}\n\n.w-6 \n{\nwidth: 1.5rem\n}\n\n.w-8 \n{\nwidth: 2rem\n}\n\n.w-\\[40px\\] \n{\nwidth: 40px\n}\n\n.w-\\[calc\\(100\\%-30px\\)\\] \n{\nwidth: calc(100% - 30px)\n}\n\n.w-\\[calc\\(100\\%-40px\\)\\] \n{\nwidth: calc(100% - 0px)\n}\n\n.w-auto {\nwidth: auto\n}\n\n.w-full \n{\nwidth: 100%\n}\n\n.flex-1 \n{\nflex: 1 1 0%\n}\n\n.-translate-x-1\\/2 \n{\n--tw-translate-x: -50%\n}\n\n.-translate-x-1\\/2,\n.-translate-x-full \n{\ntransform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))\n}\n\n.-translate-x-full {\n--tw-translate-x: -100%\n}\n\n.-translate-y-1\\/2 {\n--tw-translate-y: -50%\n}\n\n.-translate-y-1\\/2,\n.scale-0 {\ntransform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))\n}\n\n.scale-0 {\n--tw-scale-x: 0;\n--tw-scale-y: 0\n}\n\n.transform {\ntransform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))\n}\n\n.cursor-none {\ncursor: none\n}\n\n.grid-cols-2 {\ngrid-template-columns: repeat(2, minmax(0, 1fr))\n}\n\n.flex-col {\nflex-direction: column\n}\n\n.items-end {\nalign-items: flex-end\n}\n\n.items-center {\nalign-items: center\n}\n\n.justify-center {\njustify-content: center\n}\n\n.justify-between {\njustify-content: space-between\n}\n\n.justify-items-center {\njustify-items: center\n}\n\n.gap-1 {\ngap: .25rem\n}\n\n.gap-2 {\ngap: .5rem\n}\n\n.gap-3 {\ngap: .75rem\n}\n\n.gap-5 {\ngap: 1.25rem\n}\n\n.overflow-auto {\noverflow: auto\n}\n\n.overflow-hidden,\n.truncate {\noverflow: hidden\n}\n\n.truncate {\ntext-overflow: ellipsis;\nwhite-space: nowrap\n}\n\n.rounded-full {\nborder-radius: 9999px\n}\n\n.rounded-md {\nborder-radius: .375rem\n}\n\n.rounded-t-md {\nborder-top-left-radius: .375rem;\nborder-top-right-radius: .375rem\n}\n\n.border {\nborder-width: 1px\n}\n\n.border-b {\nborder-bottom-width: 1px\n}\n\n.border-\\[\\#01010342\\] {\nborder-color: #01010342\n}\n\n.border-\\[\\#767881\\] {\n--tw-border-opacity: 1;\nborder-color: rgb(118 120 129/var(--tw-border-opacity))\n}\n\n.bg-buttons {\n--tw-bg-opacity: 1;\nbackground-color: #232429;\nborder-radius: 20px;\n}\n\n#container-configs {\ndisplay: flex;\nflex-direction: column;\nalign-items: center;\njustify-content: center;\nposition: absolute;\ntop: 0;\nleft: 0;\nwidth: 100%;\nheight: 100%;\nbackground-color: rgba(0, 0, 0, 0.8);\nz-index: 9999;\ntransition: all 0.3s ease;\npadding: 10px;\n}\n\n#container-configs>section {\nwidth: 100%;\nmax-height: 100%;\noverflow: auto;\nbackground-color: white;\nborder-radius: 10px;\npadding: 10px;\nbox-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);\n}\n\n#container-configs h1 {\nfont-size: 14px;\nfont-weight: bold;\n}\n\n#container-configs p {\nfont-size: 12px;\ncolor: #555;\n}\n\n#area-carrier-list {\ndisplay: flex;\nflex-direction: column;\n}\n\n#area-carrier-list label {\nborder: 1px solid #ccc;\nborder-radius: 5px;\npadding: 10px;\ncursor: pointer;\ntransition: background-color 0.3s ease;\n}\n\n#area-carrier-list label:hover {\nbackground-color: #f0f0f0;\n}\n\n#area-carrier-list label img {\nwidth: 40px;\nheight: 40px;\nborder-radius: 50%;\nmargin-right: 20px;\n}\n\n.loader {\nmax-width: 15rem;\nwidth: 50%;\nheight: auto;\nstroke-linecap: round;\nmargin: auto;\nmargin-top: -70px;\n}\n\ncircle {\nfill: none;\nstroke-width: 3.5;\nanimation-name: preloader;\nanimation-duration: 3s;\nanimation-iteration-count: infinite;\nanimation-timing-function: ease-in-out;\ntransform-origin: 170px 170px;\nwill-change: transform;\n\n&:nth-of-type(1) {\nstroke-dasharray: 350px;\n}\n\n&:nth-of-type(2) {\nstroke-dasharray: 300px;\n}\n\n&:nth-of-type(3) {\nstroke-dasharray: 250px;\n}\n\n&:nth-of-type(4) {\nstroke-dasharray: 100px;\n}\n}\n\n@keyframes preloader {\n50% {\ntransform: rotate(360deg);\n}\n}\n\n.connection-img {\nwidth: 100%;\nmargin-top: -70px;\n}\n\n.help-bottom {\n position: absolute;\n background: #232429;\n border-radius: 20px;\n padding: 4px 15px 4px 15px;\n color: #ffffff;\n font-size: 13px;\n margin-left: 15px;\n cursor: pointer;\n right: 16px;\n}\n\np {\nline-height: 1.2 !important;\n}\n\n.page-title {\nbackground: #ffffff !important;\nborder: 1px solid #e2e4e6;\npadding: 5px 15px 10px 15px;\nborder-radius: 15px;\nmargin-top: 10px;\nbox-shadow: 1.171px 9.607px 15px 0px rgba(71, 95, 123, 0.2);\n}\n\n.title-default {\nfont-size: 17px;\nfont-weight: 700;\ntext-align: center;\n}\n\n.title-sessions {\nfont-size: 18px;\nfont-weight: 700;\ntext-align: center;\n}\n\n.text-default {\nfont-size: 15px;\ntext-align: center;\nmargin-bottom: 10px;\n}\n\n.text-default-black {\ncolor: #000000;\nfont-weight: 700;\nfont-size: 15px;\ntext-align: center;\nmargin-bottom: 10px;\n}\n\n.svg-sessions {\nwidth: 150px;\nmargin: auto;\nmargin-top: 20px;\n}\n\n.button-black {\nbackground: #373737;\nborder-radius: 20px;\n}\n\n.menu-btn {\ndisplay: flex;\nalign-items: center;\nmargin-bottom: 10px !important;\npadding: 10px;\nborder: 1px solid #ccc;\ncursor: pointer;\ntransition: background-color 0.3s;\nmax-width: 90%;\nmargin: 0 auto;\nborder-radius: 20px;\n}\n\n.menu-btn:hover {\nbackground-color: #eee;\n}\n\n.icon-menu {\nmargin-right: 10px;\nfont-size: 40px;\n}\n\n.text-menu {\ndisplay: flex;\nflex-direction: column;\n}\n\n.title-menu {\nfont-weight: bold;\nline-height: 1.1;\n}\n\n.subtitle-menu {\ncolor: #777;\nline-height: 1.1;\nfont-size: 13px;\n}\n\n.menu-mobile {\nwidth: 100%;\nbox-sizing: border-box;\n}\n\n.bg-pop-up-menu {\n--tw-bg-opacity: 1;\nbackground-color: #ffffff;\nmargin: auto;\nborder-radius: 20px;\nheight: auto;\npadding: 10px 0px 20px 0px;\n}\n\n.acessos-section {\nmargin-top: 10px;\nmargin-left: 10px;\nfont-size: 18px;\nfont-weight: 700;\ncolor: #373737;\n}\n\n.menu {\ndisplay: flex;\nalign-items: center;\nmargin-bottom: 10px !important;\npadding: 10px;\ncursor: pointer;\ntransition: background-color 0.3s;\nmax-width: 90%;\nmargin: 0 auto;\nborder-radius: 20px;\n}\n\n\n.dark-mode {\nbackground-color: #272a32 !important;\ncolor: #ffffff;\n}\n\n.dark-mode .bg-input {\nbackground-color: #212529 !important;\nborder: 1px solid #343a40;\nbox-shadow: none;\n}\n\n.dark-mode .page-title {\nbackground-color: #212529 !important;\nborder: 1px solid #343a40;\n}\n\n.dark-mode .bg-conect {\nbackground-color: #272a32;\nborder: 1px solid #343a40;\nborder-radius: 20px;\n}\n\n.dark-mode .bg-pop-up-menu {\n--tw-bg-opacity: 1;\nbackground-color: #343a40;\nmargin: auto;\nborder-radius: 20px;\nheight: auto;\npadding: 10px 0px 20px 0px;\n}\n\n.dark-mode .text-\\[\\#7d7f81\\] {\n--tw-text-opacity: 1;\ncolor:#ffffff;\n}\n\n.dark-mode .menu-btn {\ndisplay: flex;\nalign-items: center;\nbackground-color: #272a32;\nborder: 1px solid #343a40;\nmargin-bottom: 10px !important;\npadding: 10px;\ncursor: pointer;\ntransition: background-color 0.3s;\nmax-width: 90%;\nmargin: 0 auto;\nborder-radius: 20px;\n}\n\n.dark-mode .bg-pop-up {\n--tw-bg-opacity: 1;\nbackground-color: #282d31;\nborder: 1px solid #343a40;\nborder-radius: 20px;\nmargin: auto;\n}\n\n.dark-mode .text-black {\n--tw-text-opacity: 1;\ncolor: #ffffff;\n}\n\n.dark-mode .container-config {\n--tw-bg-opacity: 1;\nbackground-color: #272a32;\nborder-radius: 20px;\nborder: 1px solid #343a40;\n}\n\n.dark-mode .text-white {\n--tw-text-opacity: 1;\ncolor: #cfcfcf;\n}\n\n.dark-mode .normal-button {\nflex: 1;\nbackground: #212529;\nborder: 1px solid #343a40;\ncolor: white;\npadding: 5px;\nfont-size: 14px;\nmargin-right: 10px;\nmargin-top: 10px;\nborder-radius: 20px;\n}\n\n.dark-mode #container-configs>section {\nwidth: 100%;\nmax-height: 100%;\noverflow: auto;\nbackground-color: #212529;\nborder-radius: 10px;\npadding: 10px;\nbox-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);\n}\n\n.dark-mode .from-input {\nbackground-color: #272a32;\nborder-radius: 20px;\nwidth: 100%;\n}\n\n.dark-mode .acessos-section {\nmargin-top: 10px;\nmargin-left: 10px;\nfont-size: 18px;\nfont-weight: 700;\ncolor: #ffffff;\n}\n\n.dark-mode .text-\\[\\#767881\\] {\n--tw-text-opacity: 1;\ncolor: #e2e4e6;\n}\n\n.dark-mode .menu {\ndisplay: flex;\nalign-items: center;\nmargin-bottom: 10px !important;\npadding: 10px;\ncursor: pointer;\ntransition: background-color 0.3s;\nmax-width: 90%;\nmargin: 0 auto;\nborder-radius: 20px;\n}\n\n.dark-mode .subtitle-menu {\ncolor: #bdbdbd;\nline-height: 1.1;\nfont-size: 13px;\n}\n\n.dark-mode .help-bottom {\nbackground: #212529;\nborder: 1px solid #343a40;\nborder-radius: 20px;\npadding: 4px 15px 4px 15px;\ncolor: #ffffff;\nfont-size: 13px;\n}\n\n.black-section {\nbackground-color: #000000;\n}\n\n@media (min-height: 240px) {\n.black-section {\nheight: 18px;\n}\n}\n\n@media (min-height: 320px) {\n.black-section {\nheight: 24px;\n}\n}\n\n@media (min-height: 480px) {\n.black-section {\nheight: 28px;\n}\n}\n\n@media (min-height: 720px) {\n.black-section {\nheight: 34px;\n}\n}\n\n@media (min-height: 1080px) {\n.black-section {\nheight: 36px;\n}\n}\n\n\n.home-container {\npadding: 10px 15px 30px !important;\n}\n\n.dark-mode .button-black {\nbackground-color: #272a32;\nborder: 1px solid #343a40;\nborder-radius: 20px;\n}\n\n.dark-mode .text-\\[\\#FF0000\\] {\n--tw-text-opacity: 1;\ncolor: #ffffff;\n}\n\n\n.toggle-container {\ndisplay: flex;\nalign-items: center;\n}\n\n.toggle-label {\nmargin-right: 10px;\n}\n\n.toggle-switch {\nposition: relative;\ndisplay: inline-block;\nwidth: 40px;\nheight: 20px;\nbackground-color: #ccc;\nborder-radius: 20px;\n}\n\n.toggle-switch .slider {\nposition: absolute;\ncursor: pointer;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\nbackground-color: #e5e7eb;\nborder-radius: 20px;\ntransition: 0.4s;\n}\n\n.toggle-switch .slider:before {\nposition: absolute;\ncontent: \"\";\nheight: 16px;\nwidth: 16px;\nleft: 2px;\nbottom: 2px;\nbackground-color: #ccc;\nborder-radius: 50%;\ntransition: 0.4s;\n}\n\n.toggle-switch input:checked + .slider {\nbackground-color: #7d7f81;\n}\n\n.toggle-switch input:checked + .slider:before {\ntransform: translateX(20px);\n}\n\n.icon-toggle {\nmargin-right: 5px !important;\nwidth: 16px;\nheight: 16px;\ncolor: #e2e4e6;\n}\n\n.container-config {\n--tw-bg-opacity: 1;\nbackground-color: #ffffff;\nborder-radius: 20px;\nborder: 1px solid #01010342;\n}\n\n.bg-conect {\nbackground-color: #232429;\nborder-radius: 20px;\n}\n\n.bg-black {\nbackground-color: #00000042;\nbackdrop-filter: blur(10px);\nheight: 100%;\n}\n\n.bg-pop-up {\n--tw-bg-opacity: 1;\nbackground-color: #ffffff;\nmargin: auto;\nborder-radius: 20px;\n}\n\n.bg-input {\nbackground-color: #ffffff !important;\nborder: 1px solid #e2e4e6;\nborder-radius: 20px;\nbox-shadow: 1.171px 9.607px 15px 0px rgba(71, 95, 123, 0.2);\n}\n\n.bg-\\[\\#414cb8\\] {\n--tw-bg-opacity: 1;\nbackground-color: rgb(65 76 184/var(--tw-bg-opacity))\n}\n\n.bg-\\[\\#575e81\\] {\n--tw-bg-opacity: 1;\nbackground-color: rgb(87 94 129/var(--tw-bg-opacity))\n}\n\n.bg-red-900 {\n--tw-bg-opacity: 1;\nbackground-color: rgb(127 29 29/var(--tw-bg-opacity))\n}\n\n.bg-red {\n--tw-bg-opacity: 1;\nbackground-color: #535353;\nborder-radius: 20px;\n}\n\n.dark-mode .bg-red {\n --tw-bg-opacity: 1;\n background-color: #535353;\n border-radius: 20px;\n}\n\n.bg-transparent {\nbackground-color: initial\n}\n\n.bg-gradient-to-r {\nbackground-image: linear-gradient(to right, var(--tw-gradient-stops))\n}\n\n.from-input {\nbackground-color: #ffffff;\nborder-radius: 20px;\nwidth: 100%;\n}\n\n.to-transparent {\n--tw-gradient-to: #0000 var(--tw-gradient-to-position)\n}\n\n.stroke-\\[\\#FFFFFF\\],\n.stroke-white {\nstroke: #000000;\n}\n\n.p-2 {\npadding: .5rem\n}\n\n.px-1 {\npadding-left: 1rem;\npadding-right: 1rem;\n}\n\n.px-2 {\npadding-left: .5rem;\npadding-right: .5rem\n}\n\n.px-3 {\npadding-left: .75rem;\npadding-right: .75rem\n}\n\n.px-\\[10\\%\\] {\npadding-left: 10%;\npadding-right: 10%\n}\n\n.px-\\[10px\\] {\npadding-left: 10px;\npadding-right: 10px\n}\n\n.py-2 {\npadding-top: .5rem;\npadding-bottom: .5rem\n}\n\n.py-2\\.5 {\npadding-top: 0.5rem;\npadding-bottom: 1.1rem\n}\n\n.pb-\\[30px\\] {\npadding-bottom: 30px\n}\n\n.pl-1 {\npadding-left: 0.8rem;\n}\n\n.pr-6 {\npadding-right: 1.5rem\n}\n\n.pt-\\[10px\\] {\npadding-top: 10px\n}\n\n.text-center {\ntext-align: center\n}\n\n.text-\\[0\\.5rem\\] {\nfont-size: .5rem\n}\n\n.text-\\[0\\.65rem\\] {\nfont-size: .65rem\n}\n\n.text-\\[0\\.6rem\\] {\nfont-size: .6rem\n}\n\n.text-lg {\nfont-size: 1.125rem;\nline-height: 1;\n}\n\n.text-sm {\nfont-size: .775rem;\nline-height: 1rem\n}\n\n.text-xs {\nfont-size: .75rem;\nline-height: 1rem\n}\n\n.font-medium {\nfont-weight: 500\n}\n\n.leading-7 {\nline-height: 1.75rem\n}\n\n.text-\\[\\#11c9ff\\] {\n--tw-text-opacity: 1;\ncolor: rgb(17 201 255/var(--tw-text-opacity))\n}\n\n.text-\\[\\#767881\\] {\n--tw-text-opacity: 1;\ncolor: rgb(118 120 129/var(--tw-text-opacity))\n}\n\n.text-\\[\\#7d7f81\\] {\n--tw-text-opacity: 1;\ncolor: rgb(125 127 129/var(--tw-text-opacity))\n}\n\n.text-\\[\\#FF0000\\] {\n--tw-text-opacity: 1;\ncolor: rgb(255 0 0/var(--tw-text-opacity))\n}\n\n.text-white {\n--tw-text-opacity: 1;\ncolor: rgb(255 255 255/var(--tw-text-opacity))\n}\n\n.text-black {\n--tw-text-opacity: 1;\ncolor: rgb(0 0 0/var(--tw-text-opacity))\n}\n\n.shadow-\\[0px_0px_10px_0px_rgba\\(18\\2c 22\\2c 34\\2c 1\\)\\] {\n--tw-shadow: 0px 0px 10px 0px #121622;\n--tw-shadow-colored: 0px 0px 10px 0px var(--tw-shadow-color);\n}\n\n.outline-none {\noutline: 2px solid #0000;\noutline-offset: 2px\n}\n\n.transition-\\[max-height\\] {\ntransition-property: max-height;\ntransition-timing-function: cubic-bezier(.4, 0, .2, 1);\ntransition-duration: .15s\n}\n\n.transition-all {\ntransition-property: all;\ntransition-timing-function: cubic-bezier(.4, 0, .2, 1);\ntransition-duration: .15s\n}\n\n.duration-1000 {\ntransition-duration: 1s\n}\n\n@media (max-width:300px) {\n.max-\\[300px\\]\\:text-sm {\nfont-size: .775rem;\nline-height: 1rem\n}\n}\n\n@media (min-width:280px) {\n.min-\\[280px\\]\\:text-sm {\nfont-size: .875rem;\nline-height: 1.25rem\n}\n\n.min-\\[280px\\]\\:text-xs {\nfont-size: .75rem;\nline-height: 1rem\n}\n}\n\n.button-container {\ndisplay: flex;\n}\n\n.normal-button {\nflex: 1;\nbackground: #232429;\ncolor: white;\nborder: none;\npadding: 5px;\nfont-size: 14px;\nmargin-right: 10px;\nmargin-top: 10px;\nborder-radius: 20px;\n}\n\n.normal-button:last-child {\nmargin-right: 0;\n}\n\n.normal-button:hover {\nbackground-color: #FF0000;\n}\n\n.container-credentails-and-corrier {\ndisplay: flex;\nflex-direction: column;\ngap: 10px;\nwidth: 92%;\n}\n\n\n.icon {\nmargin-right: 10px;\ncolor: red;\n}\n\n@media (min-width: 768px) {\n.w-11\\/12 {\nwidth: 92%;\n}\n}\n\n.w-9\\/9 {\nwidth: 40%;\nmargin-left: 5px;\nmargin-right: 5px;\n}\n\n.mt-13 {\nmargin-top: 15px;\n}\n\n .button-container-connect {\n display: flex;\n align-items: center;\n width: 91%;\n }\n\n .round-button {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: #272a32;\n\t\tborder: 1px solid #343a40;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n margin-left: 10px; /* Adiciona um espaçamento entre os botões */\n }\n\n .round-button svg {\n fill: #fff;\n width: 20px;\n height: 20px;\n }\n\n .main-button {\n flex: 1;\n height: 35px;\n border-radius: 20px;\n background-color: #272a32;\n\t\tborder: 1px solid #343a40;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: none;\n }\n\n .main-button span {\n font-size: 14px;\n font-weight: medium;\n color: #fff;\n }\n</style>\n</head>\n\n<body class=\"w-full h-full\">\n<main class=\"w-full h-full flex flex-col relative\">\n<section class=\"black-section\"></section>\n<section class=\"w-full h-full flex flex-col home-container\" id=\"container-home\">\n<section class=\"flex justify-between items-center relative\">\n<div id=\"svg-container\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" id=\"open-menu\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"currentColor\">\n<path d=\"M7,0H4A4,4,0,0,0,0,4V7a4,4,0,0,0,4,4H7a4,4,0,0,0,4-4V4A4,4,0,0,0,7,0ZM9,7A2,2,0,0,1,7,9H4A2,2,0,0,1,2,7V4A2,2,0,0,1,4,2H7A2,2,0,0,1,9,4Z\" />\n<path d=\"M20,0H17a4,4,0,0,0-4,4V7a4,4,0,0,0,4,4h3a4,4,0,0,0,4-4V4A4,4,0,0,0,20,0Zm2,7a2,2,0,0,1-2,2H17a2,2,0,0,1-2-2V4a2,2,0,0,1,2-2h3a2,2,0,0,1,2,2Z\" />\n<path d=\"M7,13H4a4,4,0,0,0-4,4v3a4,4,0,0,0,4,4H7a4,4,0,0,0,4-4V17A4,4,0,0,0,7,13Zm2,7a2,2,0,0,1-2,2H4a2,2,0,0,1-2-2V17a2,2,0,0,1,2-2H7a2,2,0,0,1,2,2Z\" />\n<path d=\"M20,13H17a4,4,0,0,0-4,4v3a4,4,0,0,0,4,4h3a4,4,0,0,0,4-4V17A4,4,0,0,0,20,13Zm2,7a2,2,0,0,1-2,2H17a2,2,0,0,1-2-2V17a2,2,0,0,1,2-2h3a2,2,0,0,1,2,2Z\" />\n</svg>\n</div>\n<div class=\"absolute left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2\">\n<span class=\"text-black min-[280px]:text-sm text-sm title-default\">Dashboard</span>\n</div>\n\n<div class=\"toggle-container\">\n<svg class=\"icon-toggle\" id=\"moonIcon\" xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\"><path d=\"M12.009,24A12.067,12.067,0,0,1,.075,10.725,12.121,12.121,0,0,1,10.1.152a13,13,0,0,1,5.03.206,2.5,2.5,0,0,1,1.8,1.8,2.47,2.47,0,0,1-.7,2.425c-4.559,4.168-4.165,10.645.807,14.412h0a2.5,2.5,0,0,1-.7,4.319A13.875,13.875,0,0,1,12.009,24ZM20.5,12a1,1,0,0,1-.97-.757l-.358-1.43L17.74,9.428a1,1,0,0,1,.035-1.94l1.4-.325.351-1.406a1,1,0,0,1,1.94,0l.355,1.418,1.418.355a1,1,0,0,1,0,1.94l-1.418.355-.355,1.418A1,1,0,0,1,20.5,12ZM23,17.015a1,1,0,0,0,0,2A1,1,0,0,0,23,17.015Zm-6-4a1,1,0,0,0,0,2A1,1,0,0,0,17,13.015Z\"/></svg>\n\n<svg class=\"icon-toggle\" id=\"sunIcon\" xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" data-name=\"Layer 1\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"currentColor\"><path d=\"M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5,5-2.24,5-5-2.24-5-5-5Zm0,7c-1.1,0-2-.9-2-2s.9-2,2-2,2,.9,2,2-.9,2-2,2Zm4.95-6.95c-.59-.59-.59-1.54,0-2.12l1.41-1.41c.59-.59,1.54-.59,2.12,0,.59,.59,.59,1.54,0,2.12l-1.41,1.41c-.29,.29-.68,.44-1.06,.44s-.77-.15-1.06-.44ZM7.05,16.95c.59,.59,.59,1.54,0,2.12l-1.41,1.41c-.29,.29-.68,.44-1.06,.44s-.77-.15-1.06-.44c-.59-.59-.59-1.54,0-2.12l1.41-1.41c.59-.59,1.54-.59,2.12,0ZM3.51,5.64c-.59-.59-.59-1.54,0-2.12,.59-.59,1.54-.59,2.12,0l1.41,1.41c.59,.59,.59,1.54,0,2.12-.29,.29-.68,.44-1.06,.44s-.77-.15-1.06-.44l-1.41-1.41Zm16.97,12.73c.59,.59,.59,1.54,0,2.12-.29,.29-.68,.44-1.06,.44s-.77-.15-1.06-.44l-1.41-1.41c-.59-.59-.59-1.54,0-2.12,.59-.59,1.54-.59,2.12,0l1.41,1.41Zm3.51-6.36c0,.83-.67,1.5-1.5,1.5h-2c-.83,0-1.5-.67-1.5-1.5s.67-1.5,1.5-1.5h2c.83,0,1.5,.67,1.5,1.5ZM3.5,13.5H1.5c-.83,0-1.5-.67-1.5-1.5s.67-1.5,1.5-1.5H3.5c.83,0,1.5,.67,1.5,1.5s-.67,1.5-1.5,1.5ZM10.5,3.5V1.5c0-.83,.67-1.5,1.5-1.5s1.5,.67,1.5,1.5V3.5c0,.83-.67,1.5-1.5,1.5s-1.5-.67-1.5-1.5Zm3,17v2c0,.83-.67,1.5-1.5,1.5s-1.5-.67-1.5-1.5v-2c0-.83,.67-1.5,1.5-1.5s1.5,.67,1.5,1.5Z\"/></svg>\n<label class=\"toggle-switch\">\n<input type=\"checkbox\" id=\"darkModeToggle\" style=\"margin-left: 5px;\">\n<span class=\"slider\"></span>\n</label>\n\n\n</div>\n</section>\n\n<div class=\"page-title\">\n<div class=\"subtitle\">\n<p><span class=\"font-semibold text-sm mr-2\" style=\"font-weight: 700;\">IP Local: </span><span\nclass=\"font-semibold text-xs\" id=\"local-ip\">Sem sinal </span>\n<span class=\"font-semibold text-sm mr-2\" style=\"font-weight: 700;\">Config. versão: </span><span\nclass=\"font-semibold text-sm\" id=\"version\">1.0</span>\n<span class=\"font-semibold text-sm mr-2\" style=\"font-weight: 700;\">Validade: </span><span\nclass=\"text-[#767881] text-sm font-medium\" id=\"expires-date-user-in-menu\">Sem\ninformações</span><span class=\"font-semibold text-sm mr-2\" style=\"font-weight: 700;\"> -\nStatus: <span class=\"text-[#767881] text-sm font-medium\" id=\"vpn-status\">Desconectado</span>\nPing: <span class=\"text-[#767881] text-sm font-medium\" id=\"ping-value\">00ms</span></p>\n</p>\n</div>\n</div>\n\n\n<section class=\"w-full h-1/5 flex justify-center\" style=\"margin-top:10px;\">\n<img class=\"w-full\" id=\"app-logo\" style=\"border-radius: 20px;\"\nsrc=\"https://i.ibb.co/0jqhn3Q/DTwk94c2sf.png\" alt=\"logo\" />\n</section>\n\n<section class=\"w-full h-auto flex flex-col items-center gap-3 mt-2.5 py-2.5 bg-input rounded-md\">\n <h1 class=\"text-lg font-medium\">NAVEGUE sem limites ♾️</h1>\n<section class=\"container-credentails-and-corrier h-[40px] flex justify-between items-center gap-2\" id=\"container-credentails-and-corrier\">\n<button\nclass=\"w-[calc(100%-40px)] h-full flex items-center justify-between gap-1 px-1 rounded-md cursor-none outline-none container-config\"\nid=\"button-of-list-carrier\" type=\"button\" title=\"Selecionar Configuração\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\"\nclass=\"w-6 h-6 text-black\" viewBox=\"0 0 16 16\">\n<path\nd=\"M8 16s6-5.686 6-10A6 6 0 0 0 2 6c0 4.314 6 10 6 10m0-7a3 3 0 1 1 0-6 3 3 0 0 1 0 6\" />\n</svg>\n\n<span class=\"w-full text-black text-sm truncate\" id=\"value-of-carrier\">ESCOLHA UMA CONFIGURAÇÃO</span>\n\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"text-black w-5 h-5\" viewBox=\"0 0 16 16\">\n<path fill-rule=\"evenodd\"\nd=\"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z\" />\n</svg>\n</button>\n</section>\n\n<div class=\"flex gap-2 items-center\" style=\"width: 92%;\">\n<div class=\"w-1/2 h-9 overflow-hidden border border-[#01010342] rounded-md bg-gradient-to-r from-input to-transparent\"\nid=\"container-input-username\">\n<input class=\"w-full h-full pl-1 outline-none text-black bg-transparent\" id=\"input-username\" type=\"text\" placeholder=\"Usuário\" />\n</div>\n\n<div class=\"w-1/2 h-9 flex items-center relative overflow-hidden border border-[#01010342] rounded-md bg-gradient-to-r from-input to-transparent\"\nid=\"container-input-password\">\n<input class=\"w-full h-full pl-1 outline-none black-white bg-transparent\" id=\"input-password\" type=\"password\" placeholder=\"Senha\" />\n\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"w-5 h-5 absolute right-1 text-black\" id=\"eye-view-password\" viewBox=\"0 0 16 16\">\n<path\nd=\"M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8M1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z\" />\n<path\nd=\"M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0\" />\n</svg>\n\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"w-5 h-5 absolute right-1 text-black hidden\" id=\"eye-not-view-password\"\nviewBox=\"0 0 16 16\">\n<path\nd=\"M13.359 11.238C15.06 9.72 16 8 16 8s-3-5.5-8-5.5a7.028 7.028 0 0 0-2.79.588l.77.771A5.944 5.944 0 0 1 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.134 13.134 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755-.165.165-.337.328-.517.486z\" />\n<path\nd=\"M11.297 9.176a3.5 3.5 0 0 0-4.474-4.474l.823.823a2.5 2.5 0 0 1 2.829 2.829zm-2.943 1.299.822.822a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829\" />\n<path\nd=\"M3.35 5.47c-.18.16-.353.322-.518.487A13.134 13.134 0 0 0 1.172 8l.195.288c.335.48.83 1.12 1.465 1.755C4.121 11.332 5.881 12.5 8 12.5c.716 0 1.39-.133 2.02-.36l.77.772A7.029 7.029 0 0 1 8 13.5C3 13.5 0 8 0 8s.939-1.721 2.641-3.238l.708.709zm10.296 8.884-12-12 .708-.708 12 12-.708.708\" />\n</svg>\n</div>\n\n<div class=\"w-full h-9 hidden items-center relative overflow-hidden border border-[#01010342] rounded-md bg-gradient-to-r from-input to-transparent\" id=\"container-input-uuid\">\n<input class=\"w-full h-full pl-1 outline-none text-black bg-transparent\" id=\"input-uuid\" type=\"password\" placeholder=\"UUID\" />\n\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"w-5 h-5 absolute right-1 text-white\" id=\"eye-view-uuid\" viewBox=\"0 0 16 16\">\n<path\nd=\"M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8M1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z\" />\n<path\nd=\"M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0\" />\n</svg>\n\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"w-5 h-5 absolute right-1 text-white hidden\" id=\"eye-not-view-uuid\"\nviewBox=\"0 0 16 16\">\n<path\nd=\"M13.359 11.238C15.06 9.72 16 8 16 8s-3-5.5-8-5.5a7.028 7.028 0 0 0-2.79.588l.77.771A5.944 5.944 0 0 1 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.134 13.134 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755-.165.165-.337.328-.517.486z\" />\n<path\nd=\"M11.297 9.176a3.5 3.5 0 0 0-4.474-4.474l.823.823a2.5 2.5 0 0 1 2.829 2.829zm-2.943 1.299.822.822a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829\" />\n<path\nd=\"M3.35 5.47c-.18.16-.353.322-.518.487A13.134 13.134 0 0 0 1.172 8l.195.288c.335.48.83 1.12 1.465 1.755C4.121 11.332 5.881 12.5 8 12.5c.716 0 1.39-.133 2.02-.36l.77.772A7.029 7.029 0 0 1 8 13.5C3 13.5 0 8 0 8s.939-1.721 2.641-3.238l.708.709zm10.296 8.884-12-12 .708-.708 12 12-.708.708\" />\n</svg>\n</div>\n</div>\n\n<div id=\"spinner\" style=\"display: none;\">\n<svg class=\"loader\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 340 340\">\n<circle cx=\"170\" cy=\"170\" r=\"160\" stroke=\"#0074ba\" />\n<circle cx=\"170\" cy=\"170\" r=\"135\" stroke=\"#00d26a\" />\n<circle cx=\"170\" cy=\"170\" r=\"110\" stroke=\"#0074ba\" />\n<circle cx=\"170\" cy=\"170\" r=\"85\" stroke=\"#00d26a\" />\n</svg>\n<p style=\"text-align: center;\">Conectando...</p>\n</div>\n\n<div class=\"connection-img\" id=\"connected-img\" style=\"display: none;\">\n<img style=\"width: 35% !important; margin: auto;\"\nsrc=\"https://images.emojiterra.com/google/noto-emoji/unicode-15/animated/1f30d.gif\" />\n<p style=\"text-align: center;\">Conectado com sucesso ✅</p>\n</div>\n\n <div class=\"button-container-connect\">\n <button class=\"main-button\" id=\"button-vpn-start-stop\" type=\"button\" title=\"conectar ou desconectar vpn\">\n <span id=\"status-button-vpn\">Conectar</span>\n </button>\n\n <button class=\"round-button\" id=\"nav-help\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12,0A12,12,0,1,0,24,12,12.013,12.013,0,0,0,12,0Zm0,22A10,10,0,1,1,22,12,10.011,10.011,0,0,1,12,22Z\"/><path d=\"M12.717,5.063A4,4,0,0,0,8,9a1,1,0,0,0,2,0,2,2,0,0,1,2.371-1.967,2.024,2.024,0,0,1,1.6,1.595,2,2,0,0,1-1,2.125A3.954,3.954,0,0,0,11,14.257V15a1,1,0,0,0,2,0v-.743a1.982,1.982,0,0,1,.93-1.752,4,4,0,0,0-1.213-7.442Z\"/><rect x=\"11\" y=\"17\" width=\"2\" height=\"2\" rx=\"1\"/></svg>\n </button>\n </div>\n\n\n</section>\n\n<section class=\"acessos-section\">Acessos rápidos.</section>\n\n<div>\n\n\n\n<section class=\"button-container\">\n<button class=\"normal-button\" id=\"sync\" onclick=\"DtStartAppUpdate.execute()\">Atualizar</button>\n<button class=\"normal-button\" id=\"button-logs\"><span class=\"icon-buttons\">Registros</button>\n<button class=\"normal-button\" id=\"nav-perfil\"><span class=\"icon-buttons\">Perfil</button>\n</section>\n\n<section class=\"promo-section\" style=\"text-align: center; margin-top: 10px;\">Mantenha seu aplicativo sempre\natualizado e evite a interrupção dos serviços.\n</section>\n\n<section class=\"w-full h-10 flex items-center justify-center gap-2 mt-auto rounded-md bg-buttons\"\nid=\"nav-help\" style=\"display: none;\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\"\nclass=\"text-white w-4 h-4\" viewBox=\"0 0 16 16\">\n<path\nd=\"M5.5 7a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1zM5 9.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5m0 2a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5\" />\n<path\nd=\"M9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.5zm0 1v2A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1z\" />\n</svg>\n\n<span class=\"text-white text-sm font-medium\">PRECISO DE AJUDA</span>\n</section>\n</section>\n\n<section class=\"w-full h-full flex flex-col items-center absolute transition-all bg-black -translate-x-full\"\nid=\"container-menu\">\n<section class=\"w-11/12 h-2/3 flex flex-col relative rounded-md bg-pop-up-menu\">\n<section class=\"w-full h-10 flex justify-between items-center px-1\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\"\nclass=\"ml-auto text-black w-8 h-8\" id=\"hidden-menu\" viewBox=\"0 0 24 24\">\n<path\nd=\"M19,2H5C2.243,2,0,4.243,0,7v10c0,2.757,2.243,5,5,5h14c2.757,0,5-2.243,5-5V7c0-2.757-2.243-5-5-5Zm3,15c0,1.654-1.346,3-3,3H5c-1.654,0-3-1.346-3-3V7c0-1.654,1.346-3,3-3h14c1.654,0,3,1.346,3,3v10Zm-5.793-7.793l-2.793,2.793,2.793,2.793c.391,.391,.391,1.023,0,1.414-.195,.195-.451,.293-.707,.293s-.512-.098-.707-.293l-2.793-2.793-2.793,2.793c-.195,.195-.451,.293-.707,.293s-.512-.098-.707-.293c-.391-.391-.391-1.023,0-1.414l2.793-2.793-2.793-2.793c-.391-.391-.391-1.023,0-1.414s1.023-.391,1.414,0l2.793,2.793,2.793-2.793c.391-.391,1.023-.391,1.414,0s.391,1.023,0,1.414Z\" />\n</svg>\n</section>\n\n<section class=\"menu-mobile\">\n<div class=\"menu\">\n\n<div class=\"text-menu\">\n<div class=\"title-menu\">CONFIGURAÇÕES</div>\n<div class=\"subtitle-menu\">Configure o seu aplicativo e faça ajustes do seu chip de forma totalmente ilimitada.</div>\n</div>\n</div>\n</div>\n</section>\n\n<section class=\"menu-mobile\">\n<div class=\"menu-btn\" id=\"nav-terms\">\n<div class=\"icon-menu\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n<path\nd=\"M22.775,9.792c-.778-.649-1.8-.917-2.795-.737l-5.897,1.072c-.795,.145-1.507,.499-2.083,1-.576-.501-1.288-.855-2.083-1l-5.898-1.073c-.997-.179-2.015,.087-2.794,.737-.778,.649-1.225,1.604-1.225,2.617v9.433l12,2.182,12-2.182V12.41c0-1.014-.446-1.967-1.225-2.617Zm-12.275,10.91l-7.5-1.364v-6.929c0-.167,.092-.268,.147-.314,.055-.046,.169-.117,.335-.089l5.898,1.072c.648,.118,1.12,.683,1.12,1.342v6.281Zm10.5-1.364l-7.5,1.364v-6.281c0-.66,.471-1.224,1.12-1.342l5.897-1.072c.166-.033,.28,.042,.335,.088,.056,.046,.147,.147,.147,.314v6.929ZM7.5,4.5C7.5,2.015,9.515,0,12,0s4.5,2.015,4.5,4.5-2.015,4.5-4.5,4.5-4.5-2.015-4.5-4.5Z\" />\n</svg>\n</div>\n<div class=\"text-menu\">\n<div class=\"title-menu\">Termos de uso do aplicativo</div>\n<div class=\"subtitle-menu\">Leia cuidadosamente nossos termos antes de usar o aplicativo.\n</div>\n</div>\n</div>\n</section>\n\n<section class=\"menu-mobile\">\n<div class=\"menu-btn\" id=\"nav-hotspot\">\n<div class=\"icon-menu\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 24 24\" fill=\"currentColor\" >\n<path\nd=\"m20,15h-4v-4c0-.552-.447-1-1-1s-1,.448-1,1v4H4c-2.206,0-4,1.794-4,4v1c0,2.206,1.794,4,4,4h16c2.206,0,4-1.794,4-4v-1c0-2.206-1.794-4-4-4Zm-15.5,6c-.828,0-1.5-.672-1.5-1.5s.672-1.5,1.5-1.5,1.5.672,1.5,1.5-.672,1.5-1.5,1.5Zm5,0c-.828,0-1.5-.672-1.5-1.5s.672-1.5,1.5-1.5,1.5.672,1.5,1.5-.672,1.5-1.5,1.5ZM15,5c1.817,0,3.526.708,4.812,1.993.391.391.391,1.024,0,1.414-.195.195-.451.293-.707.293s-.512-.098-.707-.293c-.907-.908-2.114-1.407-3.397-1.407s-2.49.5-3.397,1.407c-.39.391-1.023.391-1.414,0-.391-.39-.391-1.023,0-1.414,1.285-1.285,2.994-1.993,4.811-1.993Zm-8.778-1.182C8.485,1.392,11.684,0,15,0s6.516,1.392,8.778,3.818c.377.404.354,1.037-.05,1.414-.192.18-.438.269-.682.269-.268,0-.534-.107-.731-.318-1.886-2.022-4.552-3.182-7.315-3.182s-5.43,1.16-7.315,3.182c-.378.404-1.01.425-1.414.049-.404-.377-.426-1.01-.049-1.414Z\" />\n</svg>\n</div>\n<div class=\"text-menu\">\n<div class=\"title-menu\">Roteador Wi-fi (Proxy)</div>\n<div class=\"subtitle-menu\">Compartilhe sua internet com outras pessoas.</div>\n</div>\n</div>\n</section>\n\n<section class=\"menu-mobile\">\n<div class=\"menu-btn\" id=\"nav-apn\">\n<div class=\"icon-menu\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 24 24\" fill=\"currentColor\" >\n<path\nd=\"m17,0h-4.757c-1.068,0-2.072.416-2.829,1.172l-2.242,2.242c-.745.744-1.172,1.774-1.172,2.828v8.758c0,2.757,2.243,5,5,5h6c2.757,0,5-2.243,5-5V5c0-2.757-2.243-5-5-5Zm3,15c0,1.654-1.346,3-3,3h-6c-1.654,0-3-1.346-3-3V6.242c0-.526.213-1.042.586-1.414l2.242-2.242c.378-.378.881-.586,1.415-.586h4.757c1.654,0,3,1.346,3,3v10Zm-3,8c0,.553-.447,1-1,1h-5c-4.962,0-9-4.037-9-9v-7c0-.553.448-1,1-1s1,.447,1,1v7c0,3.859,3.14,7,7,7h5c.553,0,1,.447,1,1Zm-3-11h-4v-1.5c0-.828.672-1.5,1.5-1.5h2.5v3Zm4-1.5v1.5h-3v-3h1.5c.828,0,1.5.672,1.5,1.5Zm-8,2.5h3v3h-1.5c-.828,0-1.5-.672-1.5-1.5v-1.5Zm4,0h4v1.5c0,.828-.672,1.5-1.5,1.5h-2.5v-3Z\" />\n</svg>\n</div>\n<div class=\"text-menu\">\n<div class=\"title-menu\">Configurações de APN</div>\n<div class=\"subtitle-menu\">Ajuste seu chip para conseguir navegar corretamente.</div>\n</div>\n</div>\n</section>\n\n<section class=\"menu-mobile\">\n<div class=\"menu-btn\" id=\"nav-cache\">\n<div class=\"icon-menu\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 24 24\" fill=\"currentColor\" >\n<path\nd=\"M23.715,2.285a1.013,1.013,0,0,0-1.43,0L17.521,7.049l-.32-.313a5.008,5.008,0,0,0-6.429-.479A16.618,16.618,0,0,1,6.224,8.685L4.15,9.293a5.036,5.036,0,0,0-3.113,2.635A4.973,4.973,0,0,0,.9,15.947a12.95,12.95,0,0,0,12.112,8.064h.924a1.011,1.011,0,0,0,.578-.182A15.288,15.288,0,0,0,21.224,13.62a5.029,5.029,0,0,0-1.453-4.374l-.8-.784,4.747-4.747A1.013,1.013,0,0,0,23.715,2.285Zm-10.107,19.7h-.6A11.3,11.3,0,0,1,8.7,21.138l.011-.006a11.546,11.546,0,0,0,4.351-3.8l.518-.761a1.01,1.01,0,0,0-1.67-1.138l-.518.761A9.535,9.535,0,0,1,7.8,19.327l-1.251.63a10.757,10.757,0,0,1-2.583-2.57,11.625,11.625,0,0,0,4.377-2.664,1.011,1.011,0,0,0-1.414-1.446,9.617,9.617,0,0,1-3.98,2.32c-.061-.135-.127-.267-.182-.406a2.906,2.906,0,0,1,.085-2.381,3.023,3.023,0,0,1,1.864-1.578l2.073-.608a15.364,15.364,0,0,0,3.426-1.588l7.915,7.712A14.192,14.192,0,0,1,13.608,21.989Zm5.62-8.683a12.421,12.421,0,0,1-.309,1.387L11.948,7.9l0,0a3.011,3.011,0,0,1,1.755-.566,2.973,2.973,0,0,1,2.084.849l2.569,2.509A3.01,3.01,0,0,1,19.228,13.306Z\" />\n</svg>\n</div>\n<div class=\"text-menu\">\n<div class=\"title-menu\">Restauração do aplicativo</div>\n<div class=\"subtitle-menu\">Elimine resíduos de versões antigas restaurando seu aplicativo.\n</div>\n</div>\n</div>\n</section>\n\n<section class=\"menu-mobile\" style=\"margin-bottom:10px;\">\n<div class=\"menu-btn\" id=\"nav-battery\">\n<div class=\"icon-menu\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 24 24\" fill=\"currentColor\" >\n<path\nd=\"M7,18.5c0,.829-.671,1.5-1.5,1.5-3.033,0-5.5-2.467-5.5-5.5v-5c0-3.033,2.467-5.5,5.5-5.5,.829,0,1.5,.671,1.5,1.5s-.671,1.5-1.5,1.5c-1.378,0-2.5,1.122-2.5,2.5v5c0,1.378,1.122,2.5,2.5,2.5,.829,0,1.5,.671,1.5,1.5Zm5.593-8h-2.142l2.331-4.283c.396-.728,.126-1.639-.601-2.035-.727-.396-1.638-.127-2.035,.601,0,0-3.012,5.559-3.042,5.657-.22,.728-.091,1.489,.354,2.089,.451,.608,1.186,.971,1.964,.971h2.235l-2.149,4.333c-.368,.742-.065,1.642,.677,2.01,.214,.106,.441,.157,.666,.157,.552,0,1.083-.306,1.345-.834l2.463-4.966c.438-.733,.456-1.65,.043-2.421-.424-.79-1.231-1.28-2.109-1.28Zm10.407-2.5h-1.208c-.655-2.306-2.78-4-5.292-4-.828,0-1.5,.671-1.5,1.5s.672,1.5,1.5,1.5c1.379,0,2.5,1.122,2.5,2.5v5c0,1.378-1.121,2.5-2.5,2.5-.828,0-1.5,.671-1.5,1.5s.672,1.5,1.5,1.5c2.513,0,4.637-1.694,5.292-4h1.208c.552,0,1-.448,1-1v-6c0-.552-.448-1-1-1Z\" />\n</svg>\n</div>\n<div class=\"text-menu\">\n<div class=\"title-menu\">Otimizar bateria</div>\n<div class=\"subtitle-menu\">Obtenha um desempenho melhor do seu aparelho otimizando sua bateria.</div>\n</div>\n</div>\n</section>\n</section>\n</section>\n\n<section\nclass=\"w-full h-full flex flex-col items-center justify-center absolute transition-all scale-0 bg-black\" id=\"container-terms\">\n<section class=\"w-11/12 h-2/3 flex flex-col relative rounded-md bg-pop-up\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"svg-sessions\" id=\"termos\" data-name=\"termos\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n<path\nd=\"M22.775,9.792c-.778-.649-1.8-.917-2.795-.737l-5.897,1.072c-.795,.145-1.507,.499-2.083,1-.576-.501-1.288-.855-2.083-1l-5.898-1.073c-.997-.179-2.015,.087-2.794,.737-.778,.649-1.225,1.604-1.225,2.617v9.433l12,2.182,12-2.182V12.41c0-1.014-.446-1.967-1.225-2.617Zm-12.275,10.91l-7.5-1.364v-6.929c0-.167,.092-.268,.147-.314,.055-.046,.169-.117,.335-.089l5.898,1.072c.648,.118,1.12,.683,1.12,1.342v6.281Zm10.5-1.364l-7.5,1.364v-6.281c0-.66,.471-1.224,1.12-1.342l5.897-1.072c.166-.033,.28,.042,.335,.088,.056,.046,.147,.147,.147,.314v6.929ZM7.5,4.5C7.5,2.015,9.515,0,12,0s4.5,2.015,4.5,4.5-2.015,4.5-4.5,4.5-4.5-2.015-4.5-4.5Z\" />\n</svg>\n<h1 class=\"w-full mt-13 text-[#FF0000] title-sessions\">Termos de uso do aplicativo</h1>\n<section class=\"w-full h-full mt-3 mb-3 px-3 overflow-auto text-center\">\n<p class=\"text-black text-default\">1º - Suporte é direcionado apenas para (Clientes e revendedores)\nque estejam com todos os requisitos necessários para utilização do nosso aplicativo.</p>\n\n<p class=\"text-black text-default\">2º - Não assumimos responsabilidade pela abrangência do sinal das\noperadoras, tampouco por eventuais bloqueios ou interrupções de conexão, quer sejam atribuíveis\na problemas técnicos da rede ou condições climáticas.</p>\n\n<p class=\"text-black text-default\">3º - A conectividade à internet pode ser restrita para\ndeterminados sites que implementam bloqueios ao uso de redes privadas virtuais (VPNs), tais como\nBet365, Spotify, entre outros...</p>\n\n<p class=\"text-black text-default\">4º - O uso de programas como uTorrent ou aplicativos P2P, que\npodem resultar em danos aos nossos servidores, é extremamente proibido. O descumprimento dessa\nnorma pode acarretar em banimento permanente, sem a possibilidade de reembolso.</p>\n\n<p class=\"text-black text-default\">5º - O cliente tem o direito de requerer o reembolso no período\nde até 7 dias corridos a partir da data de assinatura do plano. Em caso de aprovação do\nreembolso, o valor correspondente será estornado ao solicitante no prazo máximo de 15 dias.</p>\n</section>\n<section class=\"w-full h-auto flex items-center justify-center my-3\">\n<button class=\"w-2/4 h-9 rounded-md cursor-none button-black\" id=\"close-terms-container\"\ntype=\"button\">\n<span class=\"text-white\">CONCORDO</span>\n</button>\n</section>\n</section>\n</section>\n\n\n<section\nclass=\"w-full h-full flex flex-col items-center justify-center absolute transition-all scale-0 bg-black\" id=\"container-help\">\n<section class=\"w-11/12 h-2/3 flex flex-col relative rounded-md bg-pop-up\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"svg-sessions\" id=\"central-de-ajuda\" data-name=\"central-de-ajuda\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n<path\nd=\"m22,9v-3c0-1.654-1.346-3-3-3h-6V0h-2v3h-6c-1.654,0-3,1.346-3,3v3H0v6h2v6h12.697l3.963,2.642c.36.24.775.361,1.191.361.348,0,.696-.084,1.015-.255.699-.375,1.134-1.1,1.134-1.894v-6.855h2v-6h-2Zm-2,12.855c0,.022,0,.089-.078.13-.08.043-.136.004-.152-.007l-4.467-2.978H4V6c0-.551.448-1,1-1h14c.552,0,1,.449,1,1v15.855ZM7,9.5c0-.828.672-1.5,1.5-1.5s1.5.672,1.5,1.5-.672,1.5-1.5,1.5-1.5-.672-1.5-1.5Zm7,0c0-.828.672-1.5,1.5-1.5s1.5.672,1.5,1.5-.672,1.5-1.5,1.5-1.5-.672-1.5-1.5Zm2.336,3.752l1.33,1.493c-.103.092-2.559,2.254-5.666,2.254s-5.563-2.162-5.666-2.254l1.33-1.493c.02.018,2.005,1.748,4.336,1.748s4.316-1.73,4.336-1.748Z\" />\n</svg>\n<h1 class=\"w-full mt-13 text-[#FF0000] title-sessions\">Central de ajuda</h1>\n<section class=\"w-full h-full mt-3 mb-3 px-3 overflow-auto text-center\">\n<p class=\"text-black text-default-black\">Estou conectado, mas o aplicativo não está funcionando a\ninternet, o que fazer?</p>\n\n<p class=\"text-black text-default\">Geralmente esse problema está relacionado ao protolo de APN, caso\no IP da sua operadora seja: 192.0.0.2 ou 192.0.0.4 é necessário alterar o protolo de APN, você\npode fazer isso clicando no menu e em seguida > Configurações de APN.</p>\n\n<p class=\"text-black text-default-black\">Se eu usar a (VPN) em meu dispositivo, isso irá consumir os\ndados da minha franquia fornecida pela operadora de celular?</p>\n\n<p class=\"text-black text-default\">Sim, o uso da VPN irá consumir a sua franquia de dados. Quando se\ntem uma franquia de dados, o aplicativo faz uma conexão direta, e passa a funcionar somente como\num protetor de dados e localização;</p>\n\n<p class=\"text-black text-default-black\">Fiz um plano e agora quero saber se é possível rotear a\ninternet?</p>\n\n<p class=\"text-black text-default\">Sim, é possível rotear através do roteamento via proxy, você pode\nfazer isso clicando no Menu e em seguida > Roteamento via proxy, vale ressaltar que o processo é\ncomplexo e por isso não damos assistência ao roteamento.</p>\n</section>\n<section class=\"w-full h-auto flex items-center justify-center my-3\">\n<button class=\"w-2/4 h-9 rounded-md cursor-none button-black\" id=\"close-help-container\" type=\"button\">\n<span class=\"text-white\">Fechar</span>\n</button>\n</section>\n</section>\n</section>\n\n<section\nclass=\"w-full h-full flex flex-col items-center justify-center absolute transition-all scale-0 bg-black\" id=\"container-hotspot\">\n<section class=\"w-11/12 h-2/3 flex flex-col relative rounded-md bg-pop-up\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"svg-sessions\" id=\"roteamento\" data-name=\"roteamento\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n<path\nd=\"m20,15h-4v-4c0-.552-.447-1-1-1s-1,.448-1,1v4H4c-2.206,0-4,1.794-4,4v1c0,2.206,1.794,4,4,4h16c2.206,0,4-1.794,4-4v-1c0-2.206-1.794-4-4-4Zm-15.5,6c-.828,0-1.5-.672-1.5-1.5s.672-1.5,1.5-1.5,1.5.672,1.5,1.5-.672,1.5-1.5,1.5Zm5,0c-.828,0-1.5-.672-1.5-1.5s.672-1.5,1.5-1.5,1.5.672,1.5,1.5-.672,1.5-1.5,1.5ZM15,5c1.817,0,3.526.708,4.812,1.993.391.391.391,1.024,0,1.414-.195.195-.451.293-.707.293s-.512-.098-.707-.293c-.907-.908-2.114-1.407-3.397-1.407s-2.49.5-3.397,1.407c-.39.391-1.023.391-1.414,0-.391-.39-.391-1.023,0-1.414,1.285-1.285,2.994-1.993,4.811-1.993Zm-8.778-1.182C8.485,1.392,11.684,0,15,0s6.516,1.392,8.778,3.818c.377.404.354,1.037-.05,1.414-.192.18-.438.269-.682.269-.268,0-.534-.107-.731-.318-1.886-2.022-4.552-3.182-7.315-3.182s-5.43,1.16-7.315,3.182c-.378.404-1.01.425-1.414.049-.404-.377-.426-1.01-.049-1.414Z\" />\n</svg>\n<h1 class=\"w-full mt-13 text-[#FF0000] title-sessions\">Roteamento por Proxy</h1>\n<section class=\"w-full h-full mt-3 mb-3 px-3 overflow-auto text-center\">\n<p class=\"text-black text-default\">Essa função possibilita você de compartilhar a sua internet VPN\ncom outros dispositivos, através do roteamento via proxy.</p>\n<p class=\"text-black text-default\">Quando ativada, ela habilita uma notificação na statusbar do\nandroid com os \"IPS\" disponíveis para conexão.</p>\n<p class=\"text-black text-default\">Para mais informações, entre em contato com seu revendedor\nautorizado.</p>\n</section>\n<section class=\"w-full h-auto flex items-center justify-center my-3\">\n<button class=\"w-9/9 h-9 rounded-md cursor-none button-black\" id=\"button-hotspot\" type=\"button\">\n<span class=\"text-white\" id=\"value-of-button-hotspot\">ATIVAR</span>\n</button>\n<button class=\"w-9/9 h-9 rounded-md cursor-none bg-red\" id=\"close-hotspot-container\" type=\"button\">\n<span class=\"text-white\">FECHAR</span>\n</button>\n</section>\n</section>\n</section>\n\n<section\nclass=\"w-full h-full flex flex-col items-center justify-center absolute transition-all scale-0 bg-black\"\nid=\"container-perfil\">\n<section class=\"w-11/12 h-2/3 flex flex-col relative rounded-md bg-pop-up\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"svg-sessions\" id=\"Minha-Conta\" data-name=\"Minha-Conta\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n<path\nd=\"m18,12c-3.314,0-6,2.686-6,6s2.686,6,6,6,6-2.686,6-6-2.686-6-6-6Zm0,2c1.105,0,2,.895,2,2s-.895,2-2,2-2-.895-2-2,.895-2,2-2Zm3,6.64s-.007.011-.011.015c-.68.766-1.652,1.273-2.753,1.338-1.282.076-2.449-.476-3.236-1.375v-.119c0-.828.672-1.5,1.5-1.5h3c.828,0,1.5.672,1.5,1.5v.14Zm3-13.14v2.5c0,.828-.672,1.5-1.5,1.5s-1.5-.672-1.5-1.5H3v8.5c0,1.381,1.119,2.5,2.5,2.5h4c.828,0,1.5.672,1.5,1.5s-.672,1.5-1.5,1.5h-4c-3.038,0-5.5-2.462-5.5-5.5V7.5C0,4.462,2.462,2,5.5,2h.5v-.5c0-.828.672-1.5,1.5-1.5s1.5.672,1.5,1.5v.5h6v-.493c0-.833.675-1.507,1.507-1.507h.038c.804,0,1.455.652,1.455,1.455v.545s.5,0,.5,0c3.038,0,5.5,2.462,5.5,5.5Z\" />\n</svg>\n<h1 class=\"w-full mt-13 text-[#FF0000] title-sessions\">Minha conta</h1>\n<section class=\"w-full h-full mt-3 mb-3 px-3 overflow-auto text-center\">\n<p class=\"text-black text-default\">Aqui está algumas informações básicas sobre o seu plano.</p>\n<p class=\"text-black text-default\">O seu nome de usuário é\n<span class=\"text-black text-default-black\" id=\"username-container\">Conecte para obter os\ndados)</span>,o seu plano irá vencer no dia\n<span class=\"text-black text-default-black\" id=\"expires-date-user-in-menu\">conecte para\nverificar a validade</span>, até agora você utilizou\n<span class=\"text-black text-default-black\" id=\"download-value\">Conecte para obter os\ndados)</span> do seu plano ilimitado.\n</p>\n<p class=\"text-black text-default\">Fique atento a validade do seu plano e renove sempre antes de\nvencer para evitar a interrupção do serviço.</p>\n<p class=\"text-black text-default\">Você pode renovar o seu plano de forma automática clicando no\nlink abaixo.</p>\n</section>\n<section class=\"w-full h-auto flex items-center justify-center my-3\">\n<button class=\"w-9/9 h-9 rounded-md cursor-none button-black\" id=\"nav-renew\" type=\"button\">\n<span class=\"text-white\">Renovar</span>\n</button>\n<button class=\"w-9/9 h-9 rounded-md cursor-none bg-red\" id=\"close-perfil-container\" type=\"button\">\n<span class=\"text-white\">Fechar</span>\n</button>\n</section>\n</section>\n</section>\n\n<section\nclass=\"w-full h-full flex flex-col items-center justify-center absolute transition-all scale-0 bg-black\"\nid=\"container-battery\">\n<section class=\"w-11/12 h-2/3 flex flex-col relative rounded-md bg-pop-up\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"svg-sessions\" id=\"Battery\" data-name=\"Battery\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n<path\nd=\"M7,18.5c0,.829-.671,1.5-1.5,1.5-3.033,0-5.5-2.467-5.5-5.5v-5c0-3.033,2.467-5.5,5.5-5.5,.829,0,1.5,.671,1.5,1.5s-.671,1.5-1.5,1.5c-1.378,0-2.5,1.122-2.5,2.5v5c0,1.378,1.122,2.5,2.5,2.5,.829,0,1.5,.671,1.5,1.5Zm5.593-8h-2.142l2.331-4.283c.396-.728,.126-1.639-.601-2.035-.727-.396-1.638-.127-2.035,.601,0,0-3.012,5.559-3.042,5.657-.22,.728-.091,1.489,.354,2.089,.451,.608,1.186,.971,1.964,.971h2.235l-2.149,4.333c-.368,.742-.065,1.642,.677,2.01,.214,.106,.441,.157,.666,.157,.552,0,1.083-.306,1.345-.834l2.463-4.966c.438-.733,.456-1.65,.043-2.421-.424-.79-1.231-1.28-2.109-1.28Zm10.407-2.5h-1.208c-.655-2.306-2.78-4-5.292-4-.828,0-1.5,.671-1.5,1.5s.672,1.5,1.5,1.5c1.379,0,2.5,1.122,2.5,2.5v5c0,1.378-1.121,2.5-2.5,2.5-.828,0-1.5,.671-1.5,1.5s.672,1.5,1.5,1.5c2.513,0,4.637-1.694,5.292-4h1.208c.552,0,1-.448,1-1v-6c0-.552-.448-1-1-1Z\" />\n</svg>\n<h1 class=\"w-full mt-13 text-[#FF0000] title-sessions\">Otimizar Bateria</h1>\n<section class=\"w-full h-full mt-3 mb-3 px-3 overflow-auto text-center\">\n<p class=\"text-black text-default\">Essa opção permite a execução contínua do aplicativo em segundo\nplano ou seja o aplicativo continuará executando as tarefas e processos mesmo quando não está\nsendo ativamente utilizado, vale ressaltar que essa ação poderá reduzir a duração da sua\nbateria.</p>\n<p class=\"text-black text-default\">Esse processo evita que o aplicativo fique desconectando ou sendo\nfinalizado quando está em outros aplicativos.</p>\n<p class=\"text-black text-default\">Uma vez que ativado pelo aqui pelo aplicativo, só será possível\nreverter a situação pelas configurações do seu aparelho.</p>\n</section>\n<section class=\"w-full h-auto flex items-center justify-center my-3\">\n<button class=\"w-9/9 h-9 rounded-md cursor-none button-black\"\nonclick=\"DtIgnoreBatteryOptimizations.execute()\" type=\"button\">\n<span class=\"text-white\">Otimizar</span>\n</button>\n<button class=\"w-9/9 h-9 rounded-md cursor-none bg-red\" id=\"close-battery-container\" type=\"button\">\n<span class=\"text-white\">Fechar</span>\n</button>\n</section>\n</section>\n</section>\n\n<section\nclass=\"w-full h-full flex flex-col items-center justify-center absolute transition-all scale-0 bg-black\"\nid=\"container-apn\">\n<section class=\"w-11/12 h-2/3 flex flex-col relative rounded-md bg-pop-up\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"svg-sessions\" id=\"alterando-apn\" data-name=\"alterando-apn\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n<path\nd=\"m17,0h-4.757c-1.068,0-2.072.416-2.829,1.172l-2.242,2.242c-.745.744-1.172,1.774-1.172,2.828v8.758c0,2.757,2.243,5,5,5h6c2.757,0,5-2.243,5-5V5c0-2.757-2.243-5-5-5Zm3,15c0,1.654-1.346,3-3,3h-6c-1.654,0-3-1.346-3-3V6.242c0-.526.213-1.042.586-1.414l2.242-2.242c.378-.378.881-.586,1.415-.586h4.757c1.654,0,3,1.346,3,3v10Zm-3,8c0,.553-.447,1-1,1h-5c-4.962,0-9-4.037-9-9v-7c0-.553.448-1,1-1s1,.447,1,1v7c0,3.859,3.14,7,7,7h5c.553,0,1,.447,1,1Zm-3-11h-4v-1.5c0-.828.672-1.5,1.5-1.5h2.5v3Zm4-1.5v1.5h-3v-3h1.5c.828,0,1.5.672,1.5,1.5Zm-8,2.5h3v3h-1.5c-.828,0-1.5-.672-1.5-1.5v-1.5Zm4,0h4v1.5c0,.828-.672,1.5-1.5,1.5h-2.5v-3Z\" />\n</svg>\n<h1 class=\"w-full mt-13 text-[#FF0000] title-sessions\">Alterando sua APN</h1>\n<section class=\"w-full h-full mt-3 mb-3 px-3 overflow-auto text-center\">\n<p class=\"text-black text-default\">O seu aplicativo não está conectando ou conecta e não gera dados?\nFaça o passo a passo a seguir e solucione seu problema.</p>\n<p class=\"text-black text-default\">1º - Selecione a opção de APN ao qual ja está marcada e deslize a\ntela até encontrar as opções, Protocolo APN e Protocolo de roaming APN.</p>\n<p class=\"text-black text-default\">2º - Após encontrar as opções realize o seguinte passo.</p>\n<p class=\"text-black text-default\">3º - No campo Protocolo APN, marque IPV4.</p>\n<p class=\"text-black text-default\">4º - No campo Protocolo de roaming APN, marque IPV4.</p>\n<p class=\"text-black text-default\">5º - Após selecionado os protolos IPV4, vá até os simbolo de\nopções no canto direito na parte superior da sua tela (ou na parte inferior do aparelho\ndependendo da sua versão do android) e clique em Salvar.</p>\n<p class=\"text-black text-default\">6º - Após salvar, volte para tela inicial do aplicativo e ligue o\nmodo avião por 5 segundos.</p>\n<p class=\"text-black text-default\">Pronto, caso o problema for apenas de não gerar dados, você\nconseguirá conectar normalmente e usar nosso aplicativo.</p>\n</section>\n<section class=\"w-full h-auto flex items-center justify-center my-3\">\n<button class=\"w-9/9 h-9 rounded-md cursor-none button-black\" onclick=\"DtStartApnActivity.execute()\"\ntype=\"button\">\n<span class=\"text-white\">Alterar APN</span>\n</button>\n<button class=\"w-9/9 h-9 rounded-md cursor-none bg-red\" id=\"close-apn-container\" type=\"button\">\n<span class=\"text-white\">Fechar</span>\n</button>\n</section>\n</section>\n</section>\n\n<section\nclass=\"w-full h-full flex flex-col items-center justify-center absolute transition-all scale-0 bg-black\"\nid=\"container-cache\">\n<section class=\"w-11/12 h-auto flex flex-col relative rounded-md bg-pop-up\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"svg-sessions\" id=\"restaurando-aplicativo\" data-name=\"restaurando-aplicativo\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n<path\nd=\"M23.715,2.285a1.013,1.013,0,0,0-1.43,0L17.521,7.049l-.32-.313a5.008,5.008,0,0,0-6.429-.479A16.618,16.618,0,0,1,6.224,8.685L4.15,9.293a5.036,5.036,0,0,0-3.113,2.635A4.973,4.973,0,0,0,.9,15.947a12.95,12.95,0,0,0,12.112,8.064h.924a1.011,1.011,0,0,0,.578-.182A15.288,15.288,0,0,0,21.224,13.62a5.029,5.029,0,0,0-1.453-4.374l-.8-.784,4.747-4.747A1.013,1.013,0,0,0,23.715,2.285Zm-10.107,19.7h-.6A11.3,11.3,0,0,1,8.7,21.138l.011-.006a11.546,11.546,0,0,0,4.351-3.8l.518-.761a1.01,1.01,0,0,0-1.67-1.138l-.518.761A9.535,9.535,0,0,1,7.8,19.327l-1.251.63a10.757,10.757,0,0,1-2.583-2.57,11.625,11.625,0,0,0,4.377-2.664,1.011,1.011,0,0,0-1.414-1.446,9.617,9.617,0,0,1-3.98,2.32c-.061-.135-.127-.267-.182-.406a2.906,2.906,0,0,1,.085-2.381,3.023,3.023,0,0,1,1.864-1.578l2.073-.608a15.364,15.364,0,0,0,3.426-1.588l7.915,7.712A14.192,14.192,0,0,1,13.608,21.989Zm5.62-8.683a12.421,12.421,0,0,1-.309,1.387L11.948,7.9l0,0a3.011,3.011,0,0,1,1.755-.566,2.973,2.973,0,0,1,2.084.849l2.569,2.509A3.01,3.01,0,0,1,19.228,13.306Z\" />\n</svg>\n<h1 class=\"w-full mt-13 text-[#FF0000] title-sessions\">Restaurar aplicativo</h1>\n<section class=\"w-full h-full mt-3 mb-3 px-3 overflow-auto text-center\">\n<p class=\"text-black text-default\">Se um aplicativo da LopesNet está ficando lento ou apresentando\nproblemas, execute a limpeza do aplicativo.</p>\n<p class=\"text-black text-default\">Para realizar a limpezado do aplicativo é muito fácil, é só\nclicar no botão \"Limpar cachê\" no canto inferior da tela, o aplicativo será restaurado ao modo\nde fabrica, todos os dados e cachê do aplicativo serão apagados.</p>\n<p class=\"text-black text-default\">Certifique-se de ter acesso a internet para atualizar o seu\naplicativo para a ultima versão e não ter seus serviços interrompidos.</p>\n</section>\n<section class=\"w-full h-auto flex items-center justify-center my-3\">\n<button class=\"w-9/9 h-9 rounded-md cursor-none button-black\" onclick=\"DtCleanApp.execute()\"\ntype=\"button\">\n<span class=\"text-white\">Restaurar</span>\n</button>\n<button class=\"w-9/9 h-9 rounded-md cursor-none bg-red\" id=\"close-cache-container\" type=\"button\">\n<span class=\"text-white\">Fechar</span>\n</button>\n</section>\n</section>\n</section>\n\n<section\nclass=\"w-full h-full flex flex-col items-center justify-center absolute transition-all scale-0 bg-black\" id=\"container-configs\">\n<section class=\"w-11/12 max-h-[66.666667%] flex flex-col relative rounded-md bg-pop-up\">\n<header\nclass=\"w-full min-h-[40px] max-h-[10%] flex items-center mb-2 border-b border-[#01010342] rounded-t-md\">\n\n<h1 class=\"flex-1 pr-6 text-black text-center text-sm font-medium\">CONFIGURAÇÕES</h1>\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"w-6 h-6 stroke-white\" id=\"hidden-container-configs\" fill=\"currentColor\">\n<path d=\"m19,0H5C2.243,0,0,2.243,0,5v14c0,2.757,2.243,5,5,5h14c2.757,0,5-2.243,5-5V5c0-2.757-2.243-5-5-5Zm3,19c0,1.654-1.346,3-3,3H5c-1.654,0-3-1.346-3-3V5c0-1.654,1.346-3,3-3h14c1.654,0,3,1.346,3,3v14Zm-4.231-12.359l-4.466,5.359,4.466,5.359c.354.425.296,1.056-.128,1.409-.188.155-.414.231-.64.231-.287,0-.571-.122-.77-.359l-4.231-5.078-4.231,5.078c-.198.237-.482.359-.77.359-.226,0-.452-.076-.64-.231-.424-.354-.481-.984-.128-1.409l4.466-5.359-4.466-5.359c-.354-.425-.296-1.056.128-1.409.426-.353,1.056-.296,1.409.128l4.231,5.078,4.231-5.078c.354-.424.983-.48,1.409-.128.424.354.481.984.128,1.409Z\"/></svg>\n</header>\n<section class=\"w-full h-[90%] overflow-auto mb-1 rounded-md\">\n<section class=\"w-full h-auto flex flex-col gap-2\" id=\"area-carrier-list\">\n<div class=\"flex items-center\">\n<input class=\"peer hidden\" type=\"radio\" name=\"config\" id=\"tim-premium-cf\" />\n<label\nclass=\"w-full max-h-8 p-2 border border-[#01010342] rounded-md transition-[max-height] duration-1000 overflow-hidden\"\nfor=\"tim-premium-cf\">\n<header class=\"w-full h-3 flex items-center justify-center p-2\">\n<h1 class=\"text-xs font-medium text-black truncate\">VIVO PREMIUM ACF</h1>\n</header>\n<ul class=\"w-full h-auto flex flex-col gap-2 mt-3 overflow-hidden\">\n<li\nclass=\"w-full h-12 flex items-center gap-2 px-1 rounded-md overflow-hidden bg-black\">\n<div class=\"w-10 h-[100%] flex items-center\">\n<img src=\"https://cdn-icons-png.flaticon.com/512/3686/3686811.png\"\nwidth=\"40\" height=\"40\" />\n</div>\n<div class=\"flex flex-col truncate\">\n<h1 class=\"text-white text-xs truncate\">TIM 1 ➜ CONFIG 1 ➜ SV01.OCI (COPY)\n</h1>\n<span class=\"text-white text-[0.65rem] truncate\">SERVIDOR: 🇧🇷 ➜ LATÊNCIA\nBAIXA </span>\n<span\nclass=\"text-white text-[0.5rem] leading-7 truncate\">OVPN_SSL_PROXY</span>\n</div>\n</li>\n<li\nclass=\"w-full h-12 flex items-center gap-2 px-1 rounded-md overflow-hidden bg-black\">\n<div class=\"w-10 h-[100%] flex items-center\">\n<img src=\"https://cdn-icons-png.flaticon.com/512/3686/3686811.png\"\nwidth=\"40\" height=\"40\" />\n</div>\n<div class=\"flex flex-col truncate\">\n<h1 class=\"text-white text-xs truncate\">TIM 1 ➜ CONFIG 1 ➜ SV01.OCI (COPY)\n</h1>\n<span class=\"text-white text-[0.65rem] truncate\">SERVIDOR: 🇧🇷 ➜ LATÊNCIA\nBAIXA </span>\n<span\nclass=\"text-white text-[0.4rem] truncate absolute bottom-1 right-1\">SSH_PROXY</span>\n</div>\n</li>\n</ul>\n</label>\n</div>\n<div class=\"flex items-center\">\n<input class=\"peer hidden\" type=\"radio\" name=\"config\" id=\"vivo-premium-cf\" />\n<label\nclass=\"w-full max-h-8 p-2 border border-[#01010342] rounded-md transition-[max-height]\"\nfor=\"vivo-premium-cf\">\n<header class=\"w-full h-3 flex items-center justify-center p-2\">\n<h1 class=\"text-sm text-black truncate\">TIM PREMIUM ACF</h1>\n</header>\n<section class=\"w-full h-auto\"></section>\n</label>\n</div>\n</section>\n</section>\n</section>\n</section>\n</main>\n\n<!-- FUNÇÕES DO APP -->\n<script>\nfunction appGetStatusbarHeightSize() {\nif (window?.DtGetStatusBarHeight?.execute && typeof window?.DtGetStatusBarHeight.execute === \"function\") {\nreturn DtGetStatusBarHeight.execute();\n}\n\nreturn 0;\n}\n\nfunction appGetNavbarHeightSize() {\nif (window?.DtGetNavigationBarHeight?.execute && typeof window?.DtGetNavigationBarHeight?.execute === \"function\") {\nreturn DtGetNavigationBarHeight.execute();\n}\n\nreturn 0;\n}\n\nfunction appTranslateText(label) {\nif (window?.DtTranslateText?.execute && typeof window?.DtTranslateText?.execute === \"function\") {\nreturn DtTranslateText.execute(label);\n}\n\nreturn null;\n}\n\nfunction appGetConfigLabel(label) {\nif (window?.DtGetAppConfig?.execute && typeof window?.DtGetAppConfig?.execute === \"function\") {\nreturn DtGetAppConfig.execute(label);\n}\n\nreturn null;\n}\n\nfunction appGetCarrierName() {\nif (window?.DtGetNetworkName?.execute && typeof window?.DtGetNetworkName?.execute === \"function\") {\nreturn DtGetNetworkName.execute();\n}\n\nreturn null;\n}\n\nfunction appGetConfigVersion() {\nif (window?.DtGetLocalConfigVersion?.execute && typeof window?.DtGetLocalConfigVersion?.execute === \"function\") {\nreturn DtGetLocalConfigVersion.execute();\n}\n\nreturn null;\n}\n\nfunction appOpenDialogConfig() {\nif (window?.DtExecuteDialogConfig?.execute && typeof window?.DtExecuteDialogConfig?.execute === \"function\") {\nreturn DtExecuteDialogConfig.execute();\n}\n\nreturn null;\n}\n\nfunction appGetDefaultConfig() {\nif (window?.DtGetDefaultConfig?.execute && typeof window?.DtGetDefaultConfig?.execute) {\nreturn DtGetDefaultConfig.execute();\n}\n\nreturn null;\n}\n\nfunction appGetAllConfigs() {\nif (window?.DtGetConfigs?.execute && typeof window?.DtGetConfigs?.execute === \"function\") {\nreturn JSON.parse(DtGetConfigs.execute());\n}\n\nreturn [\n{\n\"id\": 1000,\n\"name\": \"Categoria 01\",\n\"sorter\": 1,\n\"color\": \"#FFFFFF\",\n\"items\": [\n{\n\"id\": 1000,\n\"name\": \"Configuração 01\",\n\"description\": \"Descricão da configuração\",\n\"mode\": \"SSH_DIRECT\",\n\"sorter\": 1,\n\"icon\": \"https://cdn-icons-png.flaticon.com/512/7517/7517373.png\"\n},\n{\n\"id\": 1001,\n\"name\": \"Configuração 02\",\n\"description\": \"Descricão da configuração\",\n\"mode\": \"SSH_DIRECT\",\n\"sorter\": 2,\n\"icon\": \"https://cdn-icons-png.flaticon.com/512/7517/7517373.png\"\n},\n]\n}\n]\n}\n\nfunction appSetConfig(id) {\nif (window?.DtSetConfig?.execute && typeof window?.DtSetConfig?.execute === \"function\") {\nwindow?.DtSetConfig?.execute(id);\n}\n\nreturn null;\n}\n\nfunction appOpenDialogDialogs() {\nif (window?.DtShowLoggerDialog?.execute && typeof window?.DtShowLoggerDialog?.execute === \"function\") {\nreturn window?.DtShowLoggerDialog.execute();\n}\n\nreturn null;\n}\n\nfunction appGetUsername() {\nif (window?.DtUsername && typeof window?.DtUsername.get === \"function\") {\nreturn DtUsername.get();\n}\n\nreturn \"\";\n}\n\nfunction appGetPassword() {\nif (window?.DtPassword && typeof window?.DtPassword?.get === \"function\") {\nreturn DtPassword.get();\n}\n\nreturn \"\";\n}\n\nfunction appGetUUID() {\nif (window?.DtUuid?.get && typeof window?.DtUuid.get === \"function\") {\nreturn DtUuid.get();\n}\n\nreturn \"\";\n}\n\nfunction appSetUsername(username) {\nif (window?.DtUsername?.set && typeof window?.DtUsername?.set === \"function\") {\nreturn window.DtUsername.set(username);\n}\n\nreturn null;\n}\n\nfunction appSetPassword(password) {\nif (window?.DtPassword?.set && typeof window?.DtPassword?.set === \"function\") {\nreturn window.DtPassword.set(password);\n}\n\nreturn null;\n}\n\nfunction appSetUUID(UUID) {\nif (window?.DtUuid.set && typeof window?.DtUuid?.set === \"function\") {\nreturn window.DtUuid.set(UUID);\n}\n\nreturn null;\n}\n\nfunction appGetConnectionState() {\nif (window?.DtGetVpnState?.execute && typeof window?.DtGetVpnState?.execute === \"function\") {\nreturn DtGetVpnState.execute();\n}\n\nreturn null;\n}\n\nfunction appStartConnection() {\nif (window?.DtExecuteVpnStart?.execute && typeof window?.DtExecuteVpnStart?.execute === \"function\") {\nreturn DtExecuteVpnStart.execute();\n}\n\nreturn null;\n}\n\nfunction appStopConnection() {\nif (window?.DtExecuteVpnStop?.execute && typeof window?.DtExecuteVpnStop?.execute === \"function\") {\nreturn DtExecuteVpnStop.execute();\n}\n\nreturn null;\n}\n\nfunction appGetDownloadBytes() {\nif (window?.DtGetNetworkDownloadBytes?.execute && typeof window?.DtGetNetworkDownloadBytes?.execute === \"function\") {\nreturn window?.DtGetNetworkDownloadBytes?.execute();\n}\n\nreturn \"0 B/s\";\n}\n\nfunction appGetStatusHotspot() {\nif (window?.DtGetStatusHotSpotService?.execute && typeof window?.DtGetStatusHotSpotService?.execute === \"function\") {\nreturn window?.DtGetStatusHotSpotService.execute();\n}\n\nreturn null;\n}\n\nfunction appStartHotspot() {\nif (window?.DtStartHotSpotService?.execute && typeof window?.DtStartHotSpotService?.execute === \"function\") {\nreturn window.DtStartHotSpotService.execute();\n}\n\nreturn null;\n}\n\nfunction appStopHotspot() {\nif (window?.DtStopHotSpotService?.execute && typeof window?.DtStopHotSpotService?.execute === \"function\") {\nreturn window?.DtStopHotSpotService.execute();\n}\n\nreturn null;\n}\n\nfunction AppUpdate() {\nif (window?.DtStartAppUpdate?.execute && typeof window?.DtStartAppUpdate?.execute === \"function\") {\nreturn window.DtStartAppUpdate.execute();\n}\n\nreturn null;\n}\n\n\nfunction appIntoBrowser(url) {\nif (window?.DtStartWebViewActivity?.execute && typeof window?.DtStartWebViewActivity?.execute === \"function\") {\nreturn DtStartWebViewActivity.execute(url);\n}\n\nwindow.open(url, \"_blank\");\n}\n\nfunction appCheckuser() {\nif (window?.DtStartCheckUser?.execute && typeof window?.DtStartCheckUser?.execute === \"function\") {\nreturn window.DtStartCheckUser.execute();\n}\n\nreturn null;\n}\n\nfunction appApnConfiguration() {\nif (window?.DtStartApnActivity?.execute && typeof window?.DtStartApnActivity?.execute == \"function\") {\nreturn window?.DtStartApnActivity.execute();\n}\n\nreturn null;\n}\n\nfunction appBatteryOptimize() {\nif (window?.DtIgnoreBatteryOptimizations?.execute && typeof window?.DtIgnoreBatteryOptimizations?.execute === \"function\") {\nreturn DtIgnoreBatteryOptimizations.execute();\n}\n\nreturn null;\n}\n\nfunction appClearData() {\nif (window?.DtCleanApp?.execute && typeof window?.DtCleanApp?.execute === \"function\") {\nreturn DtCleanApp.execute();\n}\n\nreturn null;\n}\n</script>\n\n<!-- DOM WRAPPER -->\n<script>\nconst Dom = (selector) => {\nconst _elements = document.querySelectorAll(selector);\n\nconst wrapper = {\non(listeners) {\nfor (const [event, listener] of Object.entries(listeners)) {\n_elements.forEach((element) => {\nelement.addEventListener(event, listener);\n});\n}\n\nreturn wrapper;\n},\naddClass: (...tokens) => {\n_elements.forEach((element) => {\nelement.classList.add(...tokens);\n});\n\nreturn wrapper;\n},\nremoveClass: (...tokens) => {\n_elements.forEach((element) => {\nelement.classList.remove(...tokens);\n});\n\nreturn wrapper;\n},\ntoggleClass: (token, force) => {\n_elements.forEach((element) => {\nelement.classList.toggle(token, force);\n});\n\nreturn wrapper;\n},\nstyle(styles) {\nfor (const [property, value] of Object.entries(styles)) {\n_elements.forEach((element) => {\nelement.style[property] = value;\n});\n}\n\nreturn wrapper;\n},\nattr(attrs) {\nfor (const [name, value] of Object.entries(attrs)) {\n_elements.forEach((element) => element.setAttribute(name, value));\n}\n\nreturn wrapper;\n},\nhtml(value) {\n_elements.forEach((element) => (element.innerHTML = value));\nreturn wrapper;\n},\n/**\n* @return {Element|null}\n*/\nelement() {\nreturn _elements.length > 0 ? _elements[0] : null;\n},\nallElements: _elements,\n};\n\nreturn wrapper;\n};\n</script>\n\n<!-- VÁRIAVIES -->\n<script>\nconst body = Dom(\"body\");\n\nconst containerHome = Dom(\"#container-home\");\nconst containerLocalIp = Dom(\"section.bottom div.container-local-ip\")\nconst localIp = Dom(\"#local-ip\")\nconst configVersion = Dom(\"#version\")\nconst openMenuButton = Dom(\"#open-menu\");\nconst vpnStatusValue = Dom(\"#vpn-status\");\n\nconst appLogo = Dom(\"#app-logo\");\n\nconst buttonOfListCarrier = Dom(\"#button-of-list-carrier\");\nconst valueOnButtonOfCarrierList = Dom(\"#value-of-carrier\");\n\nconst containerInputUsername = Dom(\"#container-input-username\");\nconst containerInputPassword = Dom(\"#container-input-password\");\nconst containerInputUUID = Dom(\"#container-input-uuid\");\n\n\nconst inputUsername = Dom(\"#input-username\");\nconst inputPassword = Dom(\"#input-password\");\nconst inputUUID = Dom(\"#input-uuid\");\n\nconst eyeViewPasswordInput = Dom(\"#eye-view-password\");\nconst eyeNotViewPasswordInput = Dom(\"#eye-not-view-password\");\n\nconst eyeViewUUID = Dom(\"#eye-view-uuid\");\nconst eyeNotViewUUID = Dom(\"#eye-not-view-uuid\");\n\nconst buttonStartStopVpn = Dom(\"#button-vpn-start-stop\");\nconst buttonStartStopValue = Dom(\"#status-button-vpn\");\n\nconst downloadValue = Dom(\"#download-value\");\n\nconst buttonLogs = Dom(\"#button-logs\");\n\nconst containerMenu = Dom(\"#container-menu\");\nconst hiddenContainerMenuButton = Dom(\"#hidden-menu\");\n\nconst expiresDateUserInMenu = Dom(\"#expires-date-user-in-menu\");\n\nconst pingValue = Dom(\"#ping-value\");\n\nconst navRenew = Dom(\"#nav-renew\");\nconst navUpdate = Dom(\"#nav-update\");\nconst navTerms = Dom(\"#nav-terms\");\nconst navPerfil = Dom(\"#nav-perfil\");\nconst navBattery = Dom(\"#nav-battery\");\nconst navHelp = Dom(\"#nav-help\");\nconst navCache = Dom(\"#nav-cache\");\nconst navAPN = Dom(\"#nav-apn\");\nconst navHotspot = Dom(\"#nav-hotspot\");\nconst navAccessPoint = Dom(\"#nav-access-point\");\nconst navAppCleanData = Dom(\"#nav-app-clean-data\");\n\nconst containerTerms = Dom(\"#container-terms\");\nconst closeContainerTerms = Dom(\"#close-terms-container\");\n\nconst containerPerfil = Dom(\"#container-perfil\");\nconst closeContainerPerfil = Dom(\"#close-perfil-container\");\n\nconst containerBattery = Dom(\"#container-battery\");\nconst closeContainerBattery = Dom(\"#close-battery-container\");\n\nconst containerHelp = Dom(\"#container-help\");\nconst closeContainerHelp = Dom(\"#close-help-container\");\n\nconst containerCache = Dom(\"#container-cache\");\nconst closeContainerCache = Dom(\"#close-cache-container\");\n\nconst containerAPN = Dom(\"#container-apn\");\nconst closeContainerAPN = Dom(\"#close-apn-container\");\n\nconst containerHotspot = Dom(\"#container-hotspot\");\nconst closeContainerHotspotButton = Dom(\"#close-hotspot-container\");\nconst buttonStartOrStopHotspot = Dom(\"#button-hotspot\");\nconst valueOfButtonHotspot = Dom(\"#value-of-button-hotspot\");\n\nconst containerConfigs = Dom(\"#container-configs\");\nconst closeContainerConfigs = Dom(\"#hidden-container-configs\");\n\nconst containerAreaCarrierList = Dom(\"#area-carrier-list\");\n\nconst inputsPeer = Dom(\"input.peer\");\nconst labelsFor = Dom(\"label[for]\");\n</script>\n\n<!-- VÁRIAVEIS DO SISTEMA -->\n<script>\nconst currentNetworkDownload = parseFloat(localStorage.getItem(\"networkDownload\") ?? appGetDownloadBytes());\n</script>\n\n<!-- FUNÇÕES -->\n<script>\nfunction getAppBackground() {\nconst background_type = appGetConfigLabel(\"APP_BACKGROUND_TYPE\");\nconst background_color = appGetConfigLabel(\"APP_BACKGROUND_COLOR\");\nconst background_image = appGetConfigLabel(\"APP_BACKGROUND_IMAGE\");\n\nif (!background_type) {\nreturn \"url('../dist/bg.jpeg')\";\n}\n\nif (JSON.parse(background_type)?.value === \"COLOR\") {\nreturn JSON.parse(background_color).value;\n}\n\nreturn `url(${JSON.parse(background_image).value})`;\n}\n\nfunction getAppLogo() {\nconst logo = appGetConfigLabel(\"APP_LOGO\");\n\nif (!logo) {\nreturn \"https://i.ibb.co/0jqhn3Q/DTwk94c2sf.png\";\n}\n\nreturn JSON.parse(logo)?.value;\n}\n\nfunction getConfigName() {\nconst config = appGetDefaultConfig();\n\nif (!config) {\nreturn {\nname: appTranslateText(\"LBL_CHOOSE_CONFIG\"),\nmode: \"\",\n};\n}\n\nif (JSON.parse(config)?.name && JSON.parse(config)?.mode) {\nreturn {\nname: JSON.parse(config)?.name,\nmode: JSON.parse(config)?.mode,\n};\n}\n\nreturn {\nname: appTranslateText(\"LBL_CHOOSE_CONFIG\"),\nmode: \"\",\n};\n}\n\nfunction writeConfigValueOnButton() {\nvalueOnButtonOfCarrierList.html(getConfigName()?.name);\n}\n\nfunction connectionState(state) {\nconst connectionValue = `${state || appGetConnectionState()}`;\n\nswitch (connectionValue) {\ncase \"DISCONNECTED\":\nbuttonStartStopValue.html(appTranslateText(\"LBL_BTN_START\"));\nvpnStatusValue.html(appTranslateText(\"LBL_STATE_DISCONNECTED\"));\nbreak;\ncase \"CONNECTING\":\nbuttonStartStopValue.html(appTranslateText(\"LBL_BTN_STOP\"));\nvpnStatusValue.html(appTranslateText(\"LBL_STATE_CONNECTING\"));\nbreak;\ncase \"CONNECTED\":\nbuttonStartStopValue.html(appTranslateText(\"LBL_BTN_STOP\"));\nvpnStatusValue.html(appTranslateText(\"LBL_STATE_CONNECTED\"));\nbreak;\ncase \"STOPPING\":\nbuttonStartStopValue.html(appTranslateText(\"LBL_BTN_STOPPING\"));\nvpnStatusValue.html(appTranslateText(\"LBL_STATE_STOPPING\"));\nbreak;\ncase \"NO_NETWORK\":\nbuttonStartStopValue.html(appTranslateText(\"LBL_BTN_STOP\"));\nvpnStatusValue.html(appTranslateText(\"LBL_STATE_NO_NETWORK\"));\nbreak;\ncase \"AUTH\":\nbuttonStartStopValue.html(appTranslateText(\"LBL_BTN_STOP\"));\nvpnStatusValue.html(appTranslateText(\"LBL_STATE_AUTH\"));\nbreak;\ncase \"AUTH_FAILED\":\nbuttonStartStopValue.html(appTranslateText(\"LBL_BTN_START\"));\nvpnStatusValue.html(appTranslateText(\"LBL_STATE_AUTH_FAILED\"));\nbreak;\n}\n}\n\nfunction startStopConnection() {\nconst state = appGetConnectionState();\nstate !== \"CONNECTED\" ? appStartConnection() : appStopConnection();\n}\n\nfunction startHotspot() {\nappStartHotspot();\n\nvalueOfButtonHotspot.html(\"DESATIVAR\");\n\nreturn;\n}\n\nfunction stopHotspot() {\nappStopHotspot();\n\nvalueOfButtonHotspot.html(\"ATIVAR\");\n\nreturn;\n}\n\nfunction toggleHotspot() {\nappGetStatusHotspot() === \"STOPPED\" ? startHotspot() : stopHotspot();\n\nreturn;\n}\n\nfunction setStatusHotspot() {\nif (appGetStatusHotspot() === \"STOPPED\") {\nvalueOfButtonHotspot.html(\"ATIVAR\");\n\nreturn;\n} else {\nvalueOfButtonHotspot.html(\"DESATIVAR\");\n\nreturn;\n}\n\nreturn;\n}\n\nfunction showInputPasswordValue() {\neyeViewPasswordInput.addClass(\"hidden\");\neyeNotViewPasswordInput.removeClass(\"hidden\");\ninputPassword.attr({ type: \"text\" });\n}\n\nfunction hiddenInputPasswordValue() {\neyeViewPasswordInput.removeClass(\"hidden\");\neyeNotViewPasswordInput.addClass(\"hidden\");\ninputPassword.attr({ type: \"password\" });\n}\n\nfunction showInputUUIDValue() {\neyeViewUUID.addClass(\"hidden\");\neyeNotViewUUID.removeClass(\"hidden\");\ninputUUID.attr({ type: \"text\" });\n}\n\nfunction hiddenInputUUIDValue() {\neyeViewUUID.removeClass(\"hidden\");\neyeNotViewUUID.addClass(\"hidden\");\ninputUUID.attr({ type: \"password\" });\n}\n\nfunction showContainerMenu() {\ncontainerMenu.removeClass(\"-translate-x-full\");\n\nreturn;\n}\n\nfunction hiddenContainerMenu() {\ncontainerMenu.addClass(\"-translate-x-full\");\n\nreturn;\n}\n\nfunction showContainerTerms() {\ncontainerTerms.removeClass(\"scale-0\");\n\nreturn;\n}\nfunction hiddenContainerTerms() {\ncontainerTerms.addClass(\"scale-0\");\n\nreturn;\n}\n\nfunction showContainerPerfil() {\ncontainerPerfil.removeClass(\"scale-0\");\n\nreturn;\n}\nfunction hiddenContainerPerfil() {\ncontainerPerfil.addClass(\"scale-0\");\n\nreturn;\n}\n\nfunction showContainerHelp() {\ncontainerHelp.removeClass(\"scale-0\");\n\nreturn;\n}\nfunction hiddenContainerHelp() {\ncontainerHelp.addClass(\"scale-0\");\n\nreturn;\n}\n\nfunction showContainerCache() {\ncontainerCache.removeClass(\"scale-0\");\n\nreturn;\n}\nfunction hiddenContainerCache() {\ncontainerCache.addClass(\"scale-0\");\n\nreturn;\n}\n\nfunction showContainerBattery() {\ncontainerBattery.removeClass(\"scale-0\");\n\nreturn;\n}\nfunction hiddenContainerBattery() {\ncontainerBattery.addClass(\"scale-0\");\n\nreturn;\n}\n\nfunction showContainerAPN() {\ncontainerAPN.removeClass(\"scale-0\");\n\nreturn;\n}\nfunction hiddenContainerAPN() {\ncontainerAPN.addClass(\"scale-0\");\n\nreturn;\n}\n\nfunction showContainerHotspot() {\ncontainerHotspot.removeClass(\"scale-0\");\n\nreturn;\n}\nfunction hiddenContainerHotspot() {\ncontainerHotspot.addClass(\"scale-0\");\n\nreturn;\n}\n\nfunction writeCarrierList() {\nconst data = appGetAllConfigs();\n\nif (data) {\nconst areaCarrierList = document.getElementById(\"area-carrier-list\");\nareaCarrierList.innerHTML = \"\";\n\ndata.sort((a, b) => a.sorter - b.sorter);\n\ndata.forEach((item, index) => item.items.sort((a, b) => a.sorter - b.sorter));\n\ndata.forEach((category) => {\nconst div = document.createElement(\"div\");\nconst header = document.createElement(\"header\");\nconst h1 = document.createElement(\"h1\");\nconst ul = document.createElement(\"ul\");\n\ndiv.classList.add(\"flex\", \"flex-col\", \"items-start\", \"gap-2\", \"mt-4\");\nheader.classList.add(\"w-full\", \"text-sm\", \"font-semibold\", \"text-black\");\nul.classList.add(\"w-full\", \"flex\", \"flex-col\", \"gap-2\");\nul.style.padding = \"10px\";\n\nh1.textContent = category.name;\nheader.appendChild(h1);\ndiv.appendChild(header);\n\ncategory.items.forEach((item) => {\nconst li = document.createElement(\"li\");\nconst liDivLeft = document.createElement(\"div\");\nconst carrierIcon = document.createElement(\"img\");\nconst liDivCenter = document.createElement(\"div\");\nconst configTitle = document.createElement(\"h1\");\nconst configDescription = document.createElement(\"span\");\nconst liDivRight = document.createElement(\"div\");\nconst configType = document.createElement(\"span\");\n\nli.classList.add(\"w-full\", \"h-auto\", \"flex\", \"items-center\", \"gap-4\", \"px-4\", \"py-2\", \"rounded-md\", \"bg-white\", \"cursor-pointer\", \"hover:bg-gray-800\", \"transition-colors\", \"duration-300\", \"border\", \"border-gray-800\");\nli.style.boxShadow = \"0px 4px 6px rgba(0, 0, 0, 0.1)\";\nli.style.borderRadius = \"20px\";\nli.style.paddingLeft = \"10px\";\nli.style.paddingRight = \"10px\";\nliDivLeft.classList.add(\"w-10\", \"h-[100%]\", \"flex\", \"items-center\");\nliDivCenter.classList.add(\"flex-1\", \"flex\", \"flex-col\", \"gap-1\", \"truncate\");\nconfigTitle.classList.add(\"text-black\", \"text-xs\", \"truncate\");\nconfigDescription.classList.add(\"text-black\", \"text-[0.65rem]\", \"truncate\");\nliDivRight.classList.add(\"w-14\", \"h-[100%]\", \"flex\", \"items-end\", \"truncate\");\nconfigType.classList.add(\"text-black\", \"text-[0.5rem]\", \"leading-7\", \"truncate\");\nconfigTitle.style.marginLeft = \"10px\";\nconfigDescription.style.marginLeft = \"10px\";\n\ncarrierIcon.src = item.icon;\ncarrierIcon.alt = item.name;\n\nconfigTitle.textContent = item.name;\nconfigDescription.textContent = item.description;\n\nconfigType.textContent = item.mode;\n\nliDivLeft.appendChild(carrierIcon);\n\nliDivCenter.appendChild(configTitle);\nliDivCenter.appendChild(configDescription);\n\nliDivRight.appendChild(configType);\n\nli.appendChild(liDivLeft);\nli.appendChild(liDivCenter);\nli.appendChild(liDivRight);\n\nli.addEventListener(\"click\", () => {\nappSetConfig(item.id);\nhiddenContainerConfigs();\n});\n\nul.appendChild(li);\n});\n\ndiv.appendChild(ul);\nareaCarrierList.appendChild(div);\n});\n}\n}\n\nfunction showContainerConfigs() {\nwriteCarrierList();\ndocument.getElementById(\"container-configs\").classList.remove(\"scale-0\");\n}\n\nfunction hiddenContainerConfigs() {\ndocument.getElementById(\"container-configs\").classList.add(\"scale-0\");\n}\n\nfunction checkV2ray() {\nconst data = JSON.parse(appGetDefaultConfig());\n\nif (!data) {\nreturn false;\n}\n\nif (data.mode?.toLowerCase().startsWith(\"v2ray\")) {\nif (data.auth?.v2ray_uuid) {\nreturn \"exists v2ray config\";\n}\nreturn true;\n}\n\nreturn false;\n}\n\nfunction toggleInput() {\nconst v2rayUUID = checkV2ray();\nconst containerInputUsername = document.getElementById(\"containerInputUsername\");\nconst containerInputPassword = document.getElementById(\"containerInputPassword\");\nconst containerInputUUID = document.getElementById(\"containerInputUUID\");\n\nif (v2rayUUID === \"exists v2ray config\") {\ncontainerInputUsername.classList.add(\"hidden\");\ncontainerInputPassword.classList.add(\"hidden\");\ncontainerInputUUID.classList.add(\"hidden\");\n} else if (v2rayUUID) {\ncontainerInputUsername.classList.add(\"hidden\");\ncontainerInputPassword.classList.add(\"hidden\");\ncontainerInputUUID.classList.remove(\"hidden\");\ncontainerInputUUID.classList.add(\"flex\");\n} else {\ncontainerInputUsername.classList.remove(\"hidden\");\ncontainerInputPassword.classList.remove(\"hidden\");\ncontainerInputUUID.classList.add(\"flex\");\ncontainerInputUUID.classList.add(\"hidden\");\n}\n}\n\nfunction formatBytes(bytes) {\nconst sizes = [\"B/s\", \"KB/s\", \"MB/s\", \"GB/s\", \"TB/s\"];\n\nif (bytes === 0) return \"0 B/s\";\n\nconst i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));\n\nreturn (bytes / Math.pow(1024, i)).toPrecision(3) + \" \" + sizes[i];\n}\n\nfunction updateNetworkStats() {\nconst newNetworkDownload = appGetDownloadBytes();\n\npingValue.html(`${window?.DtGetPingResult?.execute() ?? '00'}ms`)\n\ndownloadValue.html(formatBytes(newNetworkDownload - currentNetworkDownload));\n\nlocalStorage.setItem(\"networkDownload\", formatBytes(newNetworkDownload - currentNetworkDownload));\n}\n\nfunction carrierLocalIp() {\nconst carrierLocalIp = window?.DtGetLocalIP?.execute();\n\nif (!carrierLocalIp) {\nlocalIp.html(\"Buscando...\");\n} else if (carrierLocalIp === \"127.0.0.1\") {\nlocalIp.html(\"SEM IP\");\n} else {\nconst name = appGetCarrierName();\nconst ip = carrierLocalIp;\n\nif (name && ip) {\nlocalIp.html(`${name} ${ip}`);\n} else {\nlocalIp.html(\"Sem rede.\");\n}\n}\n}\n\nfunction writeConfigVersion() {\nconst version = window?.DtGetLocalConfigVersion?.execute() ?? 'Atualize';\nconfigVersion.html(`${version}`)\n}\n\nfunction getExpirationDateOfUser() {\nconst expirationDate = localStorage.getItem(\"expirationDate\");\n\nif (expirationDate) {\n\nreturn `${expirationDate}`;\n}\n\nreturn \"...\";\n}\n\nfunction toggleLabelHeight(inputId) {\nconst input = document.getElementById(inputId);\nconst label = document.querySelector(`label[for=\"${inputId}\"]`);\n\nif (input.checked) {\nlabel.style.maxHeight = label.scrollHeight + \"px\";\n} else {\nlabel.style.maxHeight = \"32px\";\n}\n}\n\nfunction toggleMoreInputs() {\nconst data = JSON.parse(appGetDefaultConfig());\n\nif (!data) return null;\n\ncontainerInputUsername.removeClass(\"hidden\");\ncontainerInputPassword.removeClass(\"hidden\");\ncontainerInputUUID.addClass(\"hidden\");\n\nif (data?.auth?.username) {\ncontainerInputUsername.addClass(\"hidden\");\n}\n\nif (data?.auth?.password) {\ncontainerInputPassword.addClass(\"hidden\");\n}\n\nif (!data?.auth?.username) {\ncontainerInputUsername.removeClass(\"hidden\");\n}\n\nif (!data?.auth?.password) {\ncontainerInputPassword.removeClass(\"hidden\");\n}\n\nif (data.mode?.toLowerCase().startsWith(\"v2ray\")) {\nif (data?.auth?.v2ray_uuid) {\ncontainerInputUUID.addClass(\"hidden\");\ncontainerInputUsername.addClass(\"hidden\");\ncontainerInputPassword.addClass(\"hidden\");\n}\n\nif (!data?.auth?.v2ray_uuid) {\ncontainerInputUUID.removeClass(\"hidden\");\ncontainerInputUsername.addClass(\"hidden\");\ncontainerInputPassword.addClass(\"hidden\");\n}\n}\n}\n</script>\n\n<script>\nfunction hideElementsOnConnecting() {\nbuttonOfListCarrier.addClass(\"hidden\");\ncontainerInputUsername.addClass(\"hidden\");\ncontainerInputPassword.addClass(\"hidden\");\ncontainerInputUUID.addClass(\"hidden\");\n}\n\nfunction hideElementsOnConnected() {\nbuttonOfListCarrier.addClass(\"hidden\");\ncontainerInputUsername.addClass(\"hidden\");\ncontainerInputPassword.addClass(\"hidden\");\ncontainerInputUUID.addClass(\"hidden\");\n}\n\nfunction hideElementsOnAuth() {\nbuttonOfListCarrier.addClass(\"hidden\");\ncontainerInputUsername.addClass(\"hidden\");\ncontainerInputPassword.addClass(\"hidden\");\ncontainerInputUUID.addClass(\"hidden\");\n}\n\nfunction hideElementsOnNetwork() {\nbuttonOfListCarrier.addClass(\"hidden\");\ncontainerInputUsername.addClass(\"hidden\");\ncontainerInputPassword.addClass(\"hidden\");\ncontainerInputUUID.addClass(\"hidden\");\n}\n\nfunction showElementsOnDisconnect() {\nbuttonOfListCarrier.removeClass(\"hidden\");\ncontainerInputUsername.removeClass(\"hidden\");\ncontainerInputPassword.removeClass(\"hidden\");\n}\n\nfunction showElementsOnFailed() {\nbuttonOfListCarrier.removeClass(\"hidden\");\ncontainerInputUsername.removeClass(\"hidden\");\ncontainerInputPassword.removeClass(\"hidden\");\n}\n\nconst spinnerContainer = Dom(\"#spinner\");\n\nfunction showSpinner() {\nspinnerContainer.style({ display: \"block\" });\n}\n\nfunction hideSpinner() {\nspinnerContainer.style({ display: \"none\" });\n}\n\nconst connectedContainer = Dom(\"#connected-img\");\n\nfunction showConnected() {\nconnectedContainer.style({ display: \"block\" });\n}\n\nfunction hideConnected() {\nconnectedContainer.style({ display: \"none\" });\n}\n\nfunction showConnectedImage() {\nconnectedContainer.style({ display: \"block\" });\n}\n\nfunction hideConnectedImage() {\nconnectedContainer.style({ display: \"none\" });\n}\n\n</script>\n\n<!-- AÇÕES -->\n<script>\nbody.style({\nbackground: getAppBackground(),\nbackgroundSize: \"cover\",\nbackgroundPosition: \"center\",\nbackgroundRepeat: \"no-repeat\",\n});\n\ncontainerHome.style({\npadding: `${appGetStatusbarHeightSize() + 5}px 15px ${appGetNavbarHeightSize() + 30}px 15px`,\n});\n\nappLogo.attr({ src: getAppLogo() });\n\nappLogo.on({ click: () => AppUpdate() });\n\nbuttonOfListCarrier.on({ click: () => showContainerConfigs() });\nvalueOnButtonOfCarrierList.html(getConfigName()?.name);\ncloseContainerConfigs.on({ click: () => hiddenContainerConfigs() });\n\ninputUsername.attr({ placeholder: appTranslateText(\"LBL_USERNAME\") });\ninputPassword.attr({ placeholder: appTranslateText(\"LBL_PASSWORD\") });\ninputUUID.attr({ placeholder: appTranslateText(\"LBL_UUID\") });\n\ninputUsername.attr({ value: appGetUsername() });\ninputPassword.attr({ value: appGetPassword() });\ninputUUID.attr({ value: appGetUUID() });\n\ninputUsername.on({ input: (e) => appSetUsername(e.target.value) });\ninputPassword.on({ input: (e) => appSetPassword(e.target.value) });\ninputUUID.on({ input: (e) => appSetUUID(e.target.value) });\n\neyeViewPasswordInput.on({ click: () => showInputPasswordValue() });\neyeNotViewPasswordInput.on({ click: () => hiddenInputPasswordValue() });\n\neyeViewUUID.on({ click: () => showInputUUIDValue() });\neyeNotViewUUID.on({ click: () => hiddenInputUUIDValue() });\n\nbuttonStartStopVpn.on({ click: () => startStopConnection() });\n\nbuttonLogs.on({ click: () => appOpenDialogDialogs() });\n\ncontainerMenu.style({\npadding: `${appGetStatusbarHeightSize() + 10}px 10px ${appGetNavbarHeightSize() + 10}px 10px`,\n});\n\nopenMenuButton.on({ click: () => showContainerMenu() });\n\nhiddenContainerMenuButton.on({ click: () => hiddenContainerMenu() });\n\nexpiresDateUserInMenu.html(getExpirationDateOfUser());\n\nnavRenew.on({ click: () => appIntoBrowser(\"https://gestor-painel.com.br/renovar.php\") });\n\nnavUpdate.on({ click: () => AppUpdate() });\n\nnavTerms.on({ click: () => showContainerTerms() });\ncloseContainerTerms.on({ click: () => hiddenContainerTerms() });\n\nnavPerfil.on({ click: () => showContainerPerfil() });\ncloseContainerPerfil.on({ click: () => hiddenContainerPerfil() });\n\nnavHelp.on({ click: () => showContainerHelp() });\ncloseContainerHelp.on({ click: () => hiddenContainerHelp() });\n\nnavHotspot.on({ click: () => showContainerHotspot() });\nbuttonStartOrStopHotspot.on({ click: () => toggleHotspot() });\ncloseContainerHotspotButton.on({ click: () => hiddenContainerHotspot() });\n\nnavCache.on({ click: () => showContainerCache() });\ncloseContainerCache.on({ click: () => hiddenContainerCache() });\n\nnavBattery.on({ click: () => showContainerBattery() });\ncloseContainerBattery.on({ click: () => hiddenContainerBattery() });\n\nnavAPN.on({ click: () => showContainerAPN() });\ncloseContainerAPN.on({ click: () => hiddenContainerAPN() });\n\nnavAccessPoint.on({ click: () => appApnConfiguration() });\n\nnavAppCleanData.on({ click: () => appClearData() });\n\nconnectionState();\nsetStatusHotspot();\ntoggleMoreInputs();\nupdateNetworkStats();\ncarrierLocalIp();\nwriteConfigVersion();\nAppUpdate();\n</script>\n\n<script>\nfunction connectionState(state) {\nswitch (state) {\ncase \"DISCONNECTED\":\nshowElementsOnDisconnect();\nhideConnectedImage();\nhideSpinner();\nhideConnected();\nbuttonStartStopValue.html(appTranslateText(\"LBL_BTN_START\"));\nvpnStatusValue.html(appTranslateText(\"LBL_STATE_DISCONNECTED\"));\nbreak;\ncase \"CONNECTING\":\nhideElementsOnConnecting();\nhideConnectedImage();\nshowSpinner();\nbuttonStartStopValue.html(appTranslateText(\"LBL_BTN_STOP\"));\nvpnStatusValue.html(appTranslateText(\"LBL_STATE_CONNECTING\"));\nbreak;\ncase \"CONNECTED\":\nhideElementsOnConnected();\nhideSpinner();\nshowConnected();\nbuttonStartStopValue.html(appTranslateText(\"LBL_BTN_STOP\"));\nvpnStatusValue.html(appTranslateText(\"LBL_STATE_CONNECTED\"));\nbreak;\ncase \"STOPPING\":\nbuttonStartStopValue.html(appTranslateText(\"LBL_BTN_STOPPING\"));\nvpnStatusValue.html(appTranslateText(\"LBL_STATE_STOPPING\"));\nbreak;\ncase \"NO_NETWORK\":\nhideElementsOnNetwork();\nhideConnectedImage();\nshowSpinner();\nbuttonStartStopValue.html(appTranslateText(\"LBL_BTN_STOP\"));\nvpnStatusValue.html(appTranslateText(\"LBL_STATE_NO_NETWORK\"));\nbreak;\ncase \"AUTH\":\nhideElementsOnAuth();\nhideConnectedImage();\nshowSpinner();\nbuttonStartStopValue.html(appTranslateText(\"LBL_BTN_STOP\"));\nvpnStatusValue.html(appTranslateText(\"LBL_STATE_AUTH\"));\nbreak;\ncase \"AUTH_FAILED\":\nshowElementsOnFailed();\nhideConnectedImage();\nhideSpinner();\nbuttonStartStopValue.html(appTranslateText(\"LBL_BTN_START\"));\nvpnStatusValue.html(appTranslateText(\"LBL_STATE_AUTH_FAILED\"));\nbreak;\n}\n}\n\nwindow.addEventListener('connectionstatechanged', () => {\nconst newState = appGetConnectionState();\nconnectionState(newState);\n});\n\nconnectionState(appGetConnectionState());\n</script>\n\n<!-- FUNÇÕES PARA O APP -->\n<script>\nfunction dtConfigClickListener() {\nwriteConfigValueOnButton();\n\ntoggleMoreInputs();\n\ninputUsername.attr({ value: appGetUsername() });\ninputPassword.attr({ value: appGetPassword() });\ninputUUID.attr({ value: appGetUUID() });\n}\n\nfunction dtVpnStateListener(state) {\nconnectionState(state);\n}\n\nconst dtCheckUserModelListener = (model) => {\nconst data = JSON.parse(model);\nexpiresDateUserInMenu.html(`${data.expiration_date}`);\nlocalStorage.setItem(\"expirationDate\", data.expiration_date);\n};\n</script>\n\n<script>\nfunction appGetUsername() {\nreturn document.getElementById('input-username').value;\n}\n\nfunction updateUsername() {\nconst usernameContainer = document.getElementById('username-container');\nconst username = appGetUsername();\nusernameContainer.textContent = username;\n}\n\nupdateUsername();\ndocument.getElementById('input-username').addEventListener('input', updateUsername);\n</script>\n\n<script>\nsetInterval(() => {\npingValue.html(`${window?.DtGetPingResult?.execute() ?? '00'}ms`);\n}, 500);\n\nsetInterval(() => {\nwriteConfigVersion();\n}, 500);\n\nsetInterval(() => {\ncarrierLocalIp();\n}, 500);\n</script>\n\n<script>\nfunction toggleDarkMode() {\nconst body = document.body;\nbody.classList.toggle('dark-mode');\n\nconst isDarkMode = body.classList.contains('dark-mode');\nlocalStorage.setItem('darkMode', isDarkMode);\n}\n\nconst savedDarkMode = localStorage.getItem('darkMode');\nif (savedDarkMode === 'true') {\ndocument.body.classList.add('dark-mode');\n}\n</script>\n\n<script>\nconst darkModeToggle = document.getElementById('darkModeToggle');\nconst isDarkModeEnabled = localStorage.getItem('darkModeEnabled') === 'true';\n\ndarkModeToggle.checked = isDarkModeEnabled;\ntoggleDarkMode();\n\nfunction toggleDarkMode() {\nconst isDarkModeEnabled = darkModeToggle.checked;\n\ndocument.body.classList.toggle('dark-mode', isDarkModeEnabled);\n\nconst moonIcon = document.getElementById('moonIcon');\nconst sunIcon = document.getElementById('sunIcon');\nmoonIcon.style.display = isDarkModeEnabled ? 'none' : 'block';\nsunIcon.style.display = isDarkModeEnabled ? 'block' : 'none';\nlocalStorage.setItem('darkModeEnabled', isDarkModeEnabled);\n}\n\ndarkModeToggle.addEventListener('change', toggleDarkMode);\n</script>\n\n</body>\n</html>",
  242. "type": "HTML"
  243. },
  244. {
  245. "label": "ANDROID WEBVIEW (POR SUA CONTA E RISCO)",
  246. "name": "APP_SUPPORT_BUTTON",
  247. "value": null,
  248. "type": "HTML"
  249. },
  250. {
  251. "label": "PAGINA WEBVIEW (POR SUA CONTA E RISCO)",
  252. "name": "APP_WEB_VIEW",
  253. "value": null,
  254. "type": "HTML"
  255. }
  256. ]

comments powered by Disqus