[
  "onCompletion",
  {
    "_uri": "file:///home/carlos/Escritorio/Nuevo/xass-b2/comandos/lib/interfaz/app.calo",
    "_languageId": "castelog",
    "_version": 6923,
    "_content": "Ejecutable como documento HTML5\n    con autor allnulled\n    con nombre xass-ui\n    con versión 1.0.0\n<head>\n    <title>xass-ui</title>\n    <meta charset=\"utf8\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <link rel=\"icon\" type=\"image/x-icon\" href=\"/static/favicon.ico\" />\n    <script src=\"./js/socket.io.min.js\"></script>\n    <style>\n    html,body { padding: 0px !important; margin: 0px !important; }\n    .contenedor_de_menu_de_navegacion { display: none; }\n    .contenedor_de_menu_de_navegacion.seleccionado { display: block; }\n\n    ul,li { padding: 0px; margin: 0px; list-style: none; }\n    input[type=file] { padding: 3px; }\n    .fuente_titulo { font-size: 15px; font-weight: bold; }\n    .menu_de_navegacion { position: relative; }\n    .menu_de_navegacion > .opciones_de_menu { position: absolute; top: 0; left: 0; background-color: white; border: 1px solid #333; border-top: 1px solid #333; z-index: 999; }\n    .opciones_de_menu { min-width: 150px; }\n    .opcion_de_menu {}\n    .CapaScrolable { overflow: scroll; position: relative; min-width: 100%; min-height: 100px; resize: vertical; border: 1px solid #CCC; }\n    .capa_scrolable_interna { position: absolute; top: 0; left: 0; }\n    .control_de_opcion_textual { color: #888; cursor: pointer; }\n    .control_de_opcion_textual.seleccionado { color: black; text-decoration: underline; }\n    .width_100x100 { width: 100%; }\n    .text_align_left { text-align: left; }\n    .Tarjeta { border: 1px solid #888; }\n    .fondo_b { background-color: #E8E8E8; }\n    .text_align_right { text-align: right; }\n    .boton_pequenyo { padding: 3px; }\n\n    input[type=\"text\"],\n    input[type=\"number\"],\n    input[type=\"file\"],\n    .ControlParaBoton { border-radius: 0pt; border: none; background-color: #CCC; }\n    \n    input[type=\"text\"],\n    input[type=\"number\"],\n    input[type=\"file\"],\n    .ControlParaBoton:hover { background-color: #DDD; }\n\n    </style>\n</head>\n<body><div id=\"app\"></div></body>.\n\nimporto api nativa.\n\ndebugo \"Iniciando aplicación xass-ui\".\n\ncreo Gestor_de_autentificacion como {\n  propiedad token como \"LQL\".\n}.\n\ncreo socket_cliente como un cliente socket.io el cual {\n  en evento \"connection\" está usando una función con (socket) donde {\n    debugo \"socket_cliente.{evento=connection}\".\n    imprimo \"Conectado!\".\n  }.\n  en evento \"comando:xass:x:separar@respuesta\" está usando una función con (datos) donde {\n    debugo \"socket_cliente.{evento=comando:xass:x:separar@respuesta}\".\n    imprimo datos textualizado.\n  }.\n}.\n\nhago socket_cliente.emit(\"comando:xass:x:separar\", { mensaje: \"Hola desde socket.io!\" }).\n\ncreo utilidades como {\n  método de_fecha_a_texto con (fecha) donde {\n    debugo \"utilidades.de_fecha_a_texto\".\n    retorno un formateo de fecha a texto a partir de fecha.\n  }.\n  método de_ruta_a_extension con (ruta) donde {\n    debugo \"utilidades.de_ruta_a_extension\".\n    creo ruta_invertida como ruta.split(\"\").reverse().join(\"\").\n    creo posicion como ruta_invertida.indexOf(\".\").\n    retorno ruta_invertida.substr(0, posicion).split(\"\").reverse().join(\"\").\n  }.\n  método de_ruta_a_nombre_de_fichero con (ruta) donde {\n    debugo \"utilidades.de_ruta_a_nombre_de_fichero\".\n    creo ruta_invertida como ruta.split(\"\").reverse().join(\"\").\n    creo posicion como ruta_invertida.indexOf(\"/\").\n    retorno ruta_invertida.substr(0, posicion).split(\"\").reverse().join(\"\").\n  }.\n  método gestionar_error con (error) donde {\n    hago window.alert(`${error.name}: ${error.message} ${JSON.stringify(error.stack)}`).\n  }.\n}.\n\ncreo ruta_de_servidor como una función con (url) donde {\n  retorno `http://127.0.0.1:9854${url}`.\n}.\n\ncreo comandos_remotos como {\n  propiedad xass_x_separar como {\n    propiedad url como ruta_de_servidor(\"/comando/xass/x/separar\").\n    propiedad accion como una función.\n  }.\n  propiedad os_listar_comandos como {\n    propiedad url como ruta_de_servidor(\"/comando/os/listar_comandos\").\n    propiedad accion como una función.\n  }.\n  propiedad os_listar_directorio como {\n    propiedad url como ruta_de_servidor(\"/comando/os/listar_directorio\").\n    método asíncrono accion donde {\n      debugo \"comandos_remotos.os_listar_directorio.accion\".\n      creo respuesta como asíncronamente una petición http\n        con url comandos_remotos.os_listar_directorio.url\n        con método \"GET\"\n        con cuerpo {}\n        con cabeceras {}.\n      retorno respuesta.data.\n    } en errores hago utilidades.gestionar_error(error).\n  }.\n  propiedad os_crear_carpeta como {\n    propiedad url como ruta_de_servidor(\"/comando/os/crear_carpeta\").\n    método asíncrono accion donde {\n      debugo \"comandos_remotos.os_crear_carpeta.accion\".\n    }.\n  }.\n  propiedad os_eliminar_carpeta como {\n    propiedad url como ruta_de_servidor(\"/comando/os/eliminar_carpeta\").\n    método asíncrono accion donde {\n      debugo \"comandos_remotos.os_eliminar_carpeta.accion\".\n    }.\n  }.\n  propiedad os_eliminar_fichero como {\n    propiedad url como ruta_de_servidor(\"/comando/os/eliminar_fichero\").\n    método asíncrono accion donde {\n      debugo \"comandos_remotos.os_eliminar_fichero.accion\".\n    }.\n  }.\n  propiedad os_subir_fichero como {\n    propiedad url como ruta_de_servidor(\"/comando/os/subir_fichero\").\n    método asíncrono accion con (fichero) donde {\n      debugo \"comandos_remotos.os_subir_fichero.accion\".\n      creo formulario como un nuevo FormData().\n      hago formulario.append(\"fichero\", fichero).\n      creo respuesta como asíncronamente una petición http\n        con url comandos_remotos.os_subir_fichero.url\n        con método \"POST\"\n        con cuerpo formulario\n        con cabeceras { \"Content-type\": \"multipart/form-data\", \"Authorization\": Gestor_de_autentificacion.token }\n        .\n      imprimo respuesta.\n      retorno respuesta.\n    } en errores hago gestionar_error(error).\n  }.\n  propiedad os_bajar_fichero como {\n    propiedad url como ruta_de_servidor(\"/comando/os/bajar_fichero\").\n    método asíncrono accion donde {\n      debugo \"comandos_remotos.os_bajar_fichero.accion\".\n    }.\n  }.\n  propiedad os_copiar_fichero como {\n    propiedad url como ruta_de_servidor(\"/comando/os/copiar_fichero\").\n    método asíncrono accion donde {\n      debugo \"comandos_remotos.os_copiar_fichero.accion\".\n    }.\n  }.\n}.\n\ncreo opciones_de_props_de_control_por_defecto como {\n  propiedad valorInicial como \"\".\n  propiedad tiposDeValorInicial como [String,Number,Boolean,Object,Function,undefined].\n}.\n\ncreo props_de_control_tipico como una función con (opciones_de_usuario o en su defecto {}) donde {\n  creo opciones como {} extendido por opciones_de_props_de_control_por_defecto también extendido por opciones_de_usuario.\n  retorno {\n    propiedad contenedor como {\n      propiedad type como Object.\n      propiedad required como true.\n    }.\n    propiedad propiedad como {\n      propiedad type como String.\n      propiedad required como true.\n    }.\n    propiedad valorInicial como {\n      propiedad type como opciones.tiposDeValorInicial.\n      propiedad default como opciones.valorInicial.\n    }.\n    propiedad relleno como {\n      propiedad type como String.\n      propiedad default como \"\".\n    }.\n  }.\n}.\n\ncreo watch_de_control_tipico como {\n  método valor_interno con (nuevo_valor) donde {\n    debugo \"watch_de_control_tipico.valor_interno\".\n    asigno this.contenedor[this.propiedad] como nuevo_valor.\n  }.\n}.\n\ncreo BarraSuperior como un componente vue2 con nombre \"BarraSuperior\" con plantilla {\n  <div class=\"BarraSuperior Component\">\n    <div style=\"display: table; width: 100%;\">\n      <div style=\"display: table-cell;\">\n        <slot name=\"esquina\"></slot>\n      </div>\n      <div style=\"display: table-cell; width: 100%;\">\n        <slot name=\"barra\"></slot>\n      </div>\n    </div>\n    <div class=\"contenedor_de_menu_de_navegacion\" :class=\"{seleccionado: $root.esta_mostrando_menu}\">\n      <slot name=\"menu\"></slot>\n    </div>\n  </div>\n}.\n\ncreo PaginaDeInicio como un componente vue2 con nombre \"PaginaDeInicio\" con plantilla {\n  <div class=\"PaginaDeInicio Component\">\n    <LineaHorizontal class=\"marginado_vertical_2\" style=\"margin-top: 0;\"></LineaHorizontal>\n    <div class=\"fuente_titulo\">Inicio</div>\n    <LineaHorizontal class=\"marginado_vertical_2\" style=\"margin-bottom: 0;\"></LineaHorizontal>\n  </div>\n}.\n\ncreo CapaScrolable como un componente vue2 con nombre \"CapaScrolable\" con plantilla {\n  <div class=\"CapaScrolable Component\">\n    <div class=\"capa_scrolable_interna\">\n      <slot></slot>\n    </div>\n  </div>\n}.\n\ncreo ControlParaFichero2 como un componente vue2 con nombre \"ControlParaFichero2\" con plantilla {\n  <div class=\"ControlParaFichero2\">\n    <input style=\"width: 100%;\" type=\"file\" multiple=\"true\" v-on:change=\"establecer_valor\" :accept=\"extensiones\" />\n    <template v-if=\"valor_interno\">\n      <EtiquetaDeControl>Ficheros seleccionados:</EtiquetaDeControl>\n      <CapaScrolable class=\"marginado_top_2\">\n        <table>\n          <thead>\n            <tr>\n              <td>Extensión</td>\n              <td>Tamaño</td>\n              <td>Última modificación</td>\n              <td>Fichero</td>\n            </tr>\n          </thead>\n          <tbody>\n            <tr v-for=\"(fichero, ficheroIndex) in valor_interno\" v-bind:key=\"'fichero-para-separar-' + ficheroIndex\">\n              <td><span class=\"no_contraer_texto\">{{ fichero.type ? fichero.type : $utils.de_ruta_a_extension(fichero.path) }}</span></td>\n              <td><span class=\"no_contraer_texto\">{{ fichero.size / 1000 }}KB</span></td>\n              <td><span class=\"no_contraer_texto\">{{ $utils.de_fecha_a_texto(fichero.lastModifiedDate) }}</span></td>\n              <td><span class=\"no_contraer_texto\">{{ fichero.name }}</span></td>\n            </tr>\n          </tbody>\n        </table>\n      </CapaScrolable>\n    </template>\n  </div>\n} con lógica {\n  retorno {\n    propiedad props como {\n      propiedad extensiones como {\n        propiedad type como String.\n        propiedad default como \"*\".\n      }.\n      ...incluyo props_de_control_tipico()\n    }.\n    método data donde {\n      debugo \"ControlParaFichero2.data\".\n      retorno {\n        propiedad valor_interno como undefined.\n      }.\n    }.\n    propiedad methods como {\n      método establecer_valor como una función con (valor) donde {\n        debugo \"ControlParaFichero2.methods.establecer_valor\".\n        asigno this.valor_interno como valor.target.files o [].\n        imprimo this.valor_interno.\n      }.\n    }.\n    propiedad watch como {\n      ...incluyo watch_de_control_tipico\n    }.\n  }.\n}.\ncreo ControlParaNumero2 como un componente vue2 con nombre \"ControlParaNumero2\" con plantilla {\n  <div class=\"ControlParaNumero2\">\n    <div style=\"display: table; width: 100%;\">\n      <div style=\"display: table-cell; width: 1%;\">\n        <ControlParaBoton v-on:click.native=\"decrementar\"> « </ControlParaBoton>\n      </div>\n      <div style=\"display: table-cell; width: 100%;\" class=\"espaciado_horizontal_2\">\n        <input style=\"width: 100%;\" type=\"number\" v-model=\"valor_interno\" :placeholder=\"relleno\" :step=\"intervalos\" />\n      </div>\n      <div style=\"display: table-cell; width: 1%;\">\n        <ControlParaBoton v-on:click.native=\"incrementar\"> » </ControlParaBoton>\n      </div>\n    </div>\n  </div>\n} con lógica {\n  retorno {\n    propiedad props como {\n      propiedad intervalos como {\n        propiedad type como Number.\n        propiedad default como 1.\n      }.\n      ...incluyo props_de_control_tipico({ valorInicial: 0, tiposDeValorInicial: Number })\n    }.\n    método data donde {\n        debugo \"ControlParaNumero2.data\".\n      retorno {\n        propiedad valor_interno como this.valorInicial.\n      }.\n    }.\n    propiedad methods como {\n      método incrementar donde {\n        debugo \"ControlParaNumero2.methods.incrementar\".\n        asigno this.valor_interno como Math.round((this.valor_interno + this.intervalos) * 100) / 100.\n      }.\n      método decrementar donde {\n        debugo \"ControlParaNumero2.methods.decrementar\".\n        asigno this.valor_interno como Math.round((this.valor_interno - this.intervalos) * 100) / 100.\n      }.\n    }.\n    propiedad watch como {\n      ...incluyo watch_de_control_tipico\n    }.\n  }.\n}.\ncreo ControlParaTexto2 como un componente vue2 con nombre \"ControlParaTexto2\" con plantilla {\n  <div class=\"ControlParaTexto2\">\n    <input style=\"width: 100%;\" type=\"text\" v-model=\"valor_interno\" :placeholder=\"relleno\" />\n  </div>\n} con lógica {\n  retorno {\n    propiedad props como {\n      ...incluyo props_de_control_tipico({ valorInicial: \"\", tiposDeValorInicial: String })\n    }.\n    método data donde {\n      debugo \"ControlParaTexto2.data\".\n      retorno {\n        propiedad valor_interno como \"\".\n      }.\n    }.\n    propiedad watch como {\n      ...incluyo watch_de_control_tipico\n    }.\n  }.\n}.\ncreo ControlParaTextoLargo2 como un componente vue2 con nombre \"ControlParaTextoLargo2\" con plantilla {\n  <div class=\"ControlParaTextoLargo2 Component\">\n    <textarea style=\"width: 100%;\" v-model=\"valor_interno\" :placeholder=\"relleno\"></textarea>\n  </div>\n} con lógica {\n  retorno {\n    propiedad props como {\n      ...incluyo props_de_control_tipico({ valorInicial: \"\", tiposDeValorInicial: String })\n    }.\n    método data donde {\n      debugo \"ControlParaTextoLargo2.data\".\n      retorno {\n        propiedad valor_interno como \"\".\n      }.\n    }.\n    propiedad watch como {\n      ...incluyo watch_de_control_tipico\n    }.\n  }.\n}.\n\ncreo Cargando como un componente vue2 con nombre \"Cargando\" con plantilla {\n  <div class=\"Cargando Component\">\n    <slot></slot>\n  </div>\n}.\n\ncreo Tarjeta como un componente vue2 con nombre \"Tarjeta\" con plantilla {\n  <div class=\"Tarjeta Component\">\n    <slot></slot>\n  </div>\n}.\n\ncreo PaginaDePantallaExplorador como un componente vue2 con nombre \"PaginaDePantallaExplorador\" con plantilla {\n  <div class=\"PaginaDePantallaExplorador Component\">\n    <LineaHorizontal class=\"marginado_vertical_2\" style=\"margin-top: 0;\"></LineaHorizontal>\n    <div class=\"fuente_titulo\">Explorador de ficheros</div>\n    <LineaHorizontal class=\"marginado_vertical_2\" style=\"margin-bottom: 0;\"></LineaHorizontal>\n    <div class=\"espaciado_2\">\n      <EtiquetaDeControl>Explorador:</EtiquetaDeControl>\n      <Cargando v-if=\"!Array.isArray(ficheros_para_explorar_internos)\">Cargando ficheros del servidor...</Cargando>\n      <template v-else-if=\"ficheros_para_explorar_internos.length\">\n        <CapaScrolable>\n          <table>\n            <tbody v-for=\"(fichero, ficheroIndex) in ficheros_para_explorar_internos\" v-bind:key=\"'explorador-de-ficheros-fichero-' + ficheroIndex\">\n              <tr>\n                <td>\n                  <template v-if=\"fichero.endsWith('.ass')\">\n                    <ControlParaBoton class=\"boton_pequenyo\">Abrir</ControlParaBoton>\n                  </template>\n                </td>\n                <td class=\"no_contraer_texto\">{{ ficheroIndex + 1 }}</td>\n                <td class=\"no_contraer_texto\">{{ fichero }}</td>\n                <td>\n                  <template v-if=\"fichero.endsWith('.ass')\">\n                    <ControlParaBoton class=\"boton_pequenyo\">Eliminar</ControlParaBoton>\n                  </template>\n                </td>\n              </tr>\n            </tbody>\n          </table>\n        </CapaScrolable>\n      </template>\n      <template v-else-if=\"Array.isArray(ficheros_para_explorar_internos)\">\n        No se encontraron ficheros en el servidor actualmente.\n      </template>\n      <Tarjeta class=\"espaciado_2 espaciado_arriba_0 marginado_arriba_2 fondo_b\">\n        <EtiquetaDeControl>Ficheros para subir:</EtiquetaDeControl>\n        <ControlParaFichero2 :contenedor=\"this\" propiedad=\"ficheros_para_subir_internos\" extensiones=\".ass\" ref=\"ficheros_para_subir\"></ControlParaFichero2>\n        <template v-if=\"ficheros_para_subir_internos && ficheros_para_subir_internos.length\">\n          <EtiquetaDeControl>Estado de las subidas:</EtiquetaDeControl>\n          <CapaScrolable>\n            <table>\n              <tbody v-for=\"(fichero, ficheroIndex) in ficheros_para_subir_internos\" v-bind:key=\"'explorador-de-ficheros-fichero-' + ficheroIndex\">\n                <tr>\n                  <td>\n                    <template v-if=\"fichero.name.endsWith('.ass')\">\n                      <ControlParaBoton v-if=\"fichero.estado_de_la_subida === 'subiendo'\" disabled=\"true\">Subiendo</ControlParaBoton>\n                      <ControlParaBoton v-else-if=\"fichero.estado_de_la_subida === 'completado'\" disabled=\"true\">Completado</ControlParaBoton>\n                      <ControlParaBoton v-else v-on:click.native=\"() => subir_fichero(fichero)\">Subir</ControlParaBoton>\n                    </template>\n                  </td>\n                  <td class=\"no_contraer_texto\">{{ ficheroIndex + 1 }}</td>\n                  <td class=\"no_contraer_texto\">{{ fichero.name }}</td>\n                  <td class=\"no_contraer_texto\">{{ $utils.de_fecha_a_texto(new Date(fichero.lastModified)) }}</td>\n                </tr>\n              </tbody>\n            </table>\n          </CapaScrolable>\n          <div class=\"marginado_arriba_2 text_align_right\">\n            <ControlParaBoton class=\"no_contraer_texto\" v-on:click.native=\"limpiar_ficheros\">Cancelar</ControlParaBoton>\n            <ControlParaBoton class=\"no_contraer_texto\" v-on:click.native=\"subir_ficheros\">Subir todos</ControlParaBoton>\n          </div>\n        </template>\n      </Tarjeta>\n    </div>\n  </div>\n} con lógica {\n  retorno {\n    método data donde {\n      debugo \"PaginaDePantallaExplorador.data\".\n      retorno {\n        propiedad ficheros_para_subir_internos como [].\n        propiedad ficheros_para_explorar_internos como undefined.\n      }.\n    }.\n    propiedad methods como {\n      método asíncrono subir_fichero con (fichero) donde {\n        debugo \"PaginaDePantallaExplorador.methods.subir_fichero\".\n        asigno fichero.estado_de_la_subida como \"subiendo\".\n        hago this.$forceUpdate(true).\n        creo respuesta como asíncronamente comandos_remotos.os_subir_fichero.accion(fichero).\n        asigno fichero.estado_de_la_subida como \"completado\".\n        hago this.$forceUpdate(true).\n        retorno respuesta.\n      } en errores hago gestionar_error(error).\n      método asíncrono limpiar_ficheros donde {\n        asigno this.ficheros_para_subir_internos como [].\n      }.\n      método asíncrono subir_ficheros donde {\n        debugo \"PaginaDePantallaExplorador.methods.subir_ficheros\".\n        desde 0 hasta this.ficheros_para_subir_internos.length {\n          creo fichero como this.ficheros_para_subir_internos[index].\n          asigno fichero.estado_de_la_subida como \"sin empezar\".\n          hago asíncronamente this.subir_fichero(fichero).\n        }.\n      } en errores hago gestionar_error(error).\n    }.\n    propiedad watch como {\n      \n    }.\n    método asíncrono mounted donde {\n      debugo \"PaginaDePantallaExplorador.mounted\".\n      desacoplo constantes { ficheros } a partir de asíncronamente comandos_remotos.os_listar_directorio.accion().\n      asigno this.ficheros_para_explorar_internos como ficheros.\n    } en errores hago gestionar_error(error).\n  }.\n}.\n\ncreo PaginaDeComandoSeparar como un componente vue2 con nombre \"PaginaDeComandoSeparar\" con plantilla {\n  <div class=\"PaginaDeComandoSeparar Component\">\n    <LineaHorizontal class=\"marginado_vertical_2\" style=\"margin-top: 0;\"></LineaHorizontal>\n    <div class=\"fuente_titulo\">Comando: «xass -x separar»</div>\n    <LineaHorizontal class=\"marginado_vertical_2\" style=\"margin-bottom: 0;\"></LineaHorizontal>\n    <div class=\"espaciado_2\">\n      <EtiquetaDeControl>Ficheros a aplicar separación mínima entre subtítulos:</EtiquetaDeControl>\n      <ControlParaFichero2 :contenedor=\"this\" propiedad=\"ficheros_internos\" extensiones=\".ass\"></ControlParaFichero2>\n      <EtiquetaDeControl>Carga izquierda <b>(en porcentaje)</b>:</EtiquetaDeControl>\n      <ControlParaNumero2 :contenedor=\"this\" propiedad=\"carga_izquierda_interna\" ref=\"carga_izquierda\" :valor-inicial=\"carga_izquierda_interna\"></ControlParaNumero2>\n      <EtiquetaDeControl>Carga derecha <b>(en porcentaje)</b>:</EtiquetaDeControl>\n      <ControlParaNumero2 :contenedor=\"this\" propiedad=\"carga_derecha_interna\" ref=\"carga_derecha\" :valor-inicial=\"carga_derecha_interna\"></ControlParaNumero2>\n      <EtiquetaDeControl>Separación mínima <b>(en centésimas de segundo)</b>:</EtiquetaDeControl>\n      <ControlParaNumero2 :contenedor=\"this\" propiedad=\"separacion_minima_interna\" ref=\"separacion_minima\" :valor-inicial=\"separacion_minima_interna\" :intervalos=\"0.01\"></ControlParaNumero2>\n      <EtiquetaDeControl>Incluye estilos <b>(<span class=\"control_de_opcion_textual\" :class=\"{seleccionado:!incluye_estilos_por_regexp_interno}\" v-on:click=\"cambiar_estado_de_incluye_estilos_a_texto\">en texto</span> o <span class=\"control_de_opcion_textual\" :class=\"{seleccionado:incluye_estilos_por_regexp_interno}\" v-on:click=\"cambiar_estado_de_incluye_estilos_a_regexp\">en expresión regular</span>)</b>:</EtiquetaDeControl>\n      <template v-if=\"!incluye_estilos_por_regexp_interno\">\n        <ControlParaTexto2 :contenedor=\"this\" propiedad=\"incluye_estilos_interno\" ref=\"incluye_estilos\" :valor-inicial=\"incluye_estilos_interno\" relleno=\"Modo texto: Estilo 1\"></ControlParaTexto2>\n      </template>\n      <template v-else>\n        <ControlParaTexto2 :contenedor=\"this\" propiedad=\"incluye_estilos_interno\" ref=\"incluye_estilos\" :valor-inicial=\"incluye_estilos_interno\" relleno=\"Modo expresión regular: Estilo(s)? (1|2|3)\"></ControlParaTexto2>\n      </template>\n      <EtiquetaDeControl>Excluye estilos <b>(<span class=\"control_de_opcion_textual\" :class=\"{seleccionado:!excluye_estilos_por_regexp_interno}\" v-on:click=\"cambiar_estado_de_excluye_estilos_a_texto\">en texto</span> o <span class=\"control_de_opcion_textual\" :class=\"{seleccionado:excluye_estilos_por_regexp_interno}\" v-on:click=\"cambiar_estado_de_excluye_estilos_a_regexp\">en expresión regular</span>)</b>:</EtiquetaDeControl>\n      <template v-if=\"!excluye_estilos_por_regexp_interno\">\n        <ControlParaTexto2 :contenedor=\"this\" propiedad=\"excluye_estilos_interno\" ref=\"excluye_estilos\" :valor-inicial=\"excluye_estilos_interno\" relleno=\"Modo texto: Estilo 1\"></ControlParaTexto2>\n      </template>\n      <template v-else>\n        <ControlParaTexto2 :contenedor=\"this\" propiedad=\"excluye_estilos_interno\" ref=\"excluye_estilos\" :valor-inicial=\"excluye_estilos_interno\" relleno=\"Modo expresión regular: Estilo(s)? (1|2|3)\"></ControlParaTexto2>\n      </template>\n      <LineaHorizontal class=\"marginado_vertical_2\"></LineaHorizontal>\n      <div style=\"text-align: right;\">\n        <div v-if=\"typeof proceso_en_ejecucion === 'undefined'\">\n          <ControlParaBoton v-on:click.native=\"ejecutar\">Ejecutar</ControlParaBoton>\n        </div>\n        <div v-else>\n          <ControlParaBoton v-on:click.native=\"terminar_ejecucion\">Terminar ejecución</ControlParaBoton>\n          <LineaHorizontal class=\"marginado_vertical_2\"></LineaHorizontal>\n          <ControlParaTextoLargo2 :contenedor=\"this\" propiedad=\"consola\" />\n        </div>\n      </div>\n    </div>\n  </div>\n} con lógica {\n  retorno {\n    método data donde {\n      debugo \"PaginaDeComandoSeparar.data\".\n      retorno {\n        propiedad ficheros_internos como [].\n        propiedad carga_izquierda_interna como 50.\n        propiedad carga_derecha_interna como 50.\n        propiedad separacion_minima_interna como 0.17.\n        propiedad incluye_estilos_interno como \"\".\n        propiedad incluye_estilos_por_regexp_interno como false.\n        propiedad excluye_estilos_interno como \"\".\n        propiedad excluye_estilos_por_regexp_interno como false.\n        propiedad proceso_en_ejecucion como undefined.\n      }.\n    }.\n    propiedad methods como {\n      método ejecutar donde {\n        debugo \"PaginaDeComandoSeparar.methods.ejecutar\".\n        Hago window.alert(\"OK...\").\n      }.\n      método terminar_ejecucion donde {\n        debugo \"PaginaDeComandoSeparar.methods.ejecutar\".\n\n      }.\n      método cambiar_estado_de_incluye_estilos_a_texto donde {\n        debugo \"PaginaDeComandoSeparar.methods.cambia_estado_de_incluye_estilos_a_texto\".\n        asigno this.incluye_estilos_por_regexp_interno como false.\n      }.\n      método cambiar_estado_de_incluye_estilos_a_regexp donde {\n        debugo \"PaginaDeComandoSeparar.methods.cambiar_estado_de_incluye_estilos_a_regexp\".\n        asigno this.incluye_estilos_por_regexp_interno como true.\n      }.\n      método cambiar_estado_de_excluye_estilos_a_texto donde {\n        debugo \"PaginaDeComandoSeparar.methods.cambiar_estado_de_excluye_estilos_a_texto\".\n        asigno this.excluye_estilos_por_regexp_interno como false.\n      }.\n      método cambiar_estado_de_excluye_estilos_a_regexp donde {\n        debugo \"PaginaDeComandoSeparar.methods.cambiar_estado_de_excluye_estilos_a_regexp\".\n        asigno this.excluye_estilos_por_regexp_interno como true.\n      }.\n    }.\n    propiedad watch como {\n      método carga_izquierda_interna con (nuevo_valor) donde {\n        debugo \"PaginaDeComandoSeparar.watch.carga_izquierda_interna\".\n        creo nuevo_numero como nuevo_valor numerizado.\n        si nuevo_numero no es tipo número normal retorno.\n        si nuevo_numero es mayor que 100 o nuevo_numero es menor que 0 retorno.\n        creo complementario como 100 - nuevo_numero.\n        asigno this.$refs.carga_derecha.valor_interno como complementario.\n      }.\n      método carga_derecha_interna con (nuevo_valor) donde {\n        debugo \"PaginaDeComandoSeparar.watch.carga_derecha_interna\".\n        creo nuevo_numero como nuevo_valor numerizado.\n        si nuevo_numero no es tipo número normal retorno.\n        si nuevo_numero es mayor que 100 o nuevo_numero es menor que 0 retorno.\n        creo complementario como 100 - nuevo_numero.\n        asigno this.$refs.carga_izquierda.valor_interno como complementario.\n      }.\n    }.\n  }.\n}.\n\nasigno Vue.prototype.$utils como utilidades.\n\ncreo App como una aplicación vue2 con nombre \"App\" con rutas [{\n    propiedad path como \"/comando/xass/separar\".\n    propiedad name como \"ComandoSeparar\".\n    propiedad component como PaginaDeComandoSeparar.\n    propiedad props como {}.\n}, {\n    propiedad path como \"/pantalla/explorador\".\n    propiedad name como \"PantallaExplorador\".\n    propiedad component como PaginaDePantallaExplorador.\n    propiedad props como {}.\n}, {\n    propiedad path como \"/\".\n    propiedad name como \"Home\".\n    propiedad component como PaginaDeInicio.\n    propiedad props como {}.\n}] con traducciones {\n    propiedad es como {}.\n    propiedad en como {}.\n    propiedad ca como {}.\n} con plantilla {\n  <div class=\"App Component Castelog-app\">\n    <BarraSuperior>\n      <template v-slot:esquina>\n        <ControlParaBoton v-on:click.native=\"$root.mostrar_u_ocultar_menu\">=</ControlParaBoton>\n      </template>\n      <template v-slot:barra>\n        <div class=\"fuente_titulo espaciado_horizontal_2\">xass-UI · v1.0.0</div>\n      </template>\n      <template v-slot:menu>\n        <div class=\"menu_de_navegacion\">\n          <ul class=\"opciones_de_menu\">\n            <li class=\"opcion_de_menu\">\n              <div class=\"texto_de_opcion\">\n                <ControlParaBoton class=\"width_100x100 text_align_left\" v-on:click.native=\"() => $root.ir_a_pagina('/')\">\n                  <span># Inicio </span>\n                </ControlParaBoton>\n              </div>\n            </li>\n            <li class=\"opcion_de_menu\">\n              <div class=\"texto_de_opcion\">\n                <ControlParaBoton class=\"width_100x100 text_align_left\" v-on:click.native=\"() => $root.ir_a_pagina('/pantalla/explorador')\">\n                  <span># Explorador </span>\n                </ControlParaBoton>\n              </div>\n            </li>\n            <li class=\"opcion_de_menu\">\n              <div class=\"texto_de_opcion\">\n                <ControlParaBoton class=\"width_100x100 text_align_left\" v-on:click.native=\"$root.mostrar_u_ocultar_comandos_en_navegacion\">\n                  <span v-if=\"$root.esta_mostrando_comandos_en_navegacion\"> - Comandos </span>\n                  <span v-else> + Comandos </span>\n                </ControlParaBoton>\n              </div>\n              <div class=\"subnodos_de_opcion\" v-if=\"$root.esta_mostrando_comandos_en_navegacion\">\n                <ul class=\"opciones_de_menu\">\n                  <li class=\"opcion_de_menu\">\n                    <div class=\"texto_de_opcion\">\n                      <ControlParaBoton class=\"width_100x100 text_align_left\" v-on:click.native=\"() => $root.ir_a_pagina('/comando/xass/separar')\">\n                        <span># Separar subtítulos</span>\n                      </ControlParaBoton>\n                    </div>\n                  </li>\n                </ul>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </template>\n    </BarraSuperior>\n    <router-view></router-view>\n  </div>\n} con estilos {\n    html {}\n    body {}\n    .Component {}\n    .App {}\n} con lógica {\n  retorno {\n    método data donde {\n      debugo \"App.data\".\n      retorno {\n        propiedad esta_mostrando_menu como false.\n        propiedad esta_mostrando_comandos_en_navegacion como true.\n      }.\n    }.\n    propiedad methods como {\n      método mostrar_u_ocultar_menu donde {\n        debugo \"App.methods.mostrar_u_ocultar_menu\".\n        asigno this.esta_mostrando_menu como no this.esta_mostrando_menu.\n      }.\n      método mostrar_u_ocultar_comandos_en_navegacion donde {\n        debugo \"App.methods.mostrar_u_ocultar_comandos_en_navegacion\".\n        asigno this.esta_mostrando_comandos_en_navegacion como no this.esta_mostrando_comandos_en_navegacion.\n      }.\n      método ir_a_pagina con (link) donde {\n        debugo \"App.methods.ir_a_pagina\".\n        asigno this.esta_mostrando_menu como false.\n        hago this.$router.history.push(link).\n      }.\n    }.\n    propiedad watch como {}.\n    método beforeMount donde {\n      debugo \"App.beforeMount\".\n      asigno this.$root como this.\n    }.\n    método mounted donde {\n      debugo \"App.mounted\".\n    }.\n  }.\n} montada en \"#app\".",
    "_lineOffsets": [
      0,
      32,
      56,
      79,
      101,
      108,
      135,
      163,
      240,
      311,
      361,
      373,
      440,
      497,
      568,
      569,
      628,
      667,
      726,
      774,
      950,
      994,
      1017,
      1156,
      1225,
      1290,
      1380,
      1416,
      1459,
      1500,
      1544,
      1589,
      1627,
      1628,
      1652,
      1678,
      1702,
      1786,
      1791,
      1815,
      1841,
      1865,
      1921,
      1922,
      1935,
      1943,
      1978,
      1979,
      1999,
      2000,
      2039,
      2040,
      2078,
      2108,
      2111,
      2112,
      2168,
      2238,
      2287,
      2313,
      2318,
      2409,
      2480,
      2512,
      2517,
      2520,
      2521,
      2611,
      2612,
      2635,
      2681,
      2723,
      2783,
      2788,
      2836,
      2881,
      2945,
      2997,
      3074,
      3079,
      3135,
      3188,
      3252,
      3304,
      3381,
      3386,
      3431,
      3520,
      3525,
      3528,
      3529,
      3586,
      3627,
      3630,
      3631,
      3660,
      3694,
      3762,
      3801,
      3806,
      3844,
      3916,
      3955,
      3960,
      4000,
      4074,
      4110,
      4171,
      4230,
      4288,
      4313,
      4335,
      4361,
      4391,
      4448,
      4453,
      4489,
      4559,
      4595,
      4652,
      4659,
      4664,
      4703,
      4776,
      4812,
      4872,
      4879,
      4884,
      4923,
      4996,
      5032,
      5092,
      5099,
      5104,
      5140,
      5210,
      5260,
      5317,
      5365,
      5415,
      5474,
      5528,
      5554,
      5584,
      5698,
      5708,
      5733,
      5758,
      5804,
      5809,
      5845,
      5915,
      5951,
      6008,
      6015,
      6020,
      6057,
      6128,
      6164,
      6222,
      6229,
      6234,
      6237,
      6238,
      6291,
      6325,
      6413,
      6416,
      6417,
      6516,
      6638,
      6650,
      6682,
      6716,
      6752,
      6759,
      6790,
      6824,
      6860,
      6867,
      6901,
      6957,
      7009,
      7016,
      7045,
      7079,
      7112,
      7119,
      7124,
      7127,
      7128,
      7164,
      7213,
      7265,
      7326,
      7331,
      7334,
      7335,
      7421,
      7461,
      7508,
      7549,
      7586,
      7599,
      7653,
      7688,
      7701,
      7712,
      7814,
      7846,
      7857,
      7866,
      7869,
      7870,
      7958,
      7999,
      8091,
      8135,
      8230,
      8239,
      8242,
      8243,
      8329,
      8369,
      8410,
      8430,
      8441,
      8450,
      8453,
      8454,
      8552,
      8588,
      8704,
      8740,
      8809,
      8855,
      8871,
      8889,
      8906,
      8939,
      8969,
      9012,
      9043,
      9061,
      9080,
      9098,
      9216,
      9355,
      9445,
      9563,
      9644,
      9662,
      9681,
      9698,
      9721,
      9737,
      9746,
      9761,
      9773,
      9800,
      9835,
      9871,
      9907,
      9916,
      9959,
      9966,
      9990,
      10031,
      10047,
      10095,
      10104,
      10111,
      10140,
      10207,
      10270,
      10334,
      10370,
      10379,
      10386,
      10413,
      10454,
      10461,
      10466,
      10469,
      10565,
      10600,
      10647,
      10699,
      10780,
      10793,
      10878,
      10997,
      11010,
      11062,
      11143,
      11156,
      11167,
      11176,
      11191,
      11203,
      11230,
      11264,
      11300,
      11334,
      11343,
      11434,
      11441,
      11465,
      11507,
      11523,
      11579,
      11588,
      11595,
      11624,
      11657,
      11714,
      11817,
      11826,
      11859,
      11916,
      12019,
      12028,
      12035,
      12062,
      12103,
      12110,
      12115,
      12118,
      12212,
      12246,
      12340,
      12349,
      12364,
      12376,
      12403,
      12495,
      12502,
      12526,
      12565,
      12581,
      12622,
      12631,
      12638,
      12665,
      12706,
      12713,
      12718,
      12721,
      12825,
      12874,
      12968,
      12977,
      12992,
      13004,
      13031,
      13123,
      13130,
      13154,
      13198,
      13214,
      13255,
      13264,
      13271,
      13298,
      13339,
      13346,
      13351,
      13354,
      13355,
      13431,
      13466,
      13484,
      13493,
      13496,
      13497,
      13571,
      13605,
      13623,
      13632,
      13635,
      13636,
      13748,
      13801,
      13893,
      13953,
      14048,
      14078,
      14135,
      14251,
      14319,
      14343,
      14361,
      14510,
      14529,
      14550,
      14611,
      14697,
      14727,
      14749,
      14823,
      14888,
      14909,
      14970,
      15059,
      15089,
      15111,
      15131,
      15152,
      15171,
      15196,
      15214,
      15290,
      15353,
      15371,
      15453,
      15521,
      15678,
      15772,
      15844,
      15870,
      15890,
      16038,
      16059,
      16082,
      16150,
      16284,
      16427,
      16548,
      16580,
      16604,
      16680,
      16752,
      16867,
      16889,
      16912,
      16933,
      16960,
      17020,
      17141,
      17263,
      17280,
      17300,
      17317,
      17328,
      17337,
      17352,
      17364,
      17388,
      17436,
      17452,
      17508,
      17574,
      17583,
      17590,
      17619,
      17678,
      17745,
      17805,
      17843,
      17937,
      17999,
      18037,
      18064,
      18112,
      18160,
      18218,
      18227,
      18273,
      18341,
      18406,
      18476,
      18541,
      18600,
      18611,
      18659,
      18666,
      18693,
      18700,
      18707,
      18744,
      18795,
      18910,
      18975,
      19021,
      19026,
      19029,
      19030,
      19134,
      19183,
      19275,
      19339,
      19434,
      19464,
      19564,
      19682,
      19767,
      19933,
      20016,
      20176,
      20274,
      20465,
      20892,
      20952,
      21149,
      21167,
      21191,
      21410,
      21428,
      21855,
      21915,
      22112,
      22130,
      22154,
      22373,
      22391,
      22462,
      22501,
      22566,
      22651,
      22666,
      22687,
      22792,
      22867,
      22943,
      22958,
      22971,
      22982,
      22991,
      23006,
      23018,
      23042,
      23086,
      23102,
      23147,
      23198,
      23247,
      23302,
      23353,
      23418,
      23469,
      23534,
      23589,
      23598,
      23605,
      23634,
      23664,
      23722,
      23758,
      23767,
      23807,
      23865,
      23866,
      23875,
      23938,
      24028,
      24095,
      24104,
      24168,
      24260,
      24326,
      24335,
      24398,
      24489,
      24556,
      24565,
      24629,
      24721,
      24787,
      24796,
      24803,
      24830,
      24893,
      24964,
      25019,
      25077,
      25157,
      25210,
      25285,
      25294,
      25355,
      25424,
      25479,
      25537,
      25617,
      25670,
      25747,
      25756,
      25763,
      25768,
      25771,
      25772,
      25817,
      25818,
      25882,
      25931,
      25973,
      26026,
      26055,
      26060,
      26108,
      26154,
      26211,
      26240,
      26245,
      26274,
      26306,
      26351,
      26380,
      26402,
      26428,
      26454,
      26480,
      26498,
      26541,
      26561,
      26593,
      26689,
      26707,
      26737,
      26818,
      26836,
      26865,
      26906,
      26946,
      26986,
      27030,
      27152,
      27193,
      27229,
      27250,
      27268,
      27308,
      27352,
      27493,
      27538,
      27574,
      27595,
      27613,
      27653,
      27697,
      27837,
      27932,
      27983,
      28019,
      28040,
      28138,
      28184,
      28230,
      28280,
      28428,
      28486,
      28528,
      28555,
      28579,
      28601,
      28622,
      28640,
      28656,
      28671,
      28689,
      28710,
      28742,
      28751,
      28767,
      28779,
      28791,
      28809,
      28821,
      28836,
      28848,
      28872,
      28897,
      28913,
      28963,
      29030,
      29039,
      29046,
      29075,
      29119,
      29172,
      29246,
      29255,
      29317,
      29388,
      29498,
      29507,
      29551,
      29593,
      29645,
      29691,
      29700,
      29707,
      29736,
      29767,
      29799,
      29834,
      29841,
      29868,
      29896,
      29903,
      29908
    ]
  },
  144,
  8,
  "Ejecutable como documento HTML5\n    con autor allnulled\n    con nombre xass-ui\n    con versión 1.0.0\n<head>\n    <title>xass-ui</title>\n    <meta charset=\"utf8\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <link rel=\"icon\" type=\"image/x-icon\" href=\"/static/favicon.ico\" />\n    <script src=\"./js/socket.io.min.js\"></script>\n    <style>\n    html,body { padding: 0px !important; margin: 0px !important; }\n    .contenedor_de_menu_de_navegacion { display: none; }\n    .contenedor_de_menu_de_navegacion.seleccionado { display: block; }\n\n    ul,li { padding: 0px; margin: 0px; list-style: none; }\n    input[type=file] { padding: 3px; }\n    .fuente_titulo { font-size: 15px; font-weight: bold; }\n    .menu_de_navegacion { position: relative; }\n    .menu_de_navegacion > .opciones_de_menu { position: absolute; top: 0; left: 0; background-color: white; border: 1px solid #333; border-top: 1px solid #333; z-index: 999; }\n    .opciones_de_menu { min-width: 150px; }\n    .opcion_de_menu {}\n    .CapaScrolable { overflow: scroll; position: relative; min-width: 100%; min-height: 100px; resize: vertical; border: 1px solid #CCC; }\n    .capa_scrolable_interna { position: absolute; top: 0; left: 0; }\n    .control_de_opcion_textual { color: #888; cursor: pointer; }\n    .control_de_opcion_textual.seleccionado { color: black; text-decoration: underline; }\n    .width_100x100 { width: 100%; }\n    .text_align_left { text-align: left; }\n    .Tarjeta { border: 1px solid #888; }\n    .fondo_b { background-color: #E8E8E8; }\n    .text_align_right { text-align: right; }\n    .boton_pequenyo { padding: 3px; }\n\n    input[type=\"text\"],\n    input[type=\"number\"],\n    input[type=\"file\"],\n    .ControlParaBoton { border-radius: 0pt; border: none; background-color: #CCC; }\n    \n    input[type=\"text\"],\n    input[type=\"number\"],\n    input[type=\"file\"],\n    .ControlParaBoton:hover { background-color: #DDD; }\n\n    </style>\n</head>\n<body><div id=\"app\"></div></body>.\n\nimporto api nativa.\n\ndebugo \"Iniciando aplicación xass-ui\".\n\ncreo Gestor_de_autentificacion como {\n  propiedad token como \"LQL\".\n}.\n\ncreo socket_cliente como un cliente socket.io el cual {\n  en evento \"connection\" está usando una función con (socket) donde {\n    debugo \"socket_cliente.{evento=connection}\".\n    imprimo \"Conectado!\".\n  }.\n  en evento \"comando:xass:x:separar@respuesta\" está usando una función con (datos) donde {\n    debugo \"socket_cliente.{evento=comando:xass:x:separar@respuesta}\".\n    imprimo datos textualizado.\n  }.\n}.\n\nhago socket_cliente.emit(\"comando:xass:x:separar\", { mensaje: \"Hola desde socket.io!\" }).\n\ncreo utilidades como {\n  método de_fecha_a_texto con (fecha) donde {\n    debugo \"utilidades.de_fecha_a_texto\".\n    retorno un formateo de fecha a texto a partir de fecha.\n  }.\n  método de_ruta_a_extension con (ruta) donde {\n    debugo \"utilidades.de_ruta_a_extension\".\n    creo ruta_invertida como ruta.split(\"\").reverse().join(\"\").\n    creo posicion como ruta_invertida.indexOf(\".\").\n    retorno ruta_invertida.substr(0, posicion).split(\"\").reverse().join(\"\").\n  }.\n  método de_ruta_a_nombre_de_fichero con (ruta) donde {\n    debugo \"utilidades.de_ruta_a_nombre_de_fichero\".\n    creo ruta_invertida como ruta.split(\"\").reverse().join(\"\").\n    creo posicion como ruta_invertida.indexOf(\"/\").\n    retorno ruta_invertida.substr(0, posicion).split(\"\").reverse().join(\"\").\n  }.\n  método gestionar_error con (error) donde {\n    hago window.alert(`${error.name}: ${error.message} ${JSON.stringify(error.stack)}`).\n  }.\n}.\n\ncreo ruta_de_servidor como una función con (url) donde {\n  retorno `http://127.0.0.1:9854${url}`.\n}.\n\ncreo comandos_remotos como {\n  propiedad xass_x_separar como {\n    propiedad url como ruta_de_servidor(\"/comando/xass/x/separar\").\n    propiedad accion como una función.\n  }.\n  propiedad os_listar_comandos como {\n    propiedad url como ruta_de_servidor(\"/comando/os/listar_comandos\").\n    propiedad accion como una función.\n  }.\n  propiedad os_listar_directorio como {\n    propiedad url como ruta_de_servidor(\"/comando/os/listar_directorio\").\n    método asíncrono accion donde {\n      debugo \"comandos_remotos.os_listar_directorio.accion\".\n      creo respuesta como asíncronamente una petición http\n        con url comandos_remotos.os_listar_directorio.url\n        con método \"GET\"\n        con cuerpo {}\n        con cabeceras {}.\n      retorno respuesta.data.\n    } en errores hago utilidades.gestionar_error(error).\n  }.\n  propiedad os_crear_carpeta como {\n    propiedad url como ruta_de_servidor(\"/comando/os/crear_carpeta\").\n    método asíncrono accion donde {\n      debugo \"comandos_remotos.os_crear_carpeta.accion\".\n    }.\n  }.\n  propiedad os_eliminar_carpeta como {\n    propiedad url como ruta_de_servidor(\"/comando/os/eliminar_carpeta\").\n    método asíncrono accion donde {\n      debugo \"comandos_remotos.os_eliminar_carpeta.accion\".\n    }.\n  }.\n  propiedad os_eliminar_fichero como {\n    propiedad url como ruta_de_servidor(\"/comando/os/eliminar_fichero\").\n    método asíncrono accion donde {\n      debugo \"comandos_remotos.os_eliminar_fichero.accion\".\n    }.\n  }.\n  propiedad os_subir_fichero como {\n    propiedad url como ruta_de_servidor(\"/comando/os/subir_fichero\").\n    método asíncrono accion con (fichero) donde {\n      debugo \"comandos_remotos.os_subir_fichero.accion\".\n      creo formulario como un nuevo FormData().\n      hago formulario.append(\"fichero\", fichero).\n      creo respuesta como asíncronamente una petición http\n        con url comandos_remotos.os_subir_fichero.url\n        con método \"POST\"\n        con cuerpo formulario\n        con cabeceras { \"Content-type\": \"multipart/form-data\", \"Authorization\": Gestor_de_autentificacion.token }\n        ",
  [
    {
      "label": "{ separación }",
      "kind": 1,
      "insertText": "\n",
      "data": 70,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "+",
      "kind": 1,
      "data": 71,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "-",
      "kind": 1,
      "data": 73,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "*",
      "kind": 1,
      "data": 75,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "/",
      "kind": 1,
      "data": 77,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "%",
      "kind": 1,
      "data": 79,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "mapeado por su propiedad",
      "kind": 1,
      "data": 81,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "mapeado",
      "kind": 1,
      "data": 83,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "filtrado",
      "kind": 1,
      "data": 87,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "reducido",
      "kind": 1,
      "data": 91,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "modificado",
      "kind": 1,
      "data": 95,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "extendido por",
      "kind": 1,
      "data": 99,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "concatenado por",
      "kind": 1,
      "data": 101,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "siendo",
      "kind": 1,
      "data": 103,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "no",
      "kind": 1,
      "data": 105,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es mayor o igual que",
      "kind": 1,
      "data": 107,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es menor o igual que",
      "kind": 1,
      "data": 109,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es mayor que",
      "kind": 1,
      "data": 111,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es menor que",
      "kind": 1,
      "data": 113,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es igual que",
      "kind": 1,
      "data": 115,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es diferente que",
      "kind": 1,
      "data": 117,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "contiene valor",
      "kind": 1,
      "data": 119,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "contiene clave",
      "kind": 1,
      "data": 121,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "está contenido",
      "kind": 1,
      "data": 123,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "está contenida",
      "kind": 1,
      "data": 124,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es tipo número normal",
      "kind": 1,
      "data": 126,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es tipo número",
      "kind": 1,
      "data": 128,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es tipo texto",
      "kind": 1,
      "data": 130,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es tipo objeto",
      "kind": 1,
      "data": 132,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es tipo lista",
      "kind": 1,
      "data": 134,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es tipo función",
      "kind": 1,
      "data": 136,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es tipo indefinido",
      "kind": 1,
      "data": 138,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es instancia de",
      "kind": 1,
      "data": 140,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "es tipo booleano",
      "kind": 1,
      "data": 142,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "y",
      "kind": 1,
      "data": 144,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "o",
      "kind": 1,
      "data": 146,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "numerizado",
      "kind": 1,
      "data": 148,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "retornando",
      "kind": 1,
      "data": 150,
      "detail": "",
      "documentation": ""
    },
    {
      "label": ".",
      "kind": 1,
      "data": 152,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "punto",
      "kind": 1,
      "data": 154,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "[",
      "kind": 1,
      "data": 156,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "iniciolista",
      "kind": 1,
      "data": 158,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "textualizado",
      "kind": 1,
      "data": 160,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "usando cliente",
      "kind": 1,
      "data": 162,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "En errores",
      "kind": 1,
      "data": 164,
      "detail": "",
      "documentation": ""
    },
    {
      "label": ",",
      "kind": 1,
      "data": 259,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "coma",
      "kind": 1,
      "data": 261,
      "detail": "",
      "documentation": ""
    },
    {
      "label": "oksentencia",
      "kind": 1,
      "data": 263,
      "detail": "",
      "documentation": ""
    }
  ]
]